~ubuntu-branches/ubuntu/karmic/rosegarden/karmic

« back to all changes in this revision

Viewing changes to src/gui/editors/parameters/TrackParameterBox.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Stefan Ebner
  • Date: 2008-05-02 00:33:44 UTC
  • mfrom: (1.1.7 upstream) (6.1.1 lenny)
  • Revision ID: james.westby@ubuntu.com-20080502003344-67vbfhgqx2yl0ksi
Tags: 1:1.7.0-1ubuntu1
* Merge from Debian unstable. (LP: #225849) Remaining Ubuntu changes:
  - Add usr/share/doc/kde/HTML to rosegarden-data, to provide online
    help documentation.
  - Change fftw3-dev to libfftw3-dev.
  - Update maintainer field as per spec.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
    Rosegarden
5
5
    A MIDI and audio sequencer and musical notation editor.
6
6
 
7
 
    This program is Copyright 2000-2007
 
7
    This program is Copyright 2000-2008
8
8
        Guillaume Laurent   <glaurent@telegraph-road.org>,
9
9
        Chris Cannam        <cannam@all-day-breakfast.com>,
10
10
        Richard Bown        <richard.bown@ferventsoftware.com>
48
48
#include "base/NotationTypes.h"
49
49
#include "base/Studio.h"
50
50
#include "base/Track.h"
 
51
#include "base/StaffExportTypes.h"
 
52
#include "commands/segment/SegmentSyncCommand.h"
51
53
#include "document/RosegardenGUIDoc.h"
52
54
#include "gui/dialogs/PitchPickerDialog.h"
53
55
#include "gui/general/GUIPalette.h"
79
81
#include <qvbox.h>
80
82
#include <qwidget.h>
81
83
#include <qwidgetstack.h>
 
84
#include <qcheckbox.h>
82
85
 
83
86
 
84
87
namespace Rosegarden
114
117
    config->writeEntry("trackparametersrecord", expanded);
115
118
    expanded = config->readBoolEntry("trackparametersdefaults", false);
116
119
    config->writeEntry("trackparametersdefaults", expanded);
 
120
    expanded = config->readBoolEntry("trackstaffgroup", false);
 
121
    config->writeEntry("trackstaffgroup", expanded);
117
122
    config->setGroup(groupTemp);
118
123
 
119
124
    QGridLayout *mainLayout = new QGridLayout(this, 5, 1, 2, 1);
193
198
 
194
199
    mainLayout->addWidget(cframe, 2, 0);
195
200
 
 
201
    // staff group
 
202
    //
 
203
    cframe = new CollapsingFrame(i18n("Staff export options"), this,
 
204
                                 "staffoptions");
 
205
    m_staffGroup = new QFrame(cframe);
 
206
    cframe->setWidget(m_staffGroup);
 
207
    groupLayout = new QGridLayout(m_staffGroup, 2, 2, 2, 2);
 
208
 
 
209
    groupLayout->setColStretch(1, 1);
 
210
 
 
211
    row = 0;
 
212
 
 
213
    // Notation size (export only)
 
214
    //
 
215
    // NOTE: This is the only way to get a \small or \tiny inserted before the
 
216
    // first note in LilyPond export.  Setting the actual staff size on a
 
217
    // per-staff (rather than per-score) basis is something the author of the
 
218
    // LilyPond documentation has no idea how to do, so we settle for this,
 
219
    // which is not as nice, but actually a lot easier to implement.
 
220
    m_staffGrpLbl = new QLabel(i18n("Notation size:"), m_staffGroup);
 
221
    groupLayout->addWidget(m_staffGrpLbl, row, 0, AlignLeft);
 
222
    m_staffSizeCombo = new KComboBox(m_staffGroup);
 
223
    m_staffSizeCombo->setMinimumWidth(width11);
 
224
    m_staffSizeCombo->insertItem(i18n("Normal"), StaffTypes::Normal);
 
225
    m_staffSizeCombo->insertItem(i18n("Small"), StaffTypes::Small);
 
226
    m_staffSizeCombo->insertItem(i18n("Tiny"), StaffTypes::Tiny);
 
227
 
 
228
    groupLayout->addMultiCellWidget(m_staffSizeCombo, row, row, 1, 2);
 
229
 
 
230
    // Staff bracketing (export only at the moment, but using this for GUI
 
231
    // rendering would be nice in the future!) //!!! 
 
232
    row++;
 
233
    m_grandStaffLbl = new QLabel(i18n("Bracket type:"), m_staffGroup);
 
234
    groupLayout->addWidget(m_grandStaffLbl, row, 0, AlignLeft);
 
235
    m_staffBracketCombo = new KComboBox(m_staffGroup);
 
236
    m_staffBracketCombo->setMinimumWidth(width11);
 
237
    m_staffBracketCombo->insertItem(i18n("-----"), Brackets::None);
 
238
    m_staffBracketCombo->insertItem(i18n("[----"), Brackets::SquareOn);
 
239
    m_staffBracketCombo->insertItem(i18n("----]"), Brackets::SquareOff);
 
240
    m_staffBracketCombo->insertItem(i18n("[---]"), Brackets::SquareOnOff);
 
241
    m_staffBracketCombo->insertItem(i18n("{----"), Brackets::CurlyOn);
 
242
    m_staffBracketCombo->insertItem(i18n("----}"), Brackets::CurlyOff);
 
243
    m_staffBracketCombo->insertItem(i18n("{[---"), Brackets::CurlySquareOn);
 
244
    m_staffBracketCombo->insertItem(i18n("---]}"), Brackets::CurlySquareOff);
 
245
 
 
246
    groupLayout->addMultiCellWidget(m_staffBracketCombo, row, row, 1, 2);
 
247
 
 
248
    mainLayout->addWidget(cframe, 3, 0);
 
249
 
196
250
 
197
251
    // default segment group
198
252
    //
199
 
    cframe = new CollapsingFrame(i18n("Create segments with:"), this,
 
253
    cframe = new CollapsingFrame(i18n("Create segments with"), this,
200
254
                                 "trackparametersdefaults");
201
255
    m_defaultsGroup = new QFrame(cframe);
202
256
    cframe->setWidget(m_defaultsGroup);
298
352
    // populate combo from doc colors
299
353
    slotDocColoursChanged();
300
354
 
301
 
    mainLayout->addWidget(cframe, 3, 0);
 
355
    mainLayout->addWidget(cframe, 4, 0);
 
356
 
302
357
 
303
358
    // Configure the empty final row to accomodate any extra vertical space.
304
359
    //
337
392
 
338
393
    connect(m_presetButton, SIGNAL(released()),
339
394
            SLOT(slotPresetPressed()));
 
395
 
 
396
    connect(m_staffSizeCombo, SIGNAL(activated(int)),
 
397
            this, SLOT(slotStaffSizeChanged(int)));
 
398
 
 
399
    connect(m_staffBracketCombo, SIGNAL(activated(int)),
 
400
            this, SLOT(slotStaffBracketChanged(int)));
340
401
}
341
402
 
342
403
TrackParameterBox::~TrackParameterBox()
562
623
    if (!trk)
563
624
        return ;
564
625
 
565
 
    m_presetLbl->setText(trk->getPresetLabel());
566
 
    m_presetLbl->setEnabled(true);
567
626
    m_defClef->setCurrentItem(trk->getClef());
568
627
    m_defTranspose->setCurrentItem(QString("%1").arg(trk->getTranspose()), true);
569
628
    m_defColor->setCurrentItem(trk->getColor());
570
629
    m_highestPlayable = trk->getHighestPlayable();
571
630
    m_lowestPlayable = trk->getLowestPlayable();
 
631
    updateHighLow();
 
632
    // set this down here because updateHighLow just disabled the label
 
633
    m_presetLbl->setText(trk->getPresetLabel());
 
634
    m_presetLbl->setEnabled(true);
 
635
 
 
636
    m_staffSizeCombo->setCurrentItem(trk->getStaffSize());
 
637
    m_staffBracketCombo->setCurrentItem(trk->getStaffBracket());
572
638
}
573
639
 
574
640
void
596
662
        m_trackName = i18n("<untitled>");
597
663
    else
598
664
        m_trackName.truncate(20);
599
 
    int m_trackNum = m_selectedTrackId + 1;
600
 
    m_trackLabel->setText(i18n("[ Track %1 - %2 ]").arg(m_trackNum).arg(m_trackName));
 
665
    int trackNum = trk->getPosition() + 1;
 
666
    m_trackLabel->setText(i18n("[ Track %1 - %2 ]").arg(trackNum).arg(m_trackName));
601
667
}
602
668
 
603
669
void
807
873
    Composition &comp = m_doc->getComposition();
808
874
    Track *trk = comp.getTrackById(comp.getSelectedTrack());
809
875
 
810
 
    //!!! Tentative fix for #1527462.  I haven't worked out where the -1
811
 
    // comes from, but it is consistent.  I'm going to try a +1 here to see if
812
 
    // it cures this, though I don't quite understand why it would.
813
 
//    trk->setColor(index + 1);
814
876
    trk->setColor(index);
815
877
 
816
878
    if (index == m_addColourPos) {
830
892
                slotDocColoursChanged();
831
893
            }
832
894
        }
833
 
        // Else we don't do anything as they either didn't give a name�
 
895
        // Else we don't do anything as they either didn't give a name�
834
896
        // or didn't give a colour
835
897
    }
836
898
}
891
953
        if (dialog.exec() == QDialog::Accepted) {
892
954
            m_presetLbl->setText(dialog.getName());
893
955
            trk->setPresetLabel(dialog.getName());
 
956
            if (dialog.getConvertAllSegments()) {
 
957
                SegmentSyncCommand* command = new SegmentSyncCommand(
 
958
                                comp.getSegments(), comp.getSelectedTrack(),
 
959
                                dialog.getTranspose(), dialog.getLowRange(), 
 
960
                                dialog.getHighRange(),
 
961
                                clefIndexToClef(dialog.getClef()));
 
962
                m_doc->getCommandHistory()->addCommand(command);
 
963
            }
894
964
            m_defClef->setCurrentItem(dialog.getClef());
895
965
            m_defTranspose->setCurrentItem(QString("%1").arg
896
966
                                           (dialog.getTranspose()), true);
917
987
 
918
988
}
919
989
 
 
990
void
 
991
TrackParameterBox::slotStaffSizeChanged(int index) 
 
992
{
 
993
    RG_DEBUG << "TrackParameterBox::sotStaffSizeChanged()" << endl;
 
994
    Composition &comp = m_doc->getComposition();
 
995
    Track *trk = comp.getTrackById(m_selectedTrackId);
 
996
 
 
997
    trk->setStaffSize(index);
 
998
}
 
999
 
 
1000
 
 
1001
void
 
1002
TrackParameterBox::slotStaffBracketChanged(int index)
 
1003
{
 
1004
    RG_DEBUG << "TrackParameterBox::sotStaffBracketChanged()" << endl;
 
1005
    Composition &comp = m_doc->getComposition();
 
1006
    Track *trk = comp.getTrackById(m_selectedTrackId);
 
1007
 
 
1008
    trk->setStaffBracket(index);
 
1009
}
 
1010
 
920
1011
QString
921
1012
TrackParameterBox::getPreviousBox(RosegardenParameterArea::Arrangement arrangement) const
922
1013
{