diff options
| author | Tim E. Real <termtech@rogers.com> | 2010-10-26 22:30:37 +0000 | 
|---|---|---|
| committer | Tim E. Real <termtech@rogers.com> | 2010-10-26 22:30:37 +0000 | 
| commit | b5a9f51073ba4e3c166f9229cd596f22878acafc (patch) | |
| tree | 2f2bd80dd09f6391166ef35c2521eb2651ade4c1 /muse2/muse | |
| parent | 1b5734729f893636653693776da29c6f391d3439 (diff) | |
See ChangeLog
Diffstat (limited to 'muse2/muse')
62 files changed, 1861 insertions, 643 deletions
| diff --git a/muse2/muse/app.cpp b/muse2/muse/app.cpp index 4a3d79a3..fffd542b 100644 --- a/muse2/muse/app.cpp +++ b/muse2/muse/app.cpp @@ -22,8 +22,9 @@  #include <signal.h>  #include <stdarg.h> -#include <q3buttongroup.h> -#include <q3popupmenu.h> +#include <QButtonGroup> +//#include <q3popupmenu.h> +#include <QMenu>  #include <qmessagebox.h>  #include <qclipboard.h>  #include <qsocketnotifier.h> @@ -42,7 +43,7 @@  #include <QTranslator>  #include <QKeyEvent>  #include <QEvent> -#include <Q3ActionGroup> +#include <QActionGroup>  #include <QPixmap>  #include <QCloseEvent> @@ -608,10 +609,10 @@ struct addSynth_cmp_str     }  };  */ - -Q3PopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slot = 0) + // ORCAN - CHECK +QMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slot = 0)  { -  Q3PopupMenu* synp = new Q3PopupMenu(parent); +  QMenu* synp = new QMenu(parent);    //typedef std::multimap<std::string, int, addSynth_cmp_str > asmap;    typedef std::multimap<std::string, int > asmap; @@ -620,23 +621,23 @@ Q3PopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slo    typedef std::multimap<std::string, int >::iterator imap;    MessSynth* synMESS   = 0; -  Q3PopupMenu* synpMESS = 0; +  QMenu* synpMESS = 0;    asmap mapMESS;    #ifdef DSSI_SUPPORT    DssiSynth* synDSSI   = 0; -  Q3PopupMenu* synpDSSI = 0; +  QMenu* synpDSSI = 0;    asmap mapDSSI;    #endif                      #ifdef VST_SUPPORT    VstSynth*  synVST    = 0; -  Q3PopupMenu* synpVST  = 0; +  QMenu* synpVST  = 0;    asmap mapVST;    #endif                      // Not necessary, but what the heck. -  Q3PopupMenu* synpOther = 0; +  QMenu* synpOther = 0;    asmap mapOther;    //const int synth_base_id = 0x1000; @@ -690,7 +691,7 @@ Q3PopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slo      {        // No MESS sub-menu yet? Create it now.        if(!synpMESS) -        synpMESS = new Q3PopupMenu(parent); +        synpMESS = new QMenu(parent);        synpMESS->insertItem(QT_TR_NOOP(s->description()) + " <" + QT_TR_NOOP(s->name()) + ">", MENU_ADD_SYNTH_ID_BASE + idx);      }      } @@ -706,7 +707,7 @@ Q3PopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slo      {        // No DSSI sub-menu yet? Create it now.        if(!synpDSSI) -        synpDSSI = new Q3PopupMenu(parent); +        synpDSSI = new QMenu(parent);        synpDSSI->insertItem(QT_TR_NOOP(s->description()) + " <" + QT_TR_NOOP(s->name()) + ">", MENU_ADD_SYNTH_ID_BASE + idx);      }      } @@ -723,7 +724,7 @@ Q3PopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slo      {        // No VST sub-menu yet? Create it now.        if(!synpVST) -        synpVST = new Q3PopupMenu(parent); +        synpVST = new QMenu(parent);        synpVST->insertItem(QT_TR_NOOP(s->description()) + " <" + QT_TR_NOOP(s->name()) + ">", MENU_ADD_SYNTH_ID_BASE + idx);      }      } @@ -737,7 +738,7 @@ Q3PopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slo      Synth* s = synthis[idx];      // No Other sub-menu yet? Create it now.      if(!synpOther) -      synpOther = new Q3PopupMenu(parent); +      synpOther = new QMenu(parent);      synpOther->insertItem(QT_TR_NOOP(s->description()) + " <" + QT_TR_NOOP(s->name()) + ">", MENU_ADD_SYNTH_ID_BASE + idx);    } @@ -781,7 +782,7 @@ Q3PopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slo  //    this is also used in "mixer"  //--------------------------------------------------------- -void populateAddTrack(Q3PopupMenu* addTrack) +void populateAddTrack(QMenu* addTrack)        {        addTrack->insertItem(QIcon(*addtrack_addmiditrackIcon),           QT_TR_NOOP("Add Midi Track"), Track::MIDI); @@ -799,7 +800,7 @@ void populateAddTrack(Q3PopupMenu* addTrack)           QT_TR_NOOP("Add Aux Send"), Track::AUDIO_AUX);        // Create a sub-menu and fill it with found synth types. Make addTrack the owner. -      Q3PopupMenu* synp = populateAddSynth(addTrack, song, SLOT(addNewTrack(int))); +      QMenu* synp = populateAddSynth(addTrack, song, SLOT(addNewTrack(int)));        // Add the sub-menu to the given menu.        addTrack->insertItem(*synthIcon, QT_TR_NOOP("Add Synth"), synp, Track::AUDIO_SOFTSYNTH); @@ -812,7 +813,8 @@ void populateAddTrack(Q3PopupMenu* addTrack)  //   MusE  //--------------------------------------------------------- -MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow") +//MusE::MusE(int argc, char** argv) : QMainWindow(0, "mainwindow") +MusE::MusE(int argc, char** argv) : QMainWindow()        {        // By T356. For LADSPA plugins in plugin.cpp        // QWidgetFactory::addWidgetFactory( new PluginWidgetFactory ); ddskrjo @@ -866,11 +868,21 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        //---------------------------------------------------        //    undo/redo        //--------------------------------------------------- -      undoRedo = new Q3ActionGroup(this, tr("UndoRedo"), false); -      undoAction = new Q3Action(tr("undo"), QIcon(*undoIconS), tr("Und&o"), // ddskrjo +      // ORCAN - CHECK: +      /* +      undoRedo = new QActionGroup(this, tr("UndoRedo"), false); +      undoAction = new QAction(tr("undo"), QIcon(*undoIconS), tr("Und&o"), // ddskrjo          Qt::CTRL+Qt::Key_Z, undoRedo, "undo"); -      redoAction = new Q3Action(tr("redo"), QIcon(*redoIconS), tr("Re&do"), // ddskrjo +      redoAction = new QAction(tr("redo"), QIcon(*redoIconS), tr("Re&do"), // ddskrjo          Qt::CTRL+Qt::Key_Y, undoRedo, "redo"); +      */ +      undoRedo = new QActionGroup(this); +      undoRedo->setExclusive(false); +      undoAction = new QAction(QIcon(*undoIconS), tr("Und&o"), // ddskrjo +        undoRedo); +      redoAction = new QAction(QIcon(*redoIconS), tr("Re&do"), // ddskrjo +        undoRedo); +        undoAction->setWhatsThis(tr("undo last change to song"));        redoAction->setWhatsThis(tr("redo last undo"));        undoAction->setEnabled(false); @@ -881,60 +893,126 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        //---------------------------------------------------        //    Transport        //--------------------------------------------------- +      // ORCAN - CHECK: +      /* +      transportAction = new QActionGroup(this, tr("Transport"), false); -      transportAction = new Q3ActionGroup(this, tr("Transport"), false); - -      loopAction = new Q3Action(tr("loop"), QIcon(*loop1Icon), +      loopAction = new QAction(tr("loop"), QIcon(*loop1Icon),           tr("Loop"), 0, transportAction, "loop", true); +      */ +      transportAction = new QActionGroup(this); +      transportAction->setExclusive(false); +       +      loopAction = new QAction(QIcon(*loop1Icon), +         tr("Loop"), transportAction); +      loopAction->setCheckable(true); +        loopAction->setWhatsThis(tr(infoLoopButton));        connect(loopAction, SIGNAL(toggled(bool)), song, SLOT(setLoop(bool))); - -      punchinAction = new Q3Action(tr("punchin"), QIcon(*punchin1Icon), +      // ORCAN - CHECK: +      /* +      punchinAction = new QAction(tr("punchin"), QIcon(*punchin1Icon),           tr("Punchin"), 0, transportAction, "Punchin", true); +      */ +      punchinAction = new QAction(QIcon(*punchin1Icon), +         tr("Punchin"), transportAction); +      punchinAction->setCheckable(true); +        punchinAction->setWhatsThis(tr(infoPunchinButton));        connect(punchinAction, SIGNAL(toggled(bool)), song, SLOT(setPunchin(bool))); -      punchoutAction = new Q3Action(tr("punchout"), QIcon(*punchout1Icon), +      // ORCAN - CHECK: +      /* +      punchoutAction = new QAction(tr("punchout"), QIcon(*punchout1Icon),           tr("Punchout"), 0, transportAction, "punchout", true); +      */ +      punchoutAction = new QAction(QIcon(*punchout1Icon), +         tr("Punchout"), transportAction); +      punchoutAction->setCheckable(true); +        punchoutAction->setWhatsThis(tr(infoPunchoutButton));        connect(punchoutAction, SIGNAL(toggled(bool)), song, SLOT(setPunchout(bool)));        transportAction->addSeparator(); -      startAction = new Q3Action(tr("start"), QIcon(*startIcon), +      // ORCAN - CHECK: +      /* +      startAction = new QAction(tr("start"), QIcon(*startIcon),           tr("Start"), 0, transportAction, "start"); +      */ +      startAction = new QAction(QIcon(*startIcon), +         tr("Start"), transportAction); +        startAction->setWhatsThis(tr(infoStartButton));        connect(startAction, SIGNAL(activated()), song, SLOT(rewindStart())); -      rewindAction = new Q3Action(tr("rewind"), QIcon(*frewindIcon), +      // ORCAN - CHECK: +      /* +      rewindAction = new QAction(tr("rewind"), QIcon(*frewindIcon),           tr("Rewind"), 0, transportAction, "rewind"); +      */ +      rewindAction = new QAction(QIcon(*frewindIcon), +         tr("Rewind"), transportAction); +        rewindAction->setWhatsThis(tr(infoRewindButton));        connect(rewindAction, SIGNAL(activated()), song, SLOT(rewind())); -      forwardAction = new Q3Action(tr("forward"), QIcon(*fforwardIcon), +      // ORCAN - CHECK: +      /* +      forwardAction = new QAction(tr("forward"), QIcon(*fforwardIcon),           tr("Forward"), 0, transportAction, "forward"); +      */ +      forwardAction = new QAction(QIcon(*fforwardIcon), +	 tr("Forward"), transportAction); +        forwardAction->setWhatsThis(tr(infoForwardButton));        connect(forwardAction, SIGNAL(activated()), song, SLOT(forward())); -      stopAction = new Q3Action(tr("stop"), QIcon(*stopIcon), +      // ORCAN - CHECK: +      /* +      stopAction = new QAction(tr("stop"), QIcon(*stopIcon),           tr("Stop"), 0, transportAction, "stop", true); +      */ +      stopAction = new QAction(QIcon(*stopIcon), +         tr("Stop"), transportAction); +      stopAction->setCheckable(true); +        stopAction->setWhatsThis(tr(infoStopButton));        stopAction->setOn(true);        connect(stopAction, SIGNAL(toggled(bool)), song, SLOT(setStop(bool))); -      playAction = new Q3Action(tr("play"),  QIcon(*playIcon), +      // ORCAN - CHECK: +      /* +      playAction = new QAction(tr("play"),  QIcon(*playIcon),           tr("Play"), 0, transportAction, "play", true); +      */ +      playAction = new QAction(QIcon(*playIcon), +         tr("Play"), transportAction); +      playAction->setCheckable(true); +        playAction->setWhatsThis(tr(infoPlayButton));        playAction->setOn(false);        connect(playAction, SIGNAL(toggled(bool)), song, SLOT(setPlay(bool))); -      recordAction = new Q3Action(tr("record"),  QIcon(*recordIcon), +      // ORCAN - CHECK: +      /* +      recordAction = new QAction(tr("record"),  QIcon(*recordIcon),           tr("Record"), 0, transportAction, "record", true); +      */ +      recordAction = new QAction(QIcon(*recordIcon), +         tr("Record"), transportAction); +      recordAction->setCheckable(true);        recordAction->setWhatsThis(tr(infoRecordButton));        connect(recordAction, SIGNAL(toggled(bool)), song, SLOT(setRecord(bool))); -      panicAction = new Q3Action(tr("panic"),  QIcon(*panicIcon), +      // ORCAN - CHECK: +      /* +      panicAction = new QAction(tr("panic"),  QIcon(*panicIcon),           tr("Panic"), 0, 0, "panic", false); +      */ +      panicAction = new QAction(QIcon(*panicIcon), +         tr("Panic"), 0); +        panicAction->setWhatsThis(tr(infoPanicButton));        connect(panicAction, SIGNAL(activated()), song, SLOT(panic())); @@ -944,23 +1022,47 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        //----Actions -      fileNewAction = new Q3Action(tr("new"), +      // ORCAN - CHECK: +      /* +      fileNewAction = new QAction(tr("new"),          QIcon(*filenewIcon), tr("&New"), 0, this, "new"); // ddskrjo +      */ +      fileNewAction = new QAction( +        QIcon(*filenewIcon), tr("&New"), this); // ddskrjo +        fileNewAction->setToolTip(tr(fileNewText));        fileNewAction->setWhatsThis(tr(fileNewText)); -      fileOpenAction = new Q3Action(tr("open"), +      // ORCAN - CHECK: +      /* +      fileOpenAction = new QAction(tr("open"),          QIcon(*openIcon), tr("&Open"), 0, this, "open"); // ddskrjo +      */ +      fileOpenAction = new QAction( +        QIcon(*openIcon), tr("&Open"), this); // ddskrjo +        fileOpenAction->setToolTip(tr(fileOpenText));        fileOpenAction->setWhatsThis(tr(fileOpenText)); -      fileSaveAction = new Q3Action(tr("save"), +      // ORCAN - CHECK: +      /* +      fileSaveAction = new QAction(tr("save"),          QIcon(*saveIcon), tr("&Save"), 0, this, "save"); // ddskrjo +      */ +      fileSaveAction = new QAction( +        QIcon(*saveIcon), tr("&Save"), this); // ddskrjo +        fileSaveAction->setToolTip(tr(fileSaveText));        fileSaveAction->setWhatsThis(tr(fileSaveText)); -      pianoAction = new Q3Action(tr("pianoroll"), +      // ORCAN - CHECK: +      /* +      pianoAction = new QAction(tr("pianoroll"),          *pianoIconSet, tr("Pianoroll"), 0, this, "pianoroll"); +	*/ +      pianoAction = new QAction( +        *pianoIconSet, tr("Pianoroll"), this); +        connect(pianoAction, SIGNAL(activated()), SLOT(startPianoroll()));  //       markerAction = new QAction(tr("marker"), QIconSet(*view_markerIcon), tr("Marker"), @@ -974,27 +1076,44 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        //--------------------------------------------------        //    Toolbar        //-------------------------------------------------- - -      tools = new Q3ToolBar(tr("File Buttons"), this); -      fileNewAction->addTo(tools); -      fileOpenAction->addTo(tools); -      fileSaveAction->addTo(tools); - +      // FIXME - Orcan +      //tools = new QToolBar(tr("File Buttons"), this); +      tools = addToolBar(tr("File Buttons")); + +      //fileNewAction->addTo(tools); +      //fileOpenAction->addTo(tools); +      //fileSaveAction->addTo(tools); +      tools->addAction(fileNewAction); +      tools->addAction(fileOpenAction); +      tools->addAction(fileSaveAction); +              //        //    Whats This        // -      Q3WhatsThis::whatsThisButton(tools); - +      // FIXME - Orcan: Do we need this? +      //Q3WhatsThis::whatsThisButton(tools); +      tools->addAction(QWhatsThis::createAction(this)); +              tools->addSeparator(); -      undoRedo->addTo(tools); +      //undoRedo->addTo(tools); +      tools->addActions(undoRedo->actions()); +      //addToolBar(tools);        tools1 = new EditToolBar(this, arrangerTools); +      addToolBar(tools1); + +      //QToolBar* transportToolbar = new QToolBar(this); +      QToolBar* transportToolbar = addToolBar(tr("Transport")); +      //transportAction->addTo(transportToolbar); +      transportToolbar->addActions(transportAction->actions()); +      //addToolBar(transportToolbar); -      Q3ToolBar* transportToolbar = new Q3ToolBar(this); -      transportAction->addTo(transportToolbar); +      //QToolBar* panicToolbar = new QToolBar(this); +      QToolBar* panicToolbar = addToolBar(tr("Panic")); +      //panicAction->addTo(panicToolbar); +      panicToolbar->addAction(panicAction); +      //addToolBar(panicToolbar); -      Q3ToolBar* panicToolbar = new Q3ToolBar(this); -      panicAction->addTo(panicToolbar);        if (realTimePriority < sched_get_priority_min(SCHED_FIFO))              realTimePriority = sched_get_priority_min(SCHED_FIFO); @@ -1032,16 +1151,19 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        //    popup File        //------------------------------------------------------------- -      menu_file = new Q3PopupMenu(this); +      menu_file = new QMenu(this);        menuBar()->insertItem(tr("&File"), menu_file); -      fileNewAction->addTo(menu_file); -      fileOpenAction->addTo(menu_file); -      openRecent = new Q3PopupMenu(menu_file); +      //fileNewAction->addTo(menu_file); +      //fileOpenAction->addTo(menu_file); +      menu_file->addAction(fileNewAction); +      menu_file->addAction(fileOpenAction); +      openRecent = new QMenu(menu_file);        connect(openRecent, SIGNAL(aboutToShow()), this, SLOT(openRecentMenu()));        connect(openRecent, SIGNAL(activated(int)), this, SLOT(selectProject(int)));        menu_ids[CMD_OPEN_RECENT] = menu_file->insertItem(tr("Open &Recent"), openRecent, 0);        menu_file->insertSeparator(); -      fileSaveAction->addTo(menu_file); +      //fileSaveAction->addTo(menu_file); +      menu_file->addAction(fileSaveAction);        menu_ids[CMD_SAVE_AS] = menu_file->insertItem(tr("Save &As"), this, SLOT(saveAs()), 0, -2);        menu_file->insertSeparator();        menu_ids[CMD_IMPORT_MIDI] = menu_file->insertItem(*openIconS, tr("Import Midifile"), this, SLOT(importMidi()), 0, -2); @@ -1050,7 +1172,6 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        menu_file->insertSeparator();        menu_ids[CMD_IMPORT_AUDIO] = menu_file->insertItem(*openIconS, tr("Import Wave File"), this, SLOT(importWave()), 0, -2); -        menu_file->insertSeparator();        menu_ids[CMD_QUIT] = menu_file->insertItem(*exitIconS, tr("&Quit"), this, SLOT(quitDoc()), 0, -2);        menu_file->insertSeparator(); @@ -1059,8 +1180,9 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        //    popup Edit        //------------------------------------------------------------- -      menuEdit = new Q3PopupMenu(this); -      undoRedo->addTo(menuEdit); +      menuEdit = new QMenu(this); +      //undoRedo->addTo(menuEdit); +      menuEdit->addActions(undoRedo->actions());        menuEdit->insertSeparator();        menuBar()->insertItem(tr("&Edit"), menuEdit); @@ -1085,14 +1207,14 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        menuEdit->insertItem(QIcon(*edit_track_delIcon),           tr("Delete Selected Tracks"), CMD_DELETE_TRACK); -      addTrack = new Q3PopupMenu(this); +      addTrack = new QMenu(this);        // Moved below. Have to wait until synths are available...        //populateAddTrack(addTrack);        menuEdit->insertItem(QIcon(*edit_track_addIcon),           tr("Add Track"), addTrack); -      select = new Q3PopupMenu(this); +      select = new QMenu(this);        select->insertItem(QIcon(*select_allIcon),           tr("Select &All"),  CMD_SELECT_ALL);        select->insertItem(QIcon(*select_deselect_allIcon), @@ -1110,7 +1232,8 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")           tr("Select"), select);        menuEdit->insertSeparator(); -      pianoAction->addTo(menuEdit); +      //pianoAction->addTo(menuEdit); +      menuEdit->addAction(pianoAction);        menu_ids[CMD_OPEN_DRUMS] = menuEdit->insertItem(           QIcon(*edit_drummsIcon), tr("Drums"), this, SLOT(startDrumEditor()), 0);        menu_ids[CMD_OPEN_LIST]  = menuEdit->insertItem( @@ -1118,7 +1241,7 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        menu_ids[CMD_OPEN_WAVE]  = menuEdit->insertItem(           QIcon(*edit_waveIcon), tr("Wave"), this, SLOT(startWaveEditor()), 0); -      master = new Q3PopupMenu(this); +      master = new QMenu(this);        master->setCheckable(false);        menu_ids[CMD_OPEN_GRAPHIC_MASTER] = master->insertItem(          QIcon(*mastertrack_graphicIcon),tr("Graphic"), this, SLOT(startMasterEditor()), 0); @@ -1131,7 +1254,7 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        connect(menuEdit, SIGNAL(activated(int)), SLOT(cmd(int)));        connect(select, SIGNAL(activated(int)), SLOT(cmd(int))); -      midiEdit = new Q3PopupMenu(this); +      midiEdit = new QMenu(this);        midiEdit->setCheckable(false);  #if 0  // TODO        menu_ids[CMD_OPEN_MIDI_TRANSFORM] = midiEdit->insertItem( @@ -1162,7 +1285,7 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        //    popup View        //------------------------------------------------------------- -      menuView = new Q3PopupMenu(this); +      menuView = new QMenu(this);        menuView->setCheckable(true);        menuBar()->insertItem(tr("View"), menuView); @@ -1188,7 +1311,7 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        //    popup Structure        //------------------------------------------------------------- -      menuStructure = new Q3PopupMenu(this); +      menuStructure = new QMenu(this);        menuStructure->setCheckable(false);        menuBar()->insertItem(tr("&Structure"), menuStructure);        menu_ids[CMD_GLOBAL_CUT] = menuStructure->insertItem(tr("Global Cut"),    this, SLOT(globalCut()), 0); @@ -1204,7 +1327,7 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        //    popup Midi        //------------------------------------------------------------- -      midiInputPlugins = new Q3PopupMenu(this); +      midiInputPlugins = new QMenu(this);        midiInputPlugins->setCheckable(false);        mpid0 = midiInputPlugins->insertItem(           QIcon(*midi_inputplugins_transposeIcon), tr("Transpose"), 0); @@ -1222,12 +1345,12 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")  //      midiInputPlugins->setItemEnabled(mpid4, false); -      menu_functions = new Q3PopupMenu(this); +      menu_functions = new QMenu(this);        menu_functions->setCheckable(true);        menuBar()->insertItem(tr("&Midi"), menu_functions);        menu_functions->setCaption(tr("Midi")); -      menuScriptPlugins = new Q3PopupMenu(this); +      menuScriptPlugins = new QMenu(this);        song->populateScriptMenu(menuScriptPlugins, this);        menu_functions->insertItem(tr("&Plugins"), menuScriptPlugins); @@ -1247,7 +1370,7 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        //    popup Audio        //------------------------------------------------------------- -      menu_audio = new Q3PopupMenu(this); +      menu_audio = new QMenu(this);        menu_audio->setCheckable(true);        menuBar()->insertItem(tr("&Audio"), menu_audio);        menu_ids[CMD_AUDIO_BOUNCE_TO_TRACK] = menu_audio->insertItem( @@ -1262,7 +1385,7 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        //    popup Automation        //------------------------------------------------------------- -      menuAutomation = new Q3PopupMenu(this); +      menuAutomation = new QMenu(this);        menuAutomation->setCheckable(true);        menuBar()->insertItem(tr("Automation"), menuAutomation);        autoId = menuAutomation->insertItem( @@ -1278,7 +1401,7 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        //    popup Settings        //------------------------------------------------------------- -      follow = new Q3PopupMenu(this); +      follow = new QMenu(this);        follow->setCheckable(false);        fid0 = follow->insertItem(tr("dont follow Song"), CMD_FOLLOW_NO);        fid1 = follow->insertItem(tr("follow page"), CMD_FOLLOW_JUMP); @@ -1286,7 +1409,7 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        follow->setItemChecked(fid1, true);        connect(follow, SIGNAL(activated(int)), SLOT(cmd(int))); -      menuSettings = new Q3PopupMenu(this); +      menuSettings = new QMenu(this);        menuSettings->setCheckable(false);        menuBar()->insertItem(tr("Settings"), menuSettings);        menu_ids[CMD_GLOBAL_CONFIG] = menuSettings->insertItem( @@ -1314,7 +1437,7 @@ MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        //---------------------------------------------------        menuBar()->insertSeparator(); -      menu_help = new Q3PopupMenu(this); +      menu_help = new QMenu(this);        menu_help->setCheckable(false);        menuBar()->insertItem(tr("&Help"), menu_help); @@ -4761,7 +4884,7 @@ void MusE::focusInEvent(QFocusEvent* ev)        if (mixer2)              mixer2->raise();        raise(); -      Q3MainWindow::focusInEvent(ev); +      QMainWindow::focusInEvent(ev);        }  //--------------------------------------------------------- diff --git a/muse2/muse/app.cpp.orig b/muse2/muse/app.cpp.orig index 219f59bd..4a3d79a3 100644 --- a/muse2/muse/app.cpp.orig +++ b/muse2/muse/app.cpp.orig @@ -22,8 +22,8 @@  #include <signal.h>  #include <stdarg.h> -#include <qbuttongroup.h> -#include <qpopupmenu.h> +#include <q3buttongroup.h> +#include <q3popupmenu.h>  #include <qmessagebox.h>  #include <qclipboard.h>  #include <qsocketnotifier.h> @@ -35,8 +35,19 @@  #include <qstyle.h>  #include <qsplashscreen.h>  #include <qobject.h> +//Added by qt3to4: +#include <QTimerEvent> +#include <Q3CString> +#include <QFocusEvent> +#include <QTranslator> +#include <QKeyEvent> +#include <QEvent> +#include <Q3ActionGroup> +#include <QPixmap> +#include <QCloseEvent>  #include "app.h" +#include "popupmenu.h"  #include "transport.h"  #include "bigtime.h"  #include "arranger.h" @@ -93,7 +104,7 @@  #include <alsa/asoundlib.h>  #include "songinfo.h"  #include "didyouknow.h" -#include <qtextedit.h> +#include <q3textedit.h>  //extern void cacheJackRouteNames(); @@ -131,6 +142,9 @@ extern void exitDummyAudio();  extern void initVST_fst_init();  extern void initVST();  extern void initDSSI(); +// p3.3.39 +extern void initOSC(); +extern void exitOSC();  #ifdef HAVE_LASH  #include <lash/lash.h> @@ -402,12 +416,25 @@ bool MusE::seqStart()          //audioWriteback->start(0);        }        */ +              int pfprio = 0;        int midiprio = 0; +       +      // NOTE: realTimeScheduling can be true (gotten using jack_is_realtime()), +      //  while the determined realTimePriority can be 0. +      // realTimePriority is gotten using pthread_getschedparam() on the client thread  +      //  in JackAudioDevice::realtimePriority() which is a bit flawed - it reports there's no RT...        if(realTimeScheduling)         { -        if(realTimePriority < 5) -          printf("MusE: WARNING: Recommend setting audio realtime priority to at least 5!\n"); +        //if(realTimePriority < 5) +        //  printf("MusE: WARNING: Recommend setting audio realtime priority to a higher value!\n"); +        /* +        if(realTimePriority == 0) +        { +          pfprio = 1; +          midiprio = 2; +        }   +        else          if(realTimePriority == 1)          {            pfprio = 2; @@ -444,11 +471,17 @@ bool MusE::seqStart()            midiprio = 6;          }            else +        */          { -          pfprio = realTimePriority - 5; +          //pfprio = realTimePriority - 5; +          // p3.3.40 +          pfprio = realTimePriority + 1; +                      //midiprio = realTimePriority - 2;            // p3.3.37 -          midiprio = realTimePriority + 1; +          //midiprio = realTimePriority + 1; +          // p3.3.40 +          midiprio = realTimePriority + 2;          }          } @@ -576,9 +609,9 @@ struct addSynth_cmp_str  };  */ -QPopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slot = 0) +Q3PopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slot = 0)  { -  QPopupMenu* synp = new QPopupMenu(parent); +  Q3PopupMenu* synp = new Q3PopupMenu(parent);    //typedef std::multimap<std::string, int, addSynth_cmp_str > asmap;    typedef std::multimap<std::string, int > asmap; @@ -587,23 +620,23 @@ QPopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slot    typedef std::multimap<std::string, int >::iterator imap;    MessSynth* synMESS   = 0; -  QPopupMenu* synpMESS = 0; +  Q3PopupMenu* synpMESS = 0;    asmap mapMESS;    #ifdef DSSI_SUPPORT    DssiSynth* synDSSI   = 0; -  QPopupMenu* synpDSSI = 0; +  Q3PopupMenu* synpDSSI = 0;    asmap mapDSSI;    #endif                      #ifdef VST_SUPPORT    VstSynth*  synVST    = 0; -  QPopupMenu* synpVST  = 0; +  Q3PopupMenu* synpVST  = 0;    asmap mapVST;    #endif                   -  // Not neccessary, but what the heck. -  QPopupMenu* synpOther = 0; +  // Not necessary, but what the heck. +  Q3PopupMenu* synpOther = 0;    asmap mapOther;    //const int synth_base_id = 0x1000; @@ -657,7 +690,7 @@ QPopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slot      {        // No MESS sub-menu yet? Create it now.        if(!synpMESS) -        synpMESS = new QPopupMenu(parent); +        synpMESS = new Q3PopupMenu(parent);        synpMESS->insertItem(QT_TR_NOOP(s->description()) + " <" + QT_TR_NOOP(s->name()) + ">", MENU_ADD_SYNTH_ID_BASE + idx);      }      } @@ -673,7 +706,7 @@ QPopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slot      {        // No DSSI sub-menu yet? Create it now.        if(!synpDSSI) -        synpDSSI = new QPopupMenu(parent); +        synpDSSI = new Q3PopupMenu(parent);        synpDSSI->insertItem(QT_TR_NOOP(s->description()) + " <" + QT_TR_NOOP(s->name()) + ">", MENU_ADD_SYNTH_ID_BASE + idx);      }      } @@ -690,7 +723,7 @@ QPopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slot      {        // No VST sub-menu yet? Create it now.        if(!synpVST) -        synpVST = new QPopupMenu(parent); +        synpVST = new Q3PopupMenu(parent);        synpVST->insertItem(QT_TR_NOOP(s->description()) + " <" + QT_TR_NOOP(s->name()) + ">", MENU_ADD_SYNTH_ID_BASE + idx);      }      } @@ -704,7 +737,7 @@ QPopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slot      Synth* s = synthis[idx];      // No Other sub-menu yet? Create it now.      if(!synpOther) -      synpOther = new QPopupMenu(parent); +      synpOther = new Q3PopupMenu(parent);      synpOther->insertItem(QT_TR_NOOP(s->description()) + " <" + QT_TR_NOOP(s->name()) + ">", MENU_ADD_SYNTH_ID_BASE + idx);    } @@ -748,25 +781,25 @@ QPopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slot  //    this is also used in "mixer"  //--------------------------------------------------------- -void populateAddTrack(QPopupMenu* addTrack) +void populateAddTrack(Q3PopupMenu* addTrack)        { -      addTrack->insertItem(QIconSet(*addtrack_addmiditrackIcon), +      addTrack->insertItem(QIcon(*addtrack_addmiditrackIcon),           QT_TR_NOOP("Add Midi Track"), Track::MIDI); -      addTrack->insertItem(QIconSet(*addtrack_drumtrackIcon), +      addTrack->insertItem(QIcon(*addtrack_drumtrackIcon),           QT_TR_NOOP("Add Drum Track"), Track::DRUM); -      addTrack->insertItem(QIconSet(*addtrack_wavetrackIcon), +      addTrack->insertItem(QIcon(*addtrack_wavetrackIcon),           QT_TR_NOOP("Add Wave Track"), Track::WAVE); -      addTrack->insertItem(QIconSet(*addtrack_audiooutputIcon), +      addTrack->insertItem(QIcon(*addtrack_audiooutputIcon),           QT_TR_NOOP("Add Audio Output"), Track::AUDIO_OUTPUT); -      addTrack->insertItem(QIconSet(*addtrack_audiogroupIcon), +      addTrack->insertItem(QIcon(*addtrack_audiogroupIcon),           QT_TR_NOOP("Add Audio Group"), Track::AUDIO_GROUP); -      addTrack->insertItem(QIconSet(*addtrack_audioinputIcon), +      addTrack->insertItem(QIcon(*addtrack_audioinputIcon),           QT_TR_NOOP("Add Audio Input"), Track::AUDIO_INPUT); -      addTrack->insertItem(QIconSet(*addtrack_auxsendIcon), +      addTrack->insertItem(QIcon(*addtrack_auxsendIcon),           QT_TR_NOOP("Add Aux Send"), Track::AUDIO_AUX);        // Create a sub-menu and fill it with found synth types. Make addTrack the owner. -      QPopupMenu* synp = populateAddSynth(addTrack, song, SLOT(addNewTrack(int))); +      Q3PopupMenu* synp = populateAddSynth(addTrack, song, SLOT(addNewTrack(int)));        // Add the sub-menu to the given menu.        addTrack->insertItem(*synthIcon, QT_TR_NOOP("Add Synth"), synp, Track::AUDIO_SOFTSYNTH); @@ -779,12 +812,12 @@ void populateAddTrack(QPopupMenu* addTrack)  //   MusE  //--------------------------------------------------------- -MusE::MusE(int argc, char** argv) : QMainWindow(0, "mainwindow") +MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")        {        // By T356. For LADSPA plugins in plugin.cpp -      QWidgetFactory::addWidgetFactory( new PluginWidgetFactory ); +      // QWidgetFactory::addWidgetFactory( new PluginWidgetFactory ); ddskrjo -      setFocusPolicy(WheelFocus); +      setFocusPolicy(Qt::WheelFocus);        muse                  = this;    // hack        clipListEdit          = 0;        midiSyncConfig        = 0; @@ -807,7 +840,8 @@ MusE::MusE(int argc, char** argv) : QMainWindow(0, "mainwindow")        mixer2                = 0;        watchdogThread        = 0;        editInstrument        = 0; - +      routingPopupMenu      = 0; +              appName               = QString("MusE");        song           = new Song("song"); @@ -832,11 +866,11 @@ MusE::MusE(int argc, char** argv) : QMainWindow(0, "mainwindow")        //---------------------------------------------------        //    undo/redo        //--------------------------------------------------- -      undoRedo = new QActionGroup(this, tr("UndoRedo"), false); -      undoAction = new QAction(tr("undo"), QIconSet(*undoIconS, *undoIcon), tr("Und&o"), -        CTRL+Key_Z, undoRedo, "undo"); -      redoAction = new QAction(tr("redo"), QIconSet(*redoIconS, *redoIcon), tr("Re&do"), -        CTRL+Key_Y, undoRedo, "redo"); +      undoRedo = new Q3ActionGroup(this, tr("UndoRedo"), false); +      undoAction = new Q3Action(tr("undo"), QIcon(*undoIconS), tr("Und&o"), // ddskrjo +        Qt::CTRL+Qt::Key_Z, undoRedo, "undo"); +      redoAction = new Q3Action(tr("redo"), QIcon(*redoIconS), tr("Re&do"), // ddskrjo +        Qt::CTRL+Qt::Key_Y, undoRedo, "redo");        undoAction->setWhatsThis(tr("undo last change to song"));        redoAction->setWhatsThis(tr("redo last undo"));        undoAction->setEnabled(false); @@ -848,58 +882,58 @@ MusE::MusE(int argc, char** argv) : QMainWindow(0, "mainwindow")        //    Transport        //--------------------------------------------------- -      transportAction = new QActionGroup(this, tr("Transport"), false); +      transportAction = new Q3ActionGroup(this, tr("Transport"), false); -      loopAction = new QAction(tr("loop"), QIconSet(*loop1Icon), +      loopAction = new Q3Action(tr("loop"), QIcon(*loop1Icon),           tr("Loop"), 0, transportAction, "loop", true);        loopAction->setWhatsThis(tr(infoLoopButton));        connect(loopAction, SIGNAL(toggled(bool)), song, SLOT(setLoop(bool))); -      punchinAction = new QAction(tr("punchin"), QIconSet(*punchin1Icon), +      punchinAction = new Q3Action(tr("punchin"), QIcon(*punchin1Icon),           tr("Punchin"), 0, transportAction, "Punchin", true);        punchinAction->setWhatsThis(tr(infoPunchinButton));        connect(punchinAction, SIGNAL(toggled(bool)), song, SLOT(setPunchin(bool))); -      punchoutAction = new QAction(tr("punchout"), QIconSet(*punchout1Icon), +      punchoutAction = new Q3Action(tr("punchout"), QIcon(*punchout1Icon),           tr("Punchout"), 0, transportAction, "punchout", true);        punchoutAction->setWhatsThis(tr(infoPunchoutButton));        connect(punchoutAction, SIGNAL(toggled(bool)), song, SLOT(setPunchout(bool)));        transportAction->addSeparator(); -      startAction = new QAction(tr("start"), QIconSet(*startIcon), +      startAction = new Q3Action(tr("start"), QIcon(*startIcon),           tr("Start"), 0, transportAction, "start");        startAction->setWhatsThis(tr(infoStartButton));        connect(startAction, SIGNAL(activated()), song, SLOT(rewindStart())); -      rewindAction = new QAction(tr("rewind"), QIconSet(*frewindIcon), +      rewindAction = new Q3Action(tr("rewind"), QIcon(*frewindIcon),           tr("Rewind"), 0, transportAction, "rewind");        rewindAction->setWhatsThis(tr(infoRewindButton));        connect(rewindAction, SIGNAL(activated()), song, SLOT(rewind())); -      forwardAction = new QAction(tr("forward"), QIconSet(*fforwardIcon), +      forwardAction = new Q3Action(tr("forward"), QIcon(*fforwardIcon),           tr("Forward"), 0, transportAction, "forward");        forwardAction->setWhatsThis(tr(infoForwardButton));        connect(forwardAction, SIGNAL(activated()), song, SLOT(forward())); -      stopAction = new QAction(tr("stop"), QIconSet(*stopIcon), +      stopAction = new Q3Action(tr("stop"), QIcon(*stopIcon),           tr("Stop"), 0, transportAction, "stop", true);        stopAction->setWhatsThis(tr(infoStopButton));        stopAction->setOn(true);        connect(stopAction, SIGNAL(toggled(bool)), song, SLOT(setStop(bool))); -      playAction = new QAction(tr("play"),  QIconSet(*playIcon), +      playAction = new Q3Action(tr("play"),  QIcon(*playIcon),           tr("Play"), 0, transportAction, "play", true);        playAction->setWhatsThis(tr(infoPlayButton));        playAction->setOn(false);        connect(playAction, SIGNAL(toggled(bool)), song, SLOT(setPlay(bool))); -      recordAction = new QAction(tr("record"),  QIconSet(*recordIcon), +      recordAction = new Q3Action(tr("record"),  QIcon(*recordIcon),           tr("Record"), 0, transportAction, "record", true);        recordAction->setWhatsThis(tr(infoRecordButton));        connect(recordAction, SIGNAL(toggled(bool)), song, SLOT(setRecord(bool))); -      panicAction = new QAction(tr("panic"),  QIconSet(*panicIcon), +      panicAction = new Q3Action(tr("panic"),  QIcon(*panicIcon),           tr("Panic"), 0, 0, "panic", false);        panicAction->setWhatsThis(tr(infoPanicButton));        connect(panicAction, SIGNAL(activated()), song, SLOT(panic())); @@ -910,22 +944,22 @@ MusE::MusE(int argc, char** argv) : QMainWindow(0, "mainwindow")        //----Actions -      fileNewAction = new QAction(tr("new"), -        QIconSet(*filenewIconS, *filenewIcon), tr("&New"), 0, this, "new"); +      fileNewAction = new Q3Action(tr("new"), +        QIcon(*filenewIcon), tr("&New"), 0, this, "new"); // ddskrjo        fileNewAction->setToolTip(tr(fileNewText));        fileNewAction->setWhatsThis(tr(fileNewText)); -      fileOpenAction = new QAction(tr("open"), -        QIconSet(*openIconS, *openIcon), tr("&Open"), 0, this, "open"); +      fileOpenAction = new Q3Action(tr("open"), +        QIcon(*openIcon), tr("&Open"), 0, this, "open"); // ddskrjo        fileOpenAction->setToolTip(tr(fileOpenText));        fileOpenAction->setWhatsThis(tr(fileOpenText)); -      fileSaveAction = new QAction(tr("save"), -        QIconSet(*saveIconS, *saveIcon), tr("&Save"), 0, this, "save"); +      fileSaveAction = new Q3Action(tr("save"), +        QIcon(*saveIcon), tr("&Save"), 0, this, "save"); // ddskrjo        fileSaveAction->setToolTip(tr(fileSaveText));        fileSaveAction->setWhatsThis(tr(fileSaveText)); -      pianoAction = new QAction(tr("pianoroll"), +      pianoAction = new Q3Action(tr("pianoroll"),          *pianoIconSet, tr("Pianoroll"), 0, this, "pianoroll");        connect(pianoAction, SIGNAL(activated()), SLOT(startPianoroll())); @@ -941,7 +975,7 @@ MusE::MusE(int argc, char** argv) : QMainWindow(0, "mainwindow")        //    Toolbar        //-------------------------------------------------- -      tools = new QToolBar(tr("File Buttons"), this); +      tools = new Q3ToolBar(tr("File Buttons"), this);        fileNewAction->addTo(tools);        fileOpenAction->addTo(tools);        fileSaveAction->addTo(tools); @@ -949,17 +983,17 @@ MusE::MusE(int argc, char** argv) : QMainWindow(0, "mainwindow")        //        //    Whats This        // -      QWhatsThis::whatsThisButton(tools); +      Q3WhatsThis::whatsThisButton(tools);        tools->addSeparator();        undoRedo->addTo(tools);        tools1 = new EditToolBar(this, arrangerTools); -      QToolBar* transportToolbar = new QToolBar(this); +      Q3ToolBar* transportToolbar = new Q3ToolBar(this);        transportAction->addTo(transportToolbar); -      QToolBar* panicToolbar = new QToolBar(this); +      Q3ToolBar* panicToolbar = new Q3ToolBar(this);        panicAction->addTo(panicToolbar);        if (realTimePriority < sched_get_priority_min(SCHED_FIFO)) @@ -998,11 +1032,11 @@ MusE::MusE(int argc, char** argv) : QMainWindow(0, "mainwindow")        //    popup File        //------------------------------------------------------------- -      menu_file = new QPopupMenu(this); +      menu_file = new Q3PopupMenu(this);        menuBar()->insertItem(tr("&File"), menu_file);        fileNewAction->addTo(menu_file);        fileOpenAction->addTo(menu_file); -      openRecent = new QPopupMenu(menu_file); +      openRecent = new Q3PopupMenu(menu_file);        connect(openRecent, SIGNAL(aboutToShow()), this, SLOT(openRecentMenu()));        connect(openRecent, SIGNAL(activated(int)), this, SLOT(selectProject(int)));        menu_ids[CMD_OPEN_RECENT] = menu_file->insertItem(tr("Open &Recent"), openRecent, 0); @@ -1025,79 +1059,83 @@ MusE::MusE(int argc, char** argv) : QMainWindow(0, "mainwindow")        //    popup Edit        //------------------------------------------------------------- -      menuEdit = new QPopupMenu(this); +      menuEdit = new Q3PopupMenu(this);        undoRedo->addTo(menuEdit);        menuEdit->insertSeparator();        menuBar()->insertItem(tr("&Edit"), menuEdit);        menuEdit->insertItem(*editcutIconSet, tr("C&ut"),   CMD_CUT); -      menuEdit->setAccel(CTRL+Key_X, CMD_CUT); +      menuEdit->setAccel(Qt::CTRL+Qt::Key_X, CMD_CUT);        menuEdit->insertItem(*editcopyIconSet, tr("&Copy"),  CMD_COPY); -      menuEdit->setAccel(CTRL+Key_C, CMD_COPY); +      menuEdit->setAccel(Qt::CTRL+Qt::Key_C, CMD_COPY);        menuEdit->insertItem(*editpasteIconSet, tr("&Paste"), CMD_PASTE); -      menuEdit->setAccel(CTRL+Key_V, CMD_PASTE); +      menuEdit->setAccel(Qt::CTRL+Qt::Key_V, CMD_PASTE); +      menuEdit->insertItem(*editpasteIconSet, tr("&Insert"), CMD_INSERT); +      menuEdit->setAccel(Qt::CTRL+Qt::SHIFT+Qt::Key_I, CMD_INSERT);        menuEdit->insertItem(*editpasteCloneIconSet, tr("Paste c&lone"), CMD_PASTE_CLONE); -      menuEdit->setAccel(CTRL+SHIFT+Key_V, CMD_PASTE_CLONE); +      menuEdit->setAccel(Qt::CTRL+Qt::SHIFT+Qt::Key_V, CMD_PASTE_CLONE);        menuEdit->insertItem(*editpaste2TrackIconSet, tr("Paste to &track"), CMD_PASTE_TO_TRACK); -      menuEdit->setAccel(CTRL+Key_B, CMD_PASTE_TO_TRACK); +      menuEdit->setAccel(Qt::CTRL+Qt::Key_B, CMD_PASTE_TO_TRACK);        menuEdit->insertItem(*editpasteClone2TrackIconSet, tr("Paste clone to trac&k"), CMD_PASTE_CLONE_TO_TRACK); -      menuEdit->setAccel(CTRL+SHIFT+Key_B, CMD_PASTE_CLONE_TO_TRACK); +      menuEdit->setAccel(Qt::CTRL+Qt::SHIFT+Qt::Key_B, CMD_PASTE_CLONE_TO_TRACK); +      menuEdit->insertItem(*editpasteIconSet, tr("&Insert empty measure"), CMD_INSERTMEAS); +      menuEdit->setAccel(Qt::CTRL+Qt::SHIFT+Qt::Key_X, CMD_INSERTMEAS);        menuEdit->insertSeparator(); -      menuEdit->insertItem(QIconSet(*edit_track_delIcon), +      menuEdit->insertItem(QIcon(*edit_track_delIcon),           tr("Delete Selected Tracks"), CMD_DELETE_TRACK); -      addTrack = new QPopupMenu(this); +      addTrack = new Q3PopupMenu(this);        // Moved below. Have to wait until synths are available...        //populateAddTrack(addTrack); -      menuEdit->insertItem(QIconSet(*edit_track_addIcon), +      menuEdit->insertItem(QIcon(*edit_track_addIcon),           tr("Add Track"), addTrack); -      select = new QPopupMenu(this); -      select->insertItem(QIconSet(*select_allIcon), +      select = new Q3PopupMenu(this); +      select->insertItem(QIcon(*select_allIcon),           tr("Select &All"),  CMD_SELECT_ALL); -      select->insertItem(QIconSet(*select_deselect_allIcon), +      select->insertItem(QIcon(*select_deselect_allIcon),           tr("&Deselect All"), CMD_SELECT_NONE);        menuEdit->insertSeparator(); -      select->insertItem(QIconSet(*select_invert_selectionIcon), +      select->insertItem(QIcon(*select_invert_selectionIcon),           tr("Invert &Selection"), CMD_SELECT_INVERT); -      select->insertItem(QIconSet(*select_inside_loopIcon), +      select->insertItem(QIcon(*select_inside_loopIcon),           tr("&Inside Loop"), CMD_SELECT_ILOOP); -      select->insertItem(QIconSet(*select_outside_loopIcon), +      select->insertItem(QIcon(*select_outside_loopIcon),           tr("&Outside Loop"), CMD_SELECT_OLOOP); -      select->insertItem(QIconSet(*select_all_parts_on_trackIcon), +      select->insertItem(QIcon(*select_all_parts_on_trackIcon),           tr("All &Parts on Track"), CMD_SELECT_PARTS); -      menuEdit->insertItem(QIconSet(*selectIcon), +      menuEdit->insertItem(QIcon(*selectIcon),           tr("Select"), select);        menuEdit->insertSeparator();        pianoAction->addTo(menuEdit);        menu_ids[CMD_OPEN_DRUMS] = menuEdit->insertItem( -         QIconSet(*edit_drummsIcon), tr("Drums"), this, SLOT(startDrumEditor()), 0); +         QIcon(*edit_drummsIcon), tr("Drums"), this, SLOT(startDrumEditor()), 0);        menu_ids[CMD_OPEN_LIST]  = menuEdit->insertItem( -         QIconSet(*edit_listIcon), tr("List"), this, SLOT(startListEditor()), 0); +         QIcon(*edit_listIcon), tr("List"), this, SLOT(startListEditor()), 0);        menu_ids[CMD_OPEN_WAVE]  = menuEdit->insertItem( -         QIconSet(*edit_waveIcon), tr("Wave"), this, SLOT(startWaveEditor()), 0); +         QIcon(*edit_waveIcon), tr("Wave"), this, SLOT(startWaveEditor()), 0); -      master = new QPopupMenu(this); +      master = new Q3PopupMenu(this);        master->setCheckable(false);        menu_ids[CMD_OPEN_GRAPHIC_MASTER] = master->insertItem( -        QIconSet(*mastertrack_graphicIcon),tr("Graphic"), this, SLOT(startMasterEditor()), 0); +        QIcon(*mastertrack_graphicIcon),tr("Graphic"), this, SLOT(startMasterEditor()), 0);        menu_ids[CMD_OPEN_LIST_MASTER] = master->insertItem( -  QIconSet(*mastertrack_listIcon),tr("List"), this, SLOT(startLMasterEditor()), 0); -      menuEdit->insertItem(QIconSet(*edit_mastertrackIcon), -         tr("Mastertrack"), master, Key_F); +  QIcon(*mastertrack_listIcon),tr("List"), this, SLOT(startLMasterEditor()), 0); +      menuEdit->insertItem(QIcon(*edit_mastertrackIcon), +         tr("Mastertrack"), master, Qt::Key_F);        menuEdit->insertSeparator();        connect(menuEdit, SIGNAL(activated(int)), SLOT(cmd(int)));        connect(select, SIGNAL(activated(int)), SLOT(cmd(int))); -      midiEdit = new QPopupMenu(this); +      midiEdit = new Q3PopupMenu(this);        midiEdit->setCheckable(false);  #if 0  // TODO        menu_ids[CMD_OPEN_MIDI_TRANSFORM] = midiEdit->insertItem( -         QIconSet(*midi_transformIcon), tr("Midi &Transform"), this, SLOT(startMidiTransformer()), 0); +         QIcon(*midi_transformIcon), tr("Midi &Transform"), this, SLOT(startMidiTransformer()), 0);        midiEdit->insertItem(tr("Modify Gate Time"), this, SLOT(modifyGateTime()));        midiEdit->insertItem(tr("Modify Velocity"),  this, SLOT(modifyVelocity()));        midiEdit->insertItem(tr("Crescendo"),        this, SLOT(crescendo())); @@ -1113,36 +1151,36 @@ MusE::MusE(int argc, char** argv) : QMainWindow(0, "mainwindow")        midiEdit->insertItem(tr("Mix Track"),        this, SLOT(mixTrack()));  #endif        menu_ids[CMD_TRANSPOSE] = midiEdit->insertItem( -         QIconSet(*midi_transposeIcon), tr("Transpose"), this, SLOT(transpose()), 0); +         QIcon(*midi_transposeIcon), tr("Transpose"), this, SLOT(transpose()), 0);        menuEdit->insertItem( -         QIconSet(*edit_midiIcon), tr("Midi"), midiEdit); +         QIcon(*edit_midiIcon), tr("Midi"), midiEdit);        menuEdit->insertSeparator();        menuEdit->insertItem( -          QIconSet(*edit_listIcon), tr("Song info"), this, SLOT(startSongInfo()), 0); +          QIcon(*edit_listIcon), tr("Song info"), this, SLOT(startSongInfo()), 0);        //-------------------------------------------------------------        //    popup View        //------------------------------------------------------------- -      menuView = new QPopupMenu(this); +      menuView = new Q3PopupMenu(this);        menuView->setCheckable(true);        menuBar()->insertItem(tr("View"), menuView);        tr_id = menuView->insertItem( -         QIconSet(*view_transport_windowIcon), tr("Transport Panel"), this, SLOT(toggleTransport()), 0); +         QIcon(*view_transport_windowIcon), tr("Transport Panel"), this, SLOT(toggleTransport()), 0);        bt_id = menuView->insertItem( -         QIconSet(*view_bigtime_windowIcon), tr("Bigtime window"),  this, SLOT(toggleBigTime()), 0); +         QIcon(*view_bigtime_windowIcon), tr("Bigtime window"),  this, SLOT(toggleBigTime()), 0);        //aid1  = menuView->insertItem(        //   QIconSet(*mixerSIcon), tr("Mixer"), this, SLOT(toggleMixer()), 0);        aid1a  = menuView->insertItem( -         QIconSet(*mixerSIcon), tr("Mixer A"), this, SLOT(toggleMixer1()), 0); +         QIcon(*mixerSIcon), tr("Mixer A"), this, SLOT(toggleMixer1()), 0);        aid1b  = menuView->insertItem( -         QIconSet(*mixerSIcon), tr("Mixer B"), this, SLOT(toggleMixer2()), 0); +         QIcon(*mixerSIcon), tr("Mixer B"), this, SLOT(toggleMixer2()), 0);        // p3.2.24        aid2  = menuView->insertItem( -         QIconSet(*cliplistSIcon), tr("Cliplist"), this, SLOT(startClipList()), 0); +         QIcon(*cliplistSIcon), tr("Cliplist"), this, SLOT(startClipList()), 0);        mr_id = menuView->insertItem( -         QIconSet(*view_markerIcon), tr("Marker View"),  this, SLOT(toggleMarker()), 0); +         QIcon(*view_markerIcon), tr("Marker View"),  this, SLOT(toggleMarker()), 0);        //markerAction->addTo(menuView); @@ -1150,7 +1188,7 @@ MusE::MusE(int argc, char** argv) : QMainWindow(0, "mainwindow")        //    popup Structure        //------------------------------------------------------------- -      menuStructure = new QPopupMenu(this); +      menuStructure = new Q3PopupMenu(this);        menuStructure->setCheckable(false);        menuBar()->insertItem(tr("&Structure"), menuStructure);        menu_ids[CMD_GLOBAL_CUT] = menuStructure->insertItem(tr("Global Cut"),    this, SLOT(globalCut()), 0); @@ -1166,16 +1204,16 @@ MusE::MusE(int argc, char** argv) : QMainWindow(0, "mainwindow")        //    popup Midi        //------------------------------------------------------------- -      midiInputPlugins = new QPopupMenu(this); +      midiInputPlugins = new Q3PopupMenu(this);        midiInputPlugins->setCheckable(false);        mpid0 = midiInputPlugins->insertItem( -         QIconSet(*midi_inputplugins_transposeIcon), tr("Transpose"), 0); +         QIcon(*midi_inputplugins_transposeIcon), tr("Transpose"), 0);        mpid1 = midiInputPlugins->insertItem( -         QIconSet(*midi_inputplugins_midi_input_transformIcon), tr("Midi Input Transform"), 1); +         QIcon(*midi_inputplugins_midi_input_transformIcon), tr("Midi Input Transform"), 1);        mpid2 = midiInputPlugins->insertItem( -         QIconSet(*midi_inputplugins_midi_input_filterIcon), tr("Midi Input Filter"), 2); +         QIcon(*midi_inputplugins_midi_input_filterIcon), tr("Midi Input Filter"), 2);        mpid3 = midiInputPlugins->insertItem( -         QIconSet(*midi_inputplugins_remote_controlIcon), tr("Midi Remote Control"), 3); +         QIcon(*midi_inputplugins_remote_controlIcon), tr("Midi Remote Control"), 3);  /*  **      mpid4 = midiInputPlugins->insertItem(  **         QIconSet(*midi_inputplugins_random_rhythm_generatorIcon), tr("Random Rhythm Generator"), 4); @@ -1184,63 +1222,63 @@ MusE::MusE(int argc, char** argv) : QMainWindow(0, "mainwindow")  //      midiInputPlugins->setItemEnabled(mpid4, false); -      menu_functions = new QPopupMenu(this); +      menu_functions = new Q3PopupMenu(this);        menu_functions->setCheckable(true);        menuBar()->insertItem(tr("&Midi"), menu_functions);        menu_functions->setCaption(tr("Midi")); -      menuScriptPlugins = new QPopupMenu(this); +      menuScriptPlugins = new Q3PopupMenu(this);        song->populateScriptMenu(menuScriptPlugins, this);        menu_functions->insertItem(tr("&Plugins"), menuScriptPlugins);        menu_ids[CMD_MIDI_EDIT_INSTRUMENTS] = menu_functions->insertItem( -         QIconSet(*midi_edit_instrumentIcon), tr("Edit Instrument"), this, SLOT(startEditInstrument()), 0); +         QIcon(*midi_edit_instrumentIcon), tr("Edit Instrument"), this, SLOT(startEditInstrument()), 0);        menu_functions->insertItem( -         QIconSet(*midi_inputpluginsIcon), tr("Input Plugins"), midiInputPlugins, Key_P); +         QIcon(*midi_inputpluginsIcon), tr("Input Plugins"), midiInputPlugins, Qt::Key_P);        menu_functions->insertSeparator();        menu_ids[CMD_MIDI_RESET] = menu_functions->insertItem( -         QIconSet(*midi_reset_instrIcon), tr("Reset Instr."), this, SLOT(resetMidiDevices()), 0); +         QIcon(*midi_reset_instrIcon), tr("Reset Instr."), this, SLOT(resetMidiDevices()), 0);        menu_ids[CMD_MIDI_INIT] = menu_functions->insertItem( -         QIconSet(*midi_init_instrIcon), tr("Init Instr."),  this, SLOT(initMidiDevices()), 0); +         QIcon(*midi_init_instrIcon), tr("Init Instr."),  this, SLOT(initMidiDevices()), 0);        menu_ids[CMD_MIDI_LOCAL_OFF] = menu_functions->insertItem( -         QIconSet(*midi_local_offIcon), tr("local off"), this, SLOT(localOff()), 0); +         QIcon(*midi_local_offIcon), tr("local off"), this, SLOT(localOff()), 0);        //-------------------------------------------------------------        //    popup Audio        //------------------------------------------------------------- -      menu_audio = new QPopupMenu(this); +      menu_audio = new Q3PopupMenu(this);        menu_audio->setCheckable(true);        menuBar()->insertItem(tr("&Audio"), menu_audio);        menu_ids[CMD_AUDIO_BOUNCE_TO_TRACK] = menu_audio->insertItem( -         QIconSet(*audio_bounce_to_trackIcon), tr("Bounce to Track"), this, SLOT(bounceToTrack()), 0); +         QIcon(*audio_bounce_to_trackIcon), tr("Bounce to Track"), this, SLOT(bounceToTrack()), 0);        menu_ids[CMD_AUDIO_BOUNCE_TO_FILE] = menu_audio->insertItem( -         QIconSet(*audio_bounce_to_fileIcon), tr("Bounce to File"), this, SLOT(bounceToFile()), 0); +         QIcon(*audio_bounce_to_fileIcon), tr("Bounce to File"), this, SLOT(bounceToFile()), 0);        menu_audio->insertSeparator();        menu_ids[CMD_AUDIO_RESTART] = menu_audio->insertItem( -         QIconSet(*audio_restartaudioIcon), tr("Restart Audio"), this, SLOT(seqRestart()), 0); +         QIcon(*audio_restartaudioIcon), tr("Restart Audio"), this, SLOT(seqRestart()), 0);        //-------------------------------------------------------------        //    popup Automation        //------------------------------------------------------------- -      menuAutomation = new QPopupMenu(this); +      menuAutomation = new Q3PopupMenu(this);        menuAutomation->setCheckable(true);        menuBar()->insertItem(tr("Automation"), menuAutomation);        autoId = menuAutomation->insertItem( -         QIconSet(*automation_mixerIcon), tr("Mixer Automation"), this, SLOT(switchMixerAutomation()), 0); +         QIcon(*automation_mixerIcon), tr("Mixer Automation"), this, SLOT(switchMixerAutomation()), 0);        menuAutomation->insertSeparator();        menu_ids[CMD_MIXER_SNAPSHOT] = menuAutomation->insertItem( -         QIconSet(*automation_take_snapshotIcon), tr("Take Snapshot"), this, SLOT(takeAutomationSnapshot()), 0); +         QIcon(*automation_take_snapshotIcon), tr("Take Snapshot"), this, SLOT(takeAutomationSnapshot()), 0);        menu_ids[CMD_MIXER_AUTOMATION_CLEAR] = menuAutomation->insertItem( -         QIconSet(*automation_clear_dataIcon), tr("Clear Automation Data"), this, SLOT(clearAutomation()), 0); +         QIcon(*automation_clear_dataIcon), tr("Clear Automation Data"), this, SLOT(clearAutomation()), 0);        menuAutomation->setItemEnabled(menu_ids[CMD_MIXER_AUTOMATION_CLEAR], false);        //-------------------------------------------------------------        //    popup Settings        //------------------------------------------------------------- -      follow = new QPopupMenu(this); +      follow = new Q3PopupMenu(this);        follow->setCheckable(false);        fid0 = follow->insertItem(tr("dont follow Song"), CMD_FOLLOW_NO);        fid1 = follow->insertItem(tr("follow page"), CMD_FOLLOW_JUMP); @@ -1248,35 +1286,35 @@ MusE::MusE(int argc, char** argv) : QMainWindow(0, "mainwindow")        follow->setItemChecked(fid1, true);        connect(follow, SIGNAL(activated(int)), SLOT(cmd(int))); -      menuSettings = new QPopupMenu(this); +      menuSettings = new Q3PopupMenu(this);        menuSettings->setCheckable(false);        menuBar()->insertItem(tr("Settings"), menuSettings);        menu_ids[CMD_GLOBAL_CONFIG] = menuSettings->insertItem( -         QIconSet(*settings_globalsettingsIcon), tr("Global Settings"), this, SLOT(configGlobalSettings()),0); +         QIcon(*settings_globalsettingsIcon), tr("Global Settings"), this, SLOT(configGlobalSettings()),0);        menu_ids[CMD_CONFIG_SHORTCUTS] = menuSettings->insertItem( -         QIconSet(*settings_configureshortcutsIcon), tr("Configure shortcuts"), this, SLOT(configShortCuts()), 0); +         QIcon(*settings_configureshortcutsIcon), tr("Configure shortcuts"), this, SLOT(configShortCuts()), 0);        menuSettings->insertItem( -         QIconSet(*settings_follow_songIcon), tr("follow song"), follow, Key_F); +         QIcon(*settings_follow_songIcon), tr("follow song"), follow, Qt::Key_F);        menu_ids[CMD_CONFIG_METRONOME] = menuSettings->insertItem( -         QIconSet(*settings_metronomeIcon), tr("Metronome"), this, SLOT(configMetronome()), 0); +         QIcon(*settings_metronomeIcon), tr("Metronome"), this, SLOT(configMetronome()), 0);        menuSettings->insertSeparator();        menu_ids[CMD_CONFIG_MIDISYNC] = menuSettings->insertItem( -         QIconSet(*settings_midisyncIcon), tr("Midi Sync"), this, SLOT(configMidiSync()), 0); +         QIcon(*settings_midisyncIcon), tr("Midi Sync"), this, SLOT(configMidiSync()), 0);        menu_ids[CMD_MIDI_FILE_CONFIG] = menuSettings->insertItem( -         QIconSet(*settings_midifileexportIcon), tr("Midi File Import/Export"), this, SLOT(configMidiFile()), 0); +         QIcon(*settings_midifileexportIcon), tr("Midi File Import/Export"), this, SLOT(configMidiFile()), 0);        menuSettings->insertSeparator();        menu_ids[CMD_APPEARANCE_SETTINGS] = menuSettings->insertItem( -         QIconSet(*settings_appearance_settingsIcon), tr("Appearance settings"), this, SLOT(configAppearance()), 0); +         QIcon(*settings_appearance_settingsIcon), tr("Appearance settings"), this, SLOT(configAppearance()), 0);        menuSettings->insertSeparator();        menu_ids[CMD_CONFIG_MIDI_PORTS] = menuSettings->insertItem( -         QIconSet(*settings_midiport_softsynthsIcon), tr("Midi Ports / Soft Synth"), this, SLOT(configMidiPorts()), 0); +         QIcon(*settings_midiport_softsynthsIcon), tr("Midi Ports / Soft Synth"), this, SLOT(configMidiPorts()), 0);        //---------------------------------------------------        //    popup Help        //---------------------------------------------------        menuBar()->insertSeparator(); -      menu_help = new QPopupMenu(this); +      menu_help = new Q3PopupMenu(this);        menu_help->setCheckable(false);        menuBar()->insertItem(tr("&Help"), menu_help); @@ -1286,9 +1324,9 @@ MusE::MusE(int argc, char** argv) : QMainWindow(0, "mainwindow")        menu_ids[CMD_OPEN_BUG] = menu_help->insertItem(tr("&Report Bug..."), this, SLOT(startBugBrowser()), 0);        menu_help->insertSeparator();        menu_help->insertItem(tr("&About MusE"), this, SLOT(about())); -      menu_help->insertItem(tr("About&Qt"), this, SLOT(aboutQt())); -      menu_help->insertSeparator(); -      menu_ids[CMD_START_WHATSTHIS] = menu_help->insertItem(tr("What's &This?"), this, SLOT(whatsThis()), 0); +      //menu_help->insertItem(tr("About&Qt"), this, SLOT(aboutQt())); +      //menu_help->insertSeparator(); +      //menu_ids[CMD_START_WHATSTHIS] = menu_help->insertItem(tr("What's &This?"), this, SLOT(whatsThis()), 0);        //---------------------------------------------------        //    Central Widget @@ -1560,7 +1598,27 @@ void MusE::loadProjectFile1(const QString& name, bool songTemplate, bool loadAll              showBigtime(config.bigTimeVisible);              //showMixer(config.mixerVisible);              showMixer1(config.mixer1Visible); -            showMixer2(config.mixer1Visible); +            showMixer2(config.mixer2Visible); +             +            // Added p3.3.43 Make sure the geometry is correct because showMixerX() will NOT  +            //  set the geometry if the mixer has already been created. +            if(mixer1) +            { +              //if(mixer1->geometry().size() != config.mixer1.geometry.size())   // p3.3.53 Moved below +              //  mixer1->resize(config.mixer1.geometry.size()); +               +              if(mixer1->geometry().topLeft() != config.mixer1.geometry.topLeft()) +                mixer1->move(config.mixer1.geometry.topLeft()); +            } +            if(mixer2) +            { +              //if(mixer2->geometry().size() != config.mixer2.geometry.size())   // p3.3.53 Moved below +              //  mixer2->resize(config.mixer2.geometry.size()); +               +              if(mixer2->geometry().topLeft() != config.mixer2.geometry.topLeft()) +                mixer2->move(config.mixer2.geometry.topLeft()); +            } +                          showMarker(config.markerVisible);              resize(config.geometryMain.size());              move(config.geometryMain.topLeft()); @@ -1579,6 +1637,36 @@ void MusE::loadProjectFile1(const QString& name, bool songTemplate, bool loadAll        song->updatePos();        clipboardChanged(); // enable/disable "Paste"        selectionChanged(); // enable/disable "Copy" & "Paste" +       +      // p3.3.53 Try this AFTER the song update above which does a mixer update... Tested OK - mixers resize properly now. +      if (loadAll)  +      { +            if(mixer1) +            { +              if(mixer1->geometry().size() != config.mixer1.geometry.size()) +              { +                //printf("MusE::loadProjectFile1 resizing mixer1 x:%d y:%d w:%d h:%d\n", config.mixer1.geometry.x(),  +                //                                                                       config.mixer1.geometry.y(),  +                //                                                                       config.mixer1.geometry.width(),  +                //                                                                       config.mixer1.geometry.height() +                //                                                                       );   +                mixer1->resize(config.mixer1.geometry.size()); +              } +            }   +            if(mixer2) +            { +              if(mixer2->geometry().size() != config.mixer2.geometry.size()) +              { +                //printf("MusE::loadProjectFile1 resizing mixer2 x:%d y:%d w:%d h:%d\n", config.mixer2.geometry.x(),  +                //                                                                       config.mixer2.geometry.y(),  +                //                                                                       config.mixer2.geometry.width(),  +                //                                                                       config.mixer2.geometry.height() +                //                                                                       );   +                mixer2->resize(config.mixer2.geometry.size()); +              } +            }   +      } +              }  //--------------------------------------------------------- @@ -1719,7 +1807,8 @@ bool MusE::save(const QString& name, bool overwriteWarn)        write(xml);        if (ferror(f)) {              QString s = "Write File\n" + name + "\nfailed: " -               + strerror(errno); +               //+ strerror(errno); +               + QString(strerror(errno));                 // p4.0.0              QMessageBox::critical(this,                 tr("MusE: Write File failed"), s);              popenFlag? pclose(f) : fclose(f); @@ -1798,6 +1887,11 @@ void MusE::closeEvent(QCloseEvent*)          printf("Muse: Exiting Metronome\n");        exitMetronome(); +      // p3.3.47 +      // Make sure to clear the menu, which deletes any sub menus. +      if(routingPopupMenu) +        routingPopupMenu->clear(); +              // Changed by Tim. p3.3.14        //SynthIList* sl = song->syntis();        //for (iSynthI i = sl->begin(); i != sl->end(); ++i) @@ -1832,6 +1926,16 @@ void MusE::closeEvent(QCloseEvent*)          printf("Muse: Exiting Dsp\n");        AL::exitDsp(); +      if(debugMsg) +        printf("Muse: Exiting OSC\n"); +      exitOSC(); +       +      // p3.3.47 +      delete audioPrefetch; +      delete audio; +      delete midiSeq; +      delete song; +              qApp->quit();        } @@ -1854,7 +1958,10 @@ void MusE::showMarker(bool flag)        if (markerView == 0) {              markerView = new MarkerView(this); -            connect(arranger, SIGNAL(addMarker(int)), markerView, SLOT(addMarker(int))); +            // Removed p3.3.43  +            // Song::addMarker() already emits a 'markerChanged'. +            //connect(arranger, SIGNAL(addMarker(int)), markerView, SLOT(addMarker(int))); +                          connect(markerView, SIGNAL(closed()), SLOT(markerClosed()));              toplevels.push_back(Toplevel(Toplevel::MARKER, (unsigned long)(markerView), markerView));              markerView->show(); @@ -1893,6 +2000,676 @@ void MusE::showTransport(bool flag)        }  //--------------------------------------------------------- +//   getRoutingPopupMenu +//--------------------------------------------------------- + +PopupMenu* MusE::getRoutingPopupMenu() +{ +  if(!routingPopupMenu) +    routingPopupMenu = new PopupMenu(this); +  return routingPopupMenu; +} + +//--------------------------------------------------------- +//   updateRouteMenus +//--------------------------------------------------------- + +//void MusE::updateRouteMenus(Track* track) +void MusE::updateRouteMenus(Track* track, QObject* master)    // p3.3.50 +{ +      //if(!track || track != gRoutingPopupMenuMaster || track->type() == Track::AUDIO_AUX) +      //if(!track || track->type() == Track::AUDIO_AUX) +      if(!track || gRoutingPopupMenuMaster != master)  // p3.3.50 +        return; +         +      //QPopupMenu* pup = muse->getORoutesPopup(); +      PopupMenu* pup = getRoutingPopupMenu(); +       +      if(pup->count() == 0) +        return; +         +      // p4.0.1 Protection since reverting to regular (self-extinguishing) menu behaviour here in muse2. +      if(!pup->isVisible()) +      { +        //printf("MusE::updateRouteMenus menu is not visible\n"); +        return; +      } +         +      //AudioTrack* t = (AudioTrack*)track; +      RouteList* rl = gIsOutRoutingPopupMenu ? track->outRoutes() : track->inRoutes(); + +      /* +      iRoute iorl = orl->begin(); +      for(; iorl != orl->end(); ++iorl)  +      { +        iRouteMenuMap imm = ormm->begin(); +        for(; imm != ormm->end(); ++imm)  +        { +          if(*iorl == imm->second) +          { +            orpup->setItemChecked(imm->first, true); +            break; +          } +        } +        //if(imm == ormm->end())  +        //{ +        //} +         +      } +      //if (iorl == orl->end())  +      //{ +      //} +      */      +            +      iRouteMenuMap imm = gRoutingMenuMap.begin(); +      for(; imm != gRoutingMenuMap.end(); ++imm)  +      { +        // p3.3.50 Ignore the 'toggle' items. +        if(imm->second.type == Route::MIDI_PORT_ROUTE &&  +           imm->first >= (MIDI_PORTS * MIDI_CHANNELS) && imm->first < (MIDI_PORTS * MIDI_CHANNELS + MIDI_PORTS))    +          continue; +           +        //bool found = false; +        iRoute irl = rl->begin(); +        for(; irl != rl->end(); ++irl)  +        { +          if(imm->second.type == Route::MIDI_PORT_ROUTE)                                     // p3.3.50 Is the map route a midi port route? +          { +            if(irl->type == Route::MIDI_PORT_ROUTE && irl->midiPort == imm->second.midiPort  // Is the track route a midi port route? +               && (irl->channel & imm->second.channel) == imm->second.channel)               // Is the exact channel mask bit(s) set? +            { +              //found = true; +              break; +            } +          } +          else +          if(*irl == imm->second) +          { +            //found = true; +            break; +          } +        } +        //pup->setItemChecked(imm->first, found); +        pup->setItemChecked(imm->first, irl != rl->end()); +      } +       +       +      return; +}       +       +//--------------------------------------------------------- +//   routingPopupMenuActivated +//--------------------------------------------------------- + +void MusE::routingPopupMenuActivated(Track* track, int n) +{ +      //if(!track || (track != gRoutingPopupMenuMaster)) +      if(!track) +        return; +         +      if(track->isMidiTrack()) +      { +        PopupMenu* pup = getRoutingPopupMenu(); +         +        //printf("MusE::routingPopupMenuActivated midi n:%d count:%d\n", n, pup->count()); +         +        if(pup->count() == 0) +          return; +           +        //MidiTrack* t = (MidiTrack*)track; +        RouteList* rl = gIsOutRoutingPopupMenu ? track->outRoutes() : track->inRoutes(); +         +        if(n == -1)  +        { +          //printf("MusE::routingPopupMenuActivated midi n = -1\n"); +          ///delete pup; +          ///pup = 0; +          return; +        } +        else +        { +          //int mdidx = n / MIDI_CHANNELS; +          //int ch = n % MIDI_CHANNELS; +          //int chbit = 1 << ch;              // p3.3.50 +          //int chmask = 0;                    +           +          //if(n >= MIDI_PORTS * MIDI_CHANNELS)   // p3.3.50  Toggle channels. +          //{     +            //for (int i = 0; i < MIDI_CHANNELS; i++) +              //muse->routingPopupMenuActivated(selected, i + MIDI_CHANNELS * (n-1000)); +              //muse->routingPopupMenuActivated(selected, i + MIDI_CHANNELS * (n - MIDI_PORTS * MIDI_CHANNELS));   // p3.3.50 +          //  chbit = (1 << MIDI_CHANNELS) - 1; +          //} +          //if(debugMsg) +            //printf("MusE::routingPopupMenuActivated mdidx:%d ch:%d\n", mdidx, ch); +             +          // p3.3.50 +          iRouteMenuMap imm = gRoutingMenuMap.find(n); +          if(imm == gRoutingMenuMap.end()) +            return; +          if(imm->second.type != Route::MIDI_PORT_ROUTE) +            return; +          Route &aRoute = imm->second; +          int chbit = aRoute.channel; +          Route bRoute(track, chbit); +          int mdidx = aRoute.midiPort; + +          MidiPort* mp = &midiPorts[mdidx]; +          MidiDevice* md = mp->device(); +          if(!md) +          { +            ///delete pup; +            return; +          } +           +          //if(!(md->rwFlags() & 2)) +          if(!(md->rwFlags() & (gIsOutRoutingPopupMenu ? 1 : 2))) +          { +            ///delete pup; +            return; +          }   +           +          //QString s(pup->text(n)); +          //QT_TR_NOOP(md->name()) +           +          //Route srcRoute(s, false, -1); +           +          //Route aRoute(md, ch); +          //Route aRoute(mdidx, ch);      // p3.3.49 +          //Route aRoute(mdidx, chbit);     // p3.3.50 In accordance with new channel mask, use the bit position. +           +          //Route srcRoute(md, -1); +          //Route dstRoute(track, -1); +          //Route bRoute(track, ch); +          //Route bRoute(track, chbit);     // p3.3.50  + +          //if (track->type() == Track::AUDIO_INPUT) +          //      srcRoute.channel = dstRoute.channel = n & 0xf; +           +          int chmask = 0;                    +          iRoute iir = rl->begin(); +          for (; iir != rl->end(); ++iir)  +          { +            //if(*iir == (dst ? bRoute : aRoute)) +            //if(*iir == aRoute) +            if(iir->type == Route::MIDI_PORT_ROUTE && iir->midiPort == mdidx)    // p3.3.50 Is there already a route to this port? +            { +                  chmask = iir->channel;  // p3.3.50 Grab the channel mask. +                  break; +            }       +          } +          //if (iir != rl->end())  +          if ((chmask & chbit) == chbit)             // p3.3.50 Is the channel's bit(s) set? +          { +            // disconnect +            if(gIsOutRoutingPopupMenu) +            { +              //printf("MusE::routingPopupMenuActivated removing route src track name: %s dst device name: %s\n", track->name().latin1(), md->name().latin1()); +              audio->msgRemoveRoute(bRoute, aRoute); +            } +            else +            { +              //printf("MusE::routingPopupMenuActivated removing route src device name: %s dst track name: %s\n", md->name().latin1(), track->name().latin1()); +              audio->msgRemoveRoute(aRoute, bRoute); +            } +          } +          else  +          { +            // connect +            if(gIsOutRoutingPopupMenu) +            { +              //printf("MusE::routingPopupMenuActivated adding route src track name: %s dst device name: %s\n", track->name().latin1(), md->name().latin1()); +              audio->msgAddRoute(bRoute, aRoute); +            } +            else +            { +              //printf("MusE::routingPopupMenuActivated adding route src device name: %s dst track name: %s\n", md->name().latin1(), track->name().latin1()); +              audio->msgAddRoute(aRoute, bRoute); +            }   +          } +           +          //printf("MusE::routingPopupMenuActivated calling msgUpdateSoloStates\n"); +          audio->msgUpdateSoloStates(); +          //printf("MusE::routingPopupMenuActivated calling song->update\n"); +          song->update(SC_ROUTE); +        } +      } +      else +      { +        // TODO: Try to move code from AudioStrip::routingPopupMenuActivated into here. +         +        /* +        PopupMenu* pup = getRoutingPopupMenu(); +         +        printf("MusE::routingPopupMenuActivated audio n:%d count:%d\n", n, pup->count()); +         +        if(pup->count() == 0) +          return; +           +        AudioTrack* t = (AudioTrack*)track; +        RouteList* rl = gIsOutRoutingPopupMenu ? t->outRoutes() : t->inRoutes(); +         +        //QPoint ppt = QCursor::pos(); +         +        if(n == -1)  +        { +          //printf("MusE::routingPopupMenuActivated audio n = -1 deleting popup...\n"); +          printf("MusE::routingPopupMenuActivated audio n = -1\n"); +          ///delete pup; +          ///pup = 0; +          return; +        } +        else +        //if(n == 0) +        //{ +          //printf("MusE::routingPopupMenuActivated audio n = 0 = tearOffHandle\n"); +          //oR->setDown(false);      +        //  return; +        //} +        //else +        { +            if(gIsOutRoutingPopupMenu) +            {   +              QString s(pup->text(n)); +               +              //printf("AudioStrip::routingPopupMenuActivated audio text:%s\n", s.latin1()); +               +              if(track->type() == Track::AUDIO_OUTPUT) +              { +                ///delete orpup; +                 +                int chan = n & 0xf; +                 +                //Route srcRoute(t, -1); +                //Route srcRoute(t, chan, chans); +                //Route srcRoute(t, chan, 1); +                Route srcRoute(t, chan); +                 +                //Route dstRoute(s, true, -1); +                Route dstRoute(s, true, -1, Route::JACK_ROUTE); +                //Route dstRoute(s, true, 0, Route::JACK_ROUTE); +     +                //srcRoute.channel = dstRoute.channel = chan; +                dstRoute.channel = chan; +                //dstRoute.channels = 1; +     +                // check if route src->dst exists: +                iRoute irl = rl->begin(); +                for (; irl != rl->end(); ++irl) { +                      if (*irl == dstRoute) +                            break; +                      } +                if (irl != rl->end()) { +                      // disconnect if route exists +                      audio->msgRemoveRoute(srcRoute, dstRoute); +                      } +                else { +                      // connect if route does not exist +                      audio->msgAddRoute(srcRoute, dstRoute); +                      } +                audio->msgUpdateSoloStates(); +                song->update(SC_ROUTE); +                 +                // p3.3.47 +                //pup->popup(ppt, 0); +                 +                //oR->setDown(false);    +                return; +                 +                // p3.3.46 +                ///goto _redisplay; +              } +               +              iRouteMenuMap imm = gRoutingMenuMap.find(n); +              if(imm == gRoutingMenuMap.end()) +              {   +                ///delete orpup; +                //oR->setDown(false);     // orpup->exec() catches mouse release event +                return; +              }   +               +              //int chan = n >> 16; +              //int chans = (chan >> 15) + 1; // Bit 31 MSB: Mono or stereo. +              //chan &= 0xffff; +              //int chan = imm->second.channel; +              //int chans = imm->second.channels;  +               +              //Route srcRoute(t, -1); +              //srcRoute.remoteChannel = chan; +              //Route srcRoute(t, chan, chans); +              Route srcRoute(t, imm->second.channel, imm->second.channels); +              //Route srcRoute(t, imm->second.channel); +              srcRoute.remoteChannel = imm->second.remoteChannel; +               +              //Route dstRoute(s, true, -1); +              //Route dstRoute(s, true, -1, Route::TRACK_ROUTE); +              Route &dstRoute = imm->second; +   +              // check if route src->dst exists: +              iRoute irl = rl->begin(); +              for (; irl != rl->end(); ++irl) { +                    if (*irl == dstRoute) +                          break; +                    } +              if (irl != rl->end()) { +                    // disconnect if route exists +                    audio->msgRemoveRoute(srcRoute, dstRoute); +                    } +              else { +                    // connect if route does not exist +                    audio->msgAddRoute(srcRoute, dstRoute); +                    } +              audio->msgUpdateSoloStates(); +              song->update(SC_ROUTE); +                 +              // p3.3.46 +              //oR->setDown(false);      +              ///goto _redisplay; +               +              // p3.3.47 +              //pup->popup(ppt, 0); +            }   +            else +            { +              QString s(pup->text(n)); +               +              if(track->type() == Track::AUDIO_INPUT) +              { +                ///delete pup; +                int chan = n & 0xf; +                 +                Route srcRoute(s, false, -1, Route::JACK_ROUTE); +                Route dstRoute(t, chan); +                 +                srcRoute.channel = chan; +                 +                iRoute irl = rl->begin(); +                for(; irl != rl->end(); ++irl)  +                { +                  if(*irl == srcRoute) +                    break; +                } +                if(irl != rl->end())  +                  // disconnect +                  audio->msgRemoveRoute(srcRoute, dstRoute); +                else  +                  // connect +                  audio->msgAddRoute(srcRoute, dstRoute); +                 +                audio->msgUpdateSoloStates(); +                song->update(SC_ROUTE); +                //iR->setDown(false);     // pup->exec() catches mouse release event +                return; +                 +                // p3.3.46 +                ///goto _redisplay; +              } +               +              iRouteMenuMap imm = gRoutingMenuMap.find(n); +              if(imm == gRoutingMenuMap.end()) +              {   +                //delete pup; +                //iR->setDown(false);     // pup->exec() catches mouse release event +                return; +              }   +               +              //int chan = n >> 16; +              //int chans = (chan >> 15) + 1; // Bit 31 MSB: Mono or stereo. +              //chan &= 0xffff; +              //int chan = imm->second.channel; +              //int chans = imm->second.channels;  +               +              //Route srcRoute(s, false, -1); +              //Route srcRoute(s, false, -1, Route::TRACK_ROUTE); +              Route &srcRoute = imm->second; +               +              //Route dstRoute(t, -1); +              //Route dstRoute(t, chan, chans); +              Route dstRoute(t, imm->second.channel, imm->second.channels); +              //Route dstRoute(t, imm->second.channel); +              dstRoute.remoteChannel = imm->second.remoteChannel; +   +              iRoute irl = rl->begin(); +              for (; irl != rl->end(); ++irl) { +                    if (*irl == srcRoute) +                          break; +                    } +              if (irl != rl->end()) { +                    // disconnect +                    audio->msgRemoveRoute(srcRoute, dstRoute); +                    } +              else { +                    // connect +                    audio->msgAddRoute(srcRoute, dstRoute); +                    } +              audio->msgUpdateSoloStates(); +              song->update(SC_ROUTE); +               +              // p3.3.46 +              //iR->setDown(false);      +              ///goto _redisplay; +               +               +               +               +            } +                 +        } +       */ +        +      } +      //else +      //{ +      //} +             +      ///delete pup; +      //oR->setDown(false);      +} + +//--------------------------------------------------------- +//   routingPopupMenuAboutToHide +//--------------------------------------------------------- + +void MusE::routingPopupMenuAboutToHide() +{ +      // p3.3.47 +      //printf("MusE::routingPopupMenuAboutToHide\n"); +      //if(track) +      //  printf("%s", track->name().latin1()); +      //printf("\n"); +       +      // Hmm, can't do this? Sub-menus stay open with this. Re-arranged, testing... Nope. +      //PopupMenu* pup = muse->getRoutingPopupMenu(); +      //pup->disconnect(); +      //pup->clear(); +       +      // p4.0.1 Removed. IIRC These lines were not strictly necessary in muse-1,  +      //  and here in muse-2 we reverted back to regular Q3PopupMenu behaviour for now,  +      //  which is self-extinguishing, so these lines cannot be enabled -  +      //  gRoutingPopupMenuMaster and gRoutingMenuMap are required for routingPopupMenuActivated(). +      //gRoutingMenuMap.clear(); +      //gRoutingPopupMenuMaster = 0; +} + +//--------------------------------------------------------- +//   prepareRoutingPopupMenu +//--------------------------------------------------------- + +PopupMenu* MusE::prepareRoutingPopupMenu(Track* track, bool dst) +{ +  if(!track) +    return 0; +     +  //QPoint ppt = QCursor::pos(); +   +  if(track->isMidiTrack()) +  { +   +    //QPoint ppt = parent->rect().bottomLeft(); +       +    //if(dst) +    //{ +      // TODO  +       +    //} +    //else +    //{ +      RouteList* rl = dst ? track->outRoutes() : track->inRoutes(); +      //Route dst(track, -1); +     +      ///QPopupMenu* pup = new QPopupMenu(parent); +       +      PopupMenu* pup = getRoutingPopupMenu(); +      pup->disconnect(); +      //connect(pup, SIGNAL(activated(int)), SLOT(routingPopupMenuActivated(int))); +      //connect(pup, SIGNAL(aboutToHide()), SLOT(routingPopupMenuAboutToHide())); +         +      pup->setCheckable(true); +       +      int gid = 0; +      //int n;     +       +    // Routes can't be re-read until the message sent from msgAddRoute1()  +    //  has had time to be sent and actually affected the routes. +    ///_redisplay: +       +      pup->clear(); +      gRoutingMenuMap.clear(); +      gid = 0; +       +      //MidiInPortList* tl = song->midiInPorts(); +      //for(iMidiInPort i = tl->begin();i != tl->end(); ++i)  +      for(int i = 0; i < MIDI_PORTS; ++i) +      { +        //MidiInPort* track = *i; +        // NOTE: Could possibly list all devices, bypassing ports, but no, let's stick with ports. +        MidiPort* mp = &midiPorts[i]; +        MidiDevice* md = mp->device(); +        if(!md) +          continue; +         +        if(!(md->rwFlags() & (dst ? 1 : 2))) +          continue; +           +        //printf("MusE::prepareRoutingPopupMenu adding submenu portnum:%d\n", i); +         +        //QMenu* m = menu->addMenu(track->name()); +        //QPopupMenu* subp = new QPopupMenu(parent); +        //PopupMenu* subp = new PopupMenu(this); +        PopupMenu* subp = new PopupMenu(); +        connect(subp, SIGNAL(activated(int)), pup, SIGNAL(activated(int))); +        //connect(subp, SIGNAL(aboutToHide()), pup, SIGNAL(aboutToHide())); +         +        int chanmask = 0; +        // p3.3.50 To reduce number of routes required, from one per channel to just one containing a channel mask.  +        // Look for the first route to this midi port. There should always be only a single route for each midi port, now. +        for(iRoute ir = rl->begin(); ir != rl->end(); ++ir)    +        { +          if(ir->type == Route::MIDI_PORT_ROUTE && ir->midiPort == i)  +          { +            // We have a route to the midi port. Grab the channel mask. +            chanmask = ir->channel; +            break; +          } +        } +         +        for(int ch = 0; ch < MIDI_CHANNELS; ++ch)  +        { +          //QAction* a = m->addAction(QString("Channel %1").arg(ch+1)); +          //subp->insertItem(QT_TR_NOOP(QString("Channel %1").arg(ch+1)), i * MIDI_CHANNELS + ch); +          gid = i * MIDI_CHANNELS + ch; +           +          //printf("MusE::prepareRoutingPopupMenu inserting gid:%d\n", gid); +           +          subp->insertItem(QString("Channel %1").arg(ch+1), gid); +          //a->setCheckable(true); +          //Route src(track, ch, RouteNode::TRACK); +          //Route src(md, ch); +          //Route r = Route(src, dst); +          //a->setData(QVariant::fromValue(r)); +          //a->setChecked(rl->indexOf(r) != -1); +           +          //Route srcRoute(md, ch); +          //Route srcRoute(i, ch);     // p3.3.49 New: Midi port route. +          int chbit = 1 << ch; +          Route srcRoute(i, chbit);    // p3.3.50 In accordance with new channel mask, use the bit position. +           +          gRoutingMenuMap.insert( pRouteMenuMap(gid, srcRoute) ); +           +          //for(iRoute ir = rl->begin(); ir != rl->end(); ++ir)   // p3.3.50 Removed. +          //{ +            //if(*ir == dst)  +          //  if(*ir == srcRoute)  +          //  { +          //    subp->setItemChecked(id, true); +          //    break; +          //  } +          //} +          if(chanmask & chbit)                  // p3.3.50 Is the channel already set? Show item check mark. +            subp->setItemChecked(gid, true); +        } +        //subp->insertItem(QString("Toggle all"), 1000+i); +        // p3.3.50 One route with all channel bits set. +        gid = MIDI_PORTS * MIDI_CHANNELS + i;           // Make sure each 'toggle' item gets a unique id. +        subp->insertItem(QString("Toggle all"), gid);       +        Route togRoute(i, (1 << MIDI_CHANNELS) - 1);    // Set all channel bits. +        gRoutingMenuMap.insert( pRouteMenuMap(gid, togRoute) ); +         +        pup->insertItem(QT_TR_NOOP(md->name()), subp); +      } +           +      /* +      QPopupMenu* pup = new QPopupMenu(iR); +      pup->setCheckable(true); +      //MidiTrack* t = (MidiTrack*)track; +      RouteList* irl = track->inRoutes(); +   +      MidiTrack* t = (MidiTrack*)track; +      int gid = 0; +      for (int i = 0; i < channel; ++i)  +      { +            char buffer[128]; +            snprintf(buffer, 128, "%s %d", tr("Channel").latin1(), i+1); +            MenuTitleItem* titel = new MenuTitleItem(QString(buffer)); +            pup->insertItem(titel); +   +            if (!checkAudioDevice()) return; +            std::list<QString> ol = audioDevice->outputPorts(); +            for (std::list<QString>::iterator ip = ol.begin(); ip != ol.end(); ++ip) { +                  int id = pup->insertItem(*ip, (gid * 16) + i); +                  Route dst(*ip, true, i); +                  ++gid; +                  for (iRoute ir = irl->begin(); ir != irl->end(); ++ir) { +                        if (*ir == dst) { +                              pup->setItemChecked(id, true); +                              break; +                              } +                        } +                  } +            if (i+1 != channel) +                  pup->insertSeparator(); +      } +      */ +       +      if(pup->count() == 0) +      { +        ///delete pup; +        gRoutingPopupMenuMaster = 0; +        //pup->clear(); +        //pup->disconnect(); +        gRoutingMenuMap.clear(); +        //oR->setDown(false);      +        return 0; +      } +       +      gIsOutRoutingPopupMenu = dst; +      return pup; +    } +     +    return 0; +} + +//---------------------------------------------------------  //   saveAs  //--------------------------------------------------------- @@ -1925,7 +2702,7 @@ bool MusE::saveAs()  static void printVersion(const char* prog)        { -      fprintf(stderr, "%s: Linux Music Editor; Version %s\n", prog, VERSION); +      fprintf(stderr, "%s: Linux Music Editor; Version %s, (svn revision %s)\n", prog, VERSION, SVNVERSION);        }  //--------------------------------------------------------- @@ -2269,6 +3046,11 @@ void MusE::kbAccel(int key)                    song->setRecord(!song->record());                    }              } +      else if (key == shortcuts[SHRT_REC_CLEAR].key) { +            if (!audio->isPlaying()) { +                  song->clearTrackRec(); +                  } +            }        else if (key == shortcuts[SHRT_OPEN_TRANSPORT].key) {              toggleTransport();              } @@ -2328,7 +3110,14 @@ class MuseApplication : public QApplication {                    globalKeyState = ke->stateAfter();                    bool accepted = ke->isAccepted();                    if (!accepted) { -                        muse->kbAccel(ke->key()); +                        int key = ke->key(); +                        if (ke->state() & Qt::ShiftModifier) +                              key += Qt::SHIFT; +                        if (ke->state() & Qt::AltModifier) +                              key += Qt::ALT; +                        if (ke->state() & Qt::ControlModifier) +                              key+= Qt::CTRL; +                        muse->kbAccel(key);                          return true;                          }                    } @@ -2367,7 +3156,7 @@ static void usage(const char* prog, const char* txt)        fprintf(stderr, "   -a       no audio\n");        //fprintf(stderr, "   -P  n    set real time priority to n (default: 50)\n");        fprintf(stderr, "   -P  n    set audio driver real time priority to n (Dummy only, default 40. Else fixed by Jack.)\n"); -      fprintf(stderr, "   -Y  n    force midi real time priority to n (default: audio driver prio +1)\n"); +      fprintf(stderr, "   -Y  n    force midi real time priority to n (default: audio driver prio +2)\n");        fprintf(stderr, "   -p       don't load LADSPA plugins\n");  #ifdef ENABLE_PYTHON        fprintf(stderr, "   -y       enable Python control support\n"); @@ -2438,13 +3227,26 @@ int main(int argc, char* argv[])              museGlobal = p;        if (museGlobal.isEmpty()) { -            QString museGlobal(INSTPREFIX); -            museGlobalLib   =  museGlobal + "/lib/muse"; -            museGlobalShare =  museGlobal + "/share/muse"; +            //QString museGlobal(INSTPREFIX); +            //QString museGlobalLibDir(INSTLIBDIR);  +            //QString museGlobalLibDir(LIBINSTPREFIX); // This has no prefix. +            //museGlobalLib   =  museGlobalLibDir + "/muse"; +            //museGlobalShare =  museGlobal + "/share/muse"; +             +            // p4.0.7 +            museGlobalLib   =  QString(INSTPREFIX) + QString("/") + +                               QString(LIBINSTPREFIX) + QString("/") +  +                               QString(INSTALL_NAME);    +            //museGlobalShare =  museGlobal + QString("/share/") + QString(INSTALL_NAME);    +            museGlobalShare =  QString(INSTPREFIX) + QString("/") +                                              +                               QString(SHAREINSTPREFIX) + QString("/") +  // This has no prefix. Default is "share", set in top cmake script. +                               QString(INSTALL_NAME);                 }        else { -            museGlobalLib   = museGlobal + "/lib"; -            museGlobalShare = museGlobal + "/share"; +            //museGlobalLib   = museGlobal + "/lib"; +            //museGlobalShare = museGlobal + "/share"; +            museGlobalLib   = museGlobal + QString("/") + QString(LIBINSTPREFIX);    // p4.0.7 +            museGlobalShare = museGlobal + QString("/") + QString(SHAREINSTPREFIX);              }        museProject = museProjectInitPath; //getcwd(0, 0);        configName  = QString(getenv("HOME")) + QString("/.MusE"); @@ -2578,6 +3380,7 @@ int main(int argc, char* argv[])        else              realTimeScheduling = audioDevice->isRealtime(); +      useJackTransport.setValue(true);        // setup the prefetch fifo length now that the segmentSize is known        // Changed by Tim. p3.3.17        // Changed to 4 *, JUST FOR TEST!!! @@ -2625,10 +3428,13 @@ int main(int argc, char* argv[])        if(loadDSSI)          initDSSI(); +      // p3.3.39 +      initOSC(); +              initIcons();        initMetronome(); -      QApplication::clipboard()->setSelectionMode(false); +      //QApplication::clipboard()->setSelectionMode(false); ddskrjo        QApplication::addLibraryPath(museGlobalLib + "/qtplugins");        if (debugMsg) { @@ -2671,7 +3477,15 @@ int main(int argc, char* argv[])        }  #endif /* HAVE_LASH */        QTimer::singleShot(100, muse, SLOT(showDidYouKnowDialog())); +              return app.exec(); +      // p3.3.47  +      //int rv = app.exec(); +      // FIXME: Can't do, seg fault at MarkerView::~MarkerView()  +      //  due to already deleted undoRedo. +      //delete muse;  +      //return rv; +              }  #if 0 @@ -2735,6 +3549,12 @@ void MusE::cmd(int cmd)              case CMD_PASTE_CLONE_TO_TRACK:                    arranger->cmd(Arranger::CMD_PASTE_CLONE_PART_TO_TRACK);                    break; +            case CMD_INSERT: +                  arranger->cmd(Arranger::CMD_INSERT_PART); +                  break; +            case CMD_INSERTMEAS: +                  arranger->cmd(Arranger::CMD_INSERT_EMPTYMEAS); +                  break;              case CMD_DELETE:                    song->startUndo();                    if (song->msgRemoveParts()) { @@ -2821,7 +3641,7 @@ void MusE::cmd(int cmd)  void MusE::clipboardChanged()        { -      QCString subtype("partlist"); +      Q3CString subtype("partlist");        QMimeSource* ms = QApplication::clipboard()->data(QClipboard::Clipboard);        if (ms == 0)              return; @@ -2837,6 +3657,7 @@ void MusE::clipboardChanged()                    }              }        menuEdit->setItemEnabled(CMD_PASTE, flag); +      menuEdit->setItemEnabled(CMD_INSERT, flag);        menuEdit->setItemEnabled(CMD_PASTE_CLONE, flag);        menuEdit->setItemEnabled(CMD_PASTE_TO_TRACK, flag);        menuEdit->setItemEnabled(CMD_PASTE_CLONE_TO_TRACK, flag); @@ -2995,7 +3816,7 @@ void MusE::configAppearance()  void MusE::loadTheme(QString s)        { -      if (style().name() != s) +      if (style()->name() != s)              QApplication::setStyle(s);        } @@ -3688,7 +4509,7 @@ void MusE::updateConfiguration()        menu_file->setAccel(shortcuts[SHRT_IMPORT_AUDIO].key, menu_ids[CMD_IMPORT_AUDIO]);        menu_file->setAccel(shortcuts[SHRT_QUIT].key, menu_ids[CMD_QUIT]); -      menuEdit->setAccel(Key_Delete, CMD_DELETE); +      menuEdit->setAccel(Qt::Key_Delete, CMD_DELETE);        menuEdit->setAccel(shortcuts[SHRT_OPEN_DRUMS].key, menu_ids[CMD_OPEN_DRUMS]);        menuEdit->setAccel(shortcuts[SHRT_OPEN_LIST].key, menu_ids[CMD_OPEN_LIST]);        menuEdit->setAccel(shortcuts[SHRT_OPEN_WAVE].key, menu_ids[CMD_OPEN_WAVE]); @@ -3874,7 +4695,9 @@ void MusE::toggleMixer()  void MusE::toggleMixer1()        { -      showMixer1(!menuView->isItemChecked(aid1a)); +      printf("toggle mixer1\n"); +      //showMixer1(!menuView->isItemChecked(aid1a)); +      showMixer1(true);        }  //--------------------------------------------------------- @@ -3938,7 +4761,7 @@ void MusE::focusInEvent(QFocusEvent* ev)        if (mixer2)              mixer2->raise();        raise(); -      QMainWindow::focusInEvent(ev); +      Q3MainWindow::focusInEvent(ev);        }  //--------------------------------------------------------- diff --git a/muse2/muse/app.h b/muse2/muse/app.h index 3e0d36a6..b3dd701a 100644 --- a/muse2/muse/app.h +++ b/muse2/muse/app.h @@ -11,11 +11,13 @@  #include "config.h" -#include <q3mainwindow.h> +//#include <q3mainwindow.h> +#include <QMainWindow>  #include <qrect.h>  //Added by qt3to4:  #include <Qt3Support> -#include <Q3PopupMenu> +//#include <Q3PopupMenu> +#include <QMenu>  #include <QFocusEvent>  #include <QCloseEvent>  #include "cobject.h" @@ -24,8 +26,8 @@  class Part;  class PartList; -class Q3ToolBar; -class Q3PopupMenu; +class QToolBar; +class QMenu;  class Transport;  class BigTime;  class Arranger; @@ -69,7 +71,7 @@ class EditInstrument;  //   MusE  //--------------------------------------------------------- -class MusE : public Q3MainWindow +class MusE : public QMainWindow        {        Q_OBJECT        enum {CMD_CUT, CMD_COPY, CMD_PASTE, CMD_INSERT, CMD_INSERTMEAS, CMD_PASTE_CLONE, @@ -95,22 +97,22 @@ class MusE : public Q3MainWindow              CMD_LAST };        int menu_ids[CMD_LAST]; -      Q3Action *fileSaveAction, *fileOpenAction, *pianoAction, *fileNewAction, /* *markerAction,*/ *testAction; +      QAction *fileSaveAction, *fileOpenAction, *pianoAction, *fileNewAction, /* *markerAction,*/ *testAction;        QString appName;        QFileInfo project; -      Q3ToolBar *tools; +      QToolBar *tools;        EditToolBar *tools1;        Transport* transport;        BigTime* bigtime;        EditInstrument* editInstrument; -      Q3PopupMenu *menu_file, *menuView, *menuSettings, *menu_help; -      Q3PopupMenu *menuEdit, *menuStructure; -      Q3PopupMenu* menu_audio, *menuAutomation; -      Q3PopupMenu* menu_functions, *menuScriptPlugins; -      Q3PopupMenu* select, *master, *midiEdit, *addTrack; +      QMenu *menu_file, *menuView, *menuSettings, *menu_help; +      QMenu *menuEdit, *menuStructure; +      QMenu* menu_audio, *menuAutomation; +      QMenu* menu_functions, *menuScriptPlugins; +      QMenu* select, *master, *midiEdit, *addTrack;        // Special 'stay-open' menu for routes.        PopupMenu* routingPopupMenu;  @@ -118,9 +120,9 @@ class MusE : public Q3MainWindow        int aid1a, aid1b, aid2, aid3, autoId;        int tr_id, bt_id, mr_id;        int cc_id; -      Q3PopupMenu* follow; +      QMenu* follow;        int fid0, fid1, fid2; -      Q3PopupMenu* midiInputPlugins; +      QMenu* midiInputPlugins;        int mpid0, mpid1, mpid2, mpid3, mpid4;        QWidget* midiPortConfig; @@ -143,7 +145,7 @@ class MusE : public Q3MainWindow        ClipListEdit* clipListEdit;        MarkerView* markerView;        MidiTransformerDialog* midiTransformerDialog; -      Q3PopupMenu* openRecent; +      QMenu* openRecent;        bool readMidi(FILE*);        void read(Xml& xml, bool skipConfig); diff --git a/muse2/muse/appearance.cpp b/muse2/muse/appearance.cpp index 201d0c4b..e47653d5 100644 --- a/muse2/muse/appearance.cpp +++ b/muse2/muse/appearance.cpp @@ -5,11 +5,11 @@  //=========================================================  #include <stdio.h> -#include <q3button.h> +#include <QAbstractButton>  #include <qstring.h>  #include <qcombobox.h>  #include <qspinbox.h> -#include <q3buttongroup.h> +#include <QButtonGroup>  #include <qradiobutton.h>  #include <qcheckbox.h>  #include <qlabel.h> @@ -645,7 +645,7 @@ void Appearance::addToPaletteClicked()        {        if (!color)              return; -      Q3Button* button = (Q3Button*)aPalette->selected(); // ddskrjo +      QAbstractButton* button = (QAbstractButton*)aPalette->selected(); // ddskrjo        int r, g, b;        QColor c;        if (button) { @@ -661,7 +661,7 @@ void Appearance::addToPaletteClicked()                          // found empty slot                          aPalette->setButton(i);                          //aPalette->moveFocus(i); ddskrjo -                        button = (Q3Button*)aPalette->find(i); // ddskrjo +                        button = (QAbstractButton*)aPalette->find(i); // ddskrjo                          break;                          }                    } @@ -682,7 +682,7 @@ void Appearance::paletteClicked(int id)        {        if (!color)              return; -      Q3Button* button = (Q3Button*)aPalette->find(id); // ddskrjo +      QAbstractButton* button = (QAbstractButton*)aPalette->find(id); // ddskrjo        if (button) {              QColor c = button->paletteBackgroundColor();              int r, g, b; diff --git a/muse2/muse/arranger/alayout.h b/muse2/muse/arranger/alayout.h index 1a1d5ee2..225a416f 100644 --- a/muse2/muse/arranger/alayout.h +++ b/muse2/muse/arranger/alayout.h @@ -9,7 +9,7 @@  #define __ALAYOUT_H__  #include <qlayout.h> -#include <q3ptrlist.h> +#include <Q3PtrList>  class QScrollBar;  class WidgetStack; diff --git a/muse2/muse/arranger/arranger.cpp b/muse2/muse/arranger/arranger.cpp index d25911cd..386267e2 100644 --- a/muse2/muse/arranger/arranger.cpp +++ b/muse2/muse/arranger/arranger.cpp @@ -13,12 +13,13 @@  #include <qlayout.h>  #include <qcombobox.h>  #include <qtoolbutton.h> -#include <q3buttongroup.h> +#include <QButtonGroup>  #include <qlabel.h> -#include <q3accel.h> +//#include <q3accel.h>  #include <qcombobox.h> -#include <q3whatsthis.h> -#include <q3toolbar.h> +//#include <q3whatsthis.h> +//#include <q3toolbar.h> +#include <QToolBar>  #include <qtooltip.h>  #include <q3popupmenu.h>  #include <q3hbox.h> @@ -26,15 +27,16 @@  #include <q3filedialog.h>  #include <qcheckbox.h>  #include <qpushbutton.h> -#include <q3mainwindow.h> +//#include <q3mainwindow.h> +#include <QMainWindow>  #include <q3widgetstack.h>  #include <qscrollbar.h>  //Added by qt3to4:  #include <QKeyEvent>  #include <Q3ValueList> -#include <Q3GridLayout> +#include <QGridLayout>  #include <QPixmap> -#include <Q3VBoxLayout> +#include <QVBoxLayout>  #include <QWheelEvent>  #include "arranger.h" @@ -92,7 +94,7 @@ QString TWhatsThis::text(const QPoint& pos)  //    is the central widget in app  //--------------------------------------------------------- -Arranger::Arranger(Q3MainWindow* parent, const char* name) +Arranger::Arranger(QMainWindow* parent, const char* name)     : QWidget(parent, name)        {        _raster  = 0;      // measure @@ -111,42 +113,59 @@ Arranger::Arranger(Q3MainWindow* parent, const char* name)        //    create toolbar in toplevel widget        //--------------------------------------------------- -      Q3ToolBar* toolbar = new Q3ToolBar(tr("Arranger"), parent); - -      QLabel* label = new QLabel(tr("Cursor"), toolbar, "Cursor"); +      // FIXME - Orcan: This toolbar needs a hand +      //QToolBar* toolbar = new QToolBar(tr("Arranger"), parent); +      parent->addToolBarBreak(); +      QToolBar* toolbar = parent->addToolBar(tr("Arranger")); +       +      //QLabel* label = new QLabel(tr("Cursor"), toolbar, "Cursor"); +      QLabel* label = new QLabel(tr("Cursor"));        label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);        label->setIndent(3); -      cursorPos = new PosLabel(toolbar); +      toolbar->addWidget(label); +      //cursorPos = new PosLabel(toolbar); +      cursorPos = new PosLabel(0);        cursorPos->setEnabled(false); +      cursorPos->setFixedHeight(22); +      toolbar->addWidget(cursorPos);        const char* rastval[] = {              QT_TR_NOOP("Off"), QT_TR_NOOP("Bar"), "1/2", "1/4", "1/8", "1/16"              }; -      label = new QLabel(tr("Snap"), toolbar, "Snap"); +      //label = new QLabel(tr("Snap"), toolbar, "Snap"); +      label = new QLabel(tr("Snap"));        label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);        label->setIndent(3); -      QComboBox* raster = new QComboBox(toolbar); +      toolbar->addWidget(label); +      //QComboBox* raster = new QComboBox(toolbar); +      QComboBox* raster = new QComboBox();        for (int i = 0; i < 6; i++)              raster->insertItem(tr(rastval[i]), i);        raster->setCurrentItem(1);        connect(raster, SIGNAL(activated(int)), SLOT(_setRaster(int)));        raster->setFocusPolicy(Qt::NoFocus); +      toolbar->addWidget(raster);        // Song len -      label = new QLabel(tr("Len"), toolbar, "Len"); +      //label = new QLabel(tr("Len"), toolbar, "Len"); +      label = new QLabel(tr("Len"));        label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);        label->setIndent(3); +      toolbar->addWidget(label);        // song length is limited to 10000 bars; the real song len is limited        // by overflows in tick computations        // -      lenEntry = new SpinBox(1, 10000, 1, toolbar); +      //lenEntry = new SpinBox(1, 10000, 1, toolbar); +      lenEntry = new SpinBox(1, 10000, 1);        lenEntry->setValue(song->len());        connect(lenEntry, SIGNAL(valueChanged(int)), SLOT(songlenChanged(int)));        QToolTip::add(lenEntry, tr("song length - bars"));        Q3WhatsThis::add(lenEntry, tr("song length - bars")); +      toolbar->addWidget(lenEntry); -      typeBox = new LabelCombo(tr("Type"), toolbar); +      //typeBox = new LabelCombo(tr("Type"), toolbar); +      typeBox = new LabelCombo(tr("Type"), 0);        typeBox->insertItem(tr("NO"), 0);        typeBox->insertItem(tr("GM"), 1);        typeBox->insertItem(tr("GS"), 2); @@ -156,35 +175,52 @@ Arranger::Arranger(Q3MainWindow* parent, const char* name)        QToolTip::add(typeBox, tr("midi song type"));        Q3WhatsThis::add(typeBox, tr("midi song type"));        typeBox->setFocusPolicy(Qt::NoFocus); +      toolbar->addWidget(typeBox); -      label = new QLabel(tr("Pitch"), toolbar, "Pitch"); +      //label = new QLabel(tr("Pitch"), toolbar, "Pitch"); +      label = new QLabel(tr("Pitch"));        label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);        label->setIndent(3); -      globalPitchSpinBox = new SpinBox(-127, 127, 1, toolbar); +      toolbar->addWidget(label); +      //globalPitchSpinBox = new SpinBox(-127, 127, 1, toolbar); +      globalPitchSpinBox = new SpinBox(-127, 127, 1);        globalPitchSpinBox->setValue(song->globalPitchShift());        QToolTip::add(globalPitchSpinBox, tr("midi pitch"));        Q3WhatsThis::add(globalPitchSpinBox, tr("global midi pitch shift"));        connect(globalPitchSpinBox, SIGNAL(valueChanged(int)), SLOT(globalPitchChanged(int))); -      label = new QLabel(tr("Tempo"), toolbar, "Tempo"); +      toolbar->addWidget(globalPitchSpinBox); +      //label = new QLabel(tr("Tempo"), toolbar, "Tempo"); +      label = new QLabel(tr("Tempo"));        label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);        label->setIndent(3); +      toolbar->addWidget(label); +              globalTempoSpinBox = new SpinBox(50, 200, 1, toolbar);        globalTempoSpinBox->setSuffix(QString("%"));        globalTempoSpinBox->setValue(tempomap.globalTempo());        QToolTip::add(globalTempoSpinBox, tr("midi tempo"));        Q3WhatsThis::add(globalTempoSpinBox, tr("midi tempo"));        connect(globalTempoSpinBox, SIGNAL(valueChanged(int)), SLOT(globalTempoChanged(int))); -      QToolButton* tempo50  = new QToolButton(toolbar, "tempo50"); +      toolbar->addWidget(globalTempoSpinBox); +       +      //QToolButton* tempo50  = new QToolButton(toolbar, "tempo50"); +      QToolButton* tempo50  = new QToolButton();        tempo50->setText(QString("50%"));        connect(tempo50, SIGNAL(clicked()), SLOT(setTempo50())); -      QToolButton* tempo100 = new QToolButton(toolbar, "tempo100"); +      toolbar->addWidget(tempo50); +      //QToolButton* tempo100 = new QToolButton(toolbar, "tempo100"); +      QToolButton* tempo100 = new QToolButton();        tempo100->setText(tr("N"));        connect(tempo100, SIGNAL(clicked()), SLOT(setTempo100())); -      QToolButton* tempo200 = new QToolButton(toolbar, "tempo200"); +      toolbar->addWidget(tempo100); +      //QToolButton* tempo200 = new QToolButton(toolbar, "tempo200"); +      QToolButton* tempo200 = new QToolButton();        tempo200->setText(QString("200%"));        connect(tempo200, SIGNAL(clicked()), SLOT(setTempo200())); +      toolbar->addWidget(tempo200); +      //parent->addToolBar(toolbar); -      Q3VBoxLayout* box  = new Q3VBoxLayout(this); +      QVBoxLayout* box  = new QVBoxLayout(this);        box->addWidget(hLine(this), Qt::AlignTop);        //--------------------------------------------------- @@ -307,7 +343,7 @@ Arranger::Arranger(Q3MainWindow* parent, const char* name)        vallist.append(tgrid->maximumSize().width());        split->setSizes(vallist); -      Q3GridLayout* egrid  = new Q3GridLayout(editor); +      QGridLayout* egrid  = new QGridLayout(editor);        egrid->setColStretch(0, 50);        egrid->setRowStretch(2, 50); diff --git a/muse2/muse/arranger/arranger.h b/muse2/muse/arranger/arranger.h index b96a5602..a5ca269d 100644 --- a/muse2/muse/arranger/arranger.h +++ b/muse2/muse/arranger/arranger.h @@ -22,7 +22,7 @@  #include "mtrackinfobase.h"  #include "trackautomationview.h" -class Q3MainWindow; +class QMainWindow;  class QToolButton;  class Header;  class TList; @@ -204,7 +204,7 @@ class Arranger : public QWidget {        enum { CMD_CUT_PART, CMD_COPY_PART, CMD_PASTE_PART, CMD_PASTE_CLONE_PART, CMD_PASTE_PART_TO_TRACK, CMD_PASTE_CLONE_PART_TO_TRACK,               CMD_INSERT_PART, CMD_INSERT_EMPTYMEAS }; -      Arranger(Q3MainWindow* parent, const char* name = 0); +      Arranger(QMainWindow* parent, const char* name = 0);        void setMode(int);        void reset(); diff --git a/muse2/muse/arranger/trackinfo.cpp b/muse2/muse/arranger/trackinfo.cpp index a6bf0a4e..382ef1e0 100644 --- a/muse2/muse/arranger/trackinfo.cpp +++ b/muse2/muse/arranger/trackinfo.cpp @@ -11,10 +11,10 @@  #include <qlabel.h>  #include <q3popupmenu.h>  #include <qmessagebox.h> -#include <q3hbox.h> +//#include <q3hbox.h>  #include <qcheckbox.h>  #include <qpushbutton.h> -#include <q3widgetstack.h> +//#include <q3widgetstack.h>  #include <qlineedit.h>  #include <qtimer.h>  //Added by qt3to4: diff --git a/muse2/muse/cobject.cpp b/muse2/muse/cobject.cpp index bf7d7e98..c7acc11c 100644 --- a/muse2/muse/cobject.cpp +++ b/muse2/muse/cobject.cpp @@ -9,6 +9,9 @@  #include "cobject.h"  #include "xml.h" +const int ICON_WIDTH = 18; +const QSize ICON_SIZE(ICON_WIDTH, ICON_WIDTH); +  //---------------------------------------------------------  //   readStatus  //--------------------------------------------------------- @@ -56,7 +59,10 @@ void TopWin::writeStatus(int level, Xml& xml) const        }  TopWin::TopWin(QWidget* parent, const char* name, -   Qt::WFlags f) : Q3MainWindow(parent, name, f) +   Qt::WFlags f) : QMainWindow(parent, name, f)        { +      // Allow multiple rows.  Tim. +      //setDockNestingEnabled(true); +      setIconSize(ICON_SIZE);        } diff --git a/muse2/muse/cobject.h b/muse2/muse/cobject.h index 15c687fc..416c0974 100644 --- a/muse2/muse/cobject.h +++ b/muse2/muse/cobject.h @@ -11,7 +11,8 @@  #include "config.h" -#include <q3mainwindow.h> +//#include <q3mainwindow.h> +#include <QMainWindow>  #include <list>  class Xml; @@ -20,7 +21,7 @@ class Xml;  //   TopWin  //--------------------------------------------------------- -class TopWin : public Q3MainWindow +class TopWin : public QMainWindow        {        Q_OBJECT diff --git a/muse2/muse/conf.cpp b/muse2/muse/conf.cpp index c3552bd9..2f55a4a0 100644 --- a/muse2/muse/conf.cpp +++ b/muse2/muse/conf.cpp @@ -14,7 +14,7 @@  #include <qlineedit.h>  #include <qcombobox.h>  #include <qlabel.h> -#include <q3buttongroup.h> +#include <QButtonGroup>  #include <stdio.h>  #include <q3popupmenu.h>  #include <q3groupbox.h> diff --git a/muse2/muse/confmport.cpp b/muse2/muse/confmport.cpp index 422de8cd..bbc6924f 100644 --- a/muse2/muse/confmport.cpp +++ b/muse2/muse/confmport.cpp @@ -16,7 +16,7 @@  #include <qlineedit.h>  #include <qcombobox.h>  #include <qlabel.h> -#include <q3buttongroup.h> +#include <QButtonGroup>  //Added by qt3to4:  #include <QPixmap>  #include <stdio.h> diff --git a/muse2/muse/globals.cpp b/muse2/muse/globals.cpp index 4e57cafd..0f89f801 100644 --- a/muse2/muse/globals.cpp +++ b/muse2/muse/globals.cpp @@ -9,7 +9,7 @@  #include <stdio.h>  #include <qpixmap.h>  //Added by qt3to4: -#include <Q3ActionGroup> +#include <QActionGroup>  #include <errno.h>  #include <unistd.h>  #include <stdlib.h> @@ -301,20 +301,20 @@ int midiFilterCtrl2 = 0;  int midiFilterCtrl3 = 0;  int midiFilterCtrl4 = 0; -Q3ActionGroup* undoRedo; -Q3Action* undoAction; -Q3Action* redoAction; -Q3ActionGroup* transportAction; -Q3Action* playAction; -Q3Action* startAction; -Q3Action* stopAction; -Q3Action* rewindAction; -Q3Action* forwardAction; -Q3Action* loopAction; -Q3Action* punchinAction; -Q3Action* punchoutAction; -Q3Action* recordAction; -Q3Action* panicAction; +QActionGroup* undoRedo; +QAction* undoAction; +QAction* redoAction; +QActionGroup* transportAction; +QAction* playAction; +QAction* startAction; +QAction* stopAction; +QAction* rewindAction; +QAction* forwardAction; +QAction* loopAction; +QAction* punchinAction; +QAction* punchoutAction; +QAction* recordAction; +QAction* panicAction;  //AudioMixerApp* audioMixer;  MusE* muse; diff --git a/muse2/muse/globals.h b/muse2/muse/globals.h index d7e3ac70..3901226a 100644 --- a/muse2/muse/globals.h +++ b/muse2/muse/globals.h @@ -14,7 +14,7 @@  //#include <qfont.h>  //#include <qnamespace.h>  //Added by qt3to4: -#include <Q3ActionGroup> +#include <QActionGroup>  #include <Qt3Support>  //#include <qaction.h>  #include "value.h" @@ -26,7 +26,7 @@  class QString;  class QFont;  class QAction; -class Q3ActionGroup; +class QActionGroup;  class QStringList;  extern const float denormalBias; @@ -128,21 +128,21 @@ extern int midiFilterCtrl4;  #define CMD_RANGE_SELECTED    1  #define CMD_RANGE_LOOP        2 -extern Q3ActionGroup* undoRedo; -extern Q3Action* undoAction; -extern Q3Action* redoAction; - -extern Q3ActionGroup* transportAction; -extern Q3Action* playAction; -extern Q3Action* startAction; -extern Q3Action* stopAction; -extern Q3Action* rewindAction; -extern Q3Action* forwardAction; -extern Q3Action* loopAction; -extern Q3Action* punchinAction; -extern Q3Action* punchoutAction; -extern Q3Action* recordAction; -extern Q3Action* panicAction; +extern QActionGroup* undoRedo; +extern QAction* undoAction; +extern QAction* redoAction; + +extern QActionGroup* transportAction; +extern QAction* playAction; +extern QAction* startAction; +extern QAction* stopAction; +extern QAction* rewindAction; +extern QAction* forwardAction; +extern QAction* loopAction; +extern QAction* punchinAction; +extern QAction* punchoutAction; +extern QAction* recordAction; +extern QAction* panicAction;  //class AudioMixerApp;  class MusE; diff --git a/muse2/muse/liste/editevent.cpp b/muse2/muse/liste/editevent.cpp index ef084440..5681231b 100644 --- a/muse2/muse/liste/editevent.cpp +++ b/muse2/muse/liste/editevent.cpp @@ -19,10 +19,10 @@  #include <q3widgetstack.h>  #include <q3popupmenu.h>  //Added by qt3to4: -#include <Q3HBoxLayout> -#include <Q3GridLayout> -#include <Q3VBoxLayout> -#include <Q3BoxLayout> +#include <QHBoxLayout> +#include <QGridLayout> +#include <QVBoxLayout> +#include <QBoxLayout>  #include "song.h"  #include "event.h" @@ -159,15 +159,15 @@ Event EditPAfterDialog::getEvent(int tick, const Event& event, QWidget* parent)  EditEventDialog::EditEventDialog(QWidget* parent, const char* name)     : QDialog(parent, name, true)        { -      Q3VBoxLayout* xlayout = new Q3VBoxLayout(this); -      layout1 = new Q3GridLayout(this); // ddskrjo this +      QVBoxLayout* xlayout = new QVBoxLayout(this); +      layout1 = new QGridLayout(this); // ddskrjo this        xlayout->addLayout(layout1);        //---------------------------------------------------        //  Ok, Cancel        //--------------------------------------------------- -      Q3BoxLayout* w5 = new Q3HBoxLayout(this); // ddskrjo this +      QBoxLayout* w5 = new QHBoxLayout(this); // ddskrjo this        xlayout->addLayout(w5);        QPushButton* okB = new QPushButton(tr("Ok"), this);        okB->setDefault(true); @@ -296,7 +296,7 @@ EditMetaDialog::EditMetaDialog(int tick, const Event& ev,        il2->setDark();        typeLabel = new QLabel(this);        typeLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); -      Q3HBoxLayout* typeLayout = new Q3HBoxLayout(this); +      QHBoxLayout* typeLayout = new QHBoxLayout(this);        typeLayout->addWidget(il2);        typeLayout->addWidget(typeLabel);        typeLayout->addStretch(); diff --git a/muse2/muse/liste/editevent.h b/muse2/muse/liste/editevent.h index 769ba256..7c0b431c 100644 --- a/muse2/muse/liste/editevent.h +++ b/muse2/muse/liste/editevent.h @@ -11,7 +11,7 @@  #include <qdialog.h>  //Added by qt3to4:  #include <Q3PopupMenu> -#include <Q3GridLayout> +#include <QGridLayout>  #include <QLabel>  #include "editnotedialogbase.h" @@ -22,7 +22,7 @@  class PosEdit;  class IntLabel;  class PitchEdit; -class Q3GridLayout; +class QGridLayout;  class Q3MultiLineEdit;  class QRadioButton;  class PosEdit; @@ -37,7 +37,7 @@ class EditEventDialog : public QDialog {        Q_OBJECT     protected: -      Q3GridLayout* layout1; +      QGridLayout* layout1;     public:        EditEventDialog(QWidget* parent=0, const char* name=0); @@ -70,7 +70,7 @@ class EditSysexDialog : public EditSysexDialogBase {        int len;     protected: -      Q3GridLayout* layout; +      QGridLayout* layout;     private slots:        virtual void accept(); @@ -106,7 +106,7 @@ class EditCtrlDialog : public EditCtrlBase  {        void instrPopup();     protected: -      Q3GridLayout* layout; +      QGridLayout* layout;     public: @@ -133,7 +133,7 @@ class EditMetaDialog : public EditEventDialog {        QLabel* typeLabel;     protected: -      Q3GridLayout* layout; +      QGridLayout* layout;     private slots:        virtual void accept(); @@ -160,7 +160,7 @@ class EditCAfterDialog : public EditEventDialog {        IntLabel* il2;     protected: -      Q3GridLayout* layout; +      QGridLayout* layout;     public:        EditCAfterDialog(int tick, const Event&, @@ -182,7 +182,7 @@ class EditPAfterDialog : public EditEventDialog {        IntLabel* il2;     protected: -      Q3GridLayout* layout; +      QGridLayout* layout;     public:        EditPAfterDialog(int tick, const Event&, diff --git a/muse2/muse/liste/listedit.cpp b/muse2/muse/liste/listedit.cpp index 31573571..c081b68d 100644 --- a/muse2/muse/liste/listedit.cpp +++ b/muse2/muse/liste/listedit.cpp @@ -5,7 +5,8 @@  //  (C) Copyright 1999 Werner Schweer (ws@seh.de)  //========================================================= -#include <q3toolbar.h> +//#include <q3toolbar.h> +#include <QToolBar>  #include <qtooltip.h>  #include <qtoolbutton.h>  #include <qlayout.h> @@ -14,7 +15,7 @@  #include <qlabel.h>  #include <qpushbutton.h>  #include <qradiobutton.h> -#include <q3buttongroup.h> +#include <QButtonGroup>  #include <q3listbox.h>  #include <q3listview.h>  #include <q3header.h> @@ -25,7 +26,7 @@  #include <Qt3Support>  //Added by qt3to4:  #include <QKeyEvent> -#include <Q3ActionGroup> +#include <QActionGroup>  #include <QCloseEvent>  #include "listedit.h" @@ -419,19 +420,30 @@ QString EventListItem::text(int col) const  ListEdit::ListEdit(PartList* pl)     : MidiEditor(0, 0, pl)        { -      insertItems = new Q3ActionGroup(this, "InsertItems", false); -      insertNote = new Q3Action(tr("Insert Note"), QIcon(*note1Icon), tr("insert Note"), +      // ORCAN - CHECK: +      /* +      insertItems = new QActionGroup(this, "InsertItems", false); +      insertNote = new QAction(tr("Insert Note"), QIcon(*note1Icon), tr("insert Note"),          0, insertItems); -      insertSysEx = new Q3Action(tr("Insert SysEx"), QIcon(*sysexIcon), tr("insert SysEx"), +      insertSysEx = new QAction(tr("Insert SysEx"), QIcon(*sysexIcon), tr("insert SysEx"),          0, insertItems); -      insertCtrl = new Q3Action(tr("Insert Ctrl"), QIcon(*ctrlIcon), tr("insert Ctrl"), +      insertCtrl = new QAction(tr("Insert Ctrl"), QIcon(*ctrlIcon), tr("insert Ctrl"),          0, insertItems); -      insertMeta = new Q3Action(tr("Insert Meta"), QIcon(*metaIcon), tr("insert Meta"), +      insertMeta = new QAction(tr("Insert Meta"), QIcon(*metaIcon), tr("insert Meta"),          0, insertItems); -      insertCAfter = new Q3Action(tr("Insert Channel Aftertouch"), QIcon(*cafterIcon), tr("insert Channel Aftertouch"), +      insertCAfter = new QAction(tr("Insert Channel Aftertouch"), QIcon(*cafterIcon), tr("insert Channel Aftertouch"),          0, insertItems); -      insertPAfter = new Q3Action(tr("Insert Key Aftertouch"), QIcon(*pafterIcon), tr("insert Poly Aftertouch"), +      insertPAfter = new QAction(tr("Insert Key Aftertouch"), QIcon(*pafterIcon), tr("insert Poly Aftertouch"),          0, insertItems); +      */ +      insertItems = new QActionGroup(this); +      insertItems->setExclusive(false); +      insertNote = new QAction(QIcon(*note1Icon), tr("insert Note"), insertItems); +      insertSysEx = new QAction(QIcon(*sysexIcon), tr("insert SysEx"), insertItems); +      insertCtrl = new QAction(QIcon(*ctrlIcon), tr("insert Ctrl"), insertItems); +      insertMeta = new QAction(QIcon(*metaIcon), tr("insert Meta"), insertItems); +      insertCAfter = new QAction(QIcon(*cafterIcon), tr("insert Channel Aftertouch"), insertItems); +      insertPAfter = new QAction(QIcon(*pafterIcon), tr("insert Poly Aftertouch"), insertItems);        connect(insertNote,    SIGNAL(activated()), SLOT(editInsertNote()));        connect(insertSysEx,   SIGNAL(activated()), SLOT(editInsertSysEx())); @@ -468,10 +480,10 @@ ListEdit::ListEdit(PartList* pl)        connect(menuEdit, SIGNAL(activated(int)), SLOT(cmd(int)));        //---------ToolBar---------------------------------- -      listTools = new Q3ToolBar(this, "list-tools"); +      listTools = new QToolBar(this, "list-tools");        listTools->setLabel(tr("List Tools"));        undoRedo->addTo(listTools); -      Q3ToolBar* insertTools = new Q3ToolBar(this, "insert"); +      QToolBar* insertTools = new QToolBar(this, "insert");        insertTools->setLabel(tr("Insert Tools"));        insertItems->addTo(insertTools); diff --git a/muse2/muse/liste/listedit.h b/muse2/muse/liste/listedit.h index efa0a591..bb06c952 100644 --- a/muse2/muse/liste/listedit.h +++ b/muse2/muse/liste/listedit.h @@ -15,7 +15,7 @@  #include <Q3PopupMenu>  #include <QKeyEvent>  #include <QCloseEvent> -#include <Q3ActionGroup> +#include <QActionGroup>  #include <Qt3Support>  class Event; @@ -24,7 +24,7 @@ class PartList;  class MidiPart;  class MidiPart;  class Xml; -class Q3ActionGroup; +class QActionGroup;  class QAction;  class Q3ListView;  class Q3ListViewItem; @@ -36,8 +36,8 @@ class Q3ListViewItem;  class ListEdit : public MidiEditor {        Q3ListView* liste;        Q3PopupMenu* menuEdit; -      Q3ActionGroup* insertItems; -      Q3ToolBar* listTools; +      QActionGroup* insertItems; +      QToolBar* listTools;        MidiTrack* curTrack;        MidiPart* curPart;        int selectedTick; @@ -49,7 +49,7 @@ class ListEdit : public MidiEditor {        virtual void closeEvent(QCloseEvent*);        virtual void keyPressEvent(QKeyEvent*);        void initShortcuts(); -      Q3Action *insertNote, *insertSysEx, *insertCtrl, *insertMeta, *insertCAfter, *insertPAfter; +      QAction *insertNote, *insertSysEx, *insertCtrl, *insertMeta, *insertCAfter, *insertPAfter;     private slots:        void editInsertNote(); diff --git a/muse2/muse/marker/markerview.cpp b/muse2/muse/marker/markerview.cpp index ce08d786..f26f3a78 100644 --- a/muse2/muse/marker/markerview.cpp +++ b/muse2/muse/marker/markerview.cpp @@ -14,7 +14,8 @@  #include "song.h"  #include "posedit.h" -#include <q3toolbar.h> +//#include <q3toolbar.h> +#include <QToolBar>  #include <qtoolbutton.h>  #include <qtooltip.h>  #include <qlayout.h> @@ -155,14 +156,18 @@ MarkerView::MarkerView(QWidget* parent)        setCaption(tr("MusE: Marker"));        //---------Actions---------------------------- -      Q3Action* markerAdd = new Q3Action(tr("add marker"), -         QIcon(*flagIcon), tr("Add Marker"), -        0, this, "add marker"); +      // CHECK - ORCAN: +      //QAction* markerAdd = new QAction(tr("add marker"), +      //   QIcon(*flagIcon), tr("Add Marker"), +      //  0, this, "add marker"); +      //QAction* markerDelete = new QAction(tr("delete marker"), +      //   QIcon(*deleteIcon), tr("Delete Marker"), +      //   0, this, "delete marker"); + +      QAction* markerAdd = new QAction(QIcon(*flagIcon), tr("add marker"), this);        connect(markerAdd, SIGNAL(activated()), SLOT(addMarker())); -      Q3Action* markerDelete = new Q3Action(tr("delete marker"), -         QIcon(*deleteIcon), tr("Delete Marker"), -         0, this, "delete marker"); +      QAction* markerDelete = new QAction(QIcon(*deleteIcon), tr("delete marker"), this);        connect(markerDelete, SIGNAL(activated()), SLOT(deleteMarker()));        //---------Pulldown Menu---------------------------- @@ -174,10 +179,10 @@ MarkerView::MarkerView(QWidget* parent)        markerDelete->addTo(editMenu);        //---------ToolBar---------------------------------- -      tools = new Q3ToolBar(this, "marker-tools"); +      tools = new QToolBar(this, "marker-tools");        undoRedo->addTo(tools); -      Q3ToolBar* edit = new Q3ToolBar(this, "edit tools"); +      QToolBar* edit = new QToolBar(this, "edit tools");        markerAdd->addTo(edit);        markerDelete->addTo(edit); diff --git a/muse2/muse/marker/markerview.h b/muse2/muse/marker/markerview.h index b9f5a85d..07857923 100644 --- a/muse2/muse/marker/markerview.h +++ b/muse2/muse/marker/markerview.h @@ -18,7 +18,7 @@ class QLineEdit;  class PosEdit;  class QToolButton;  class Marker; -class Q3ToolBar; +class QToolBar;  class Pos;  //--------------------------------------------------------- @@ -49,7 +49,7 @@ class MarkerView : public TopWin {        PosEdit* editSMPTE;        PosEdit* editTick;        QToolButton* lock; -      Q3ToolBar* tools; +      QToolBar* tools;        Q_OBJECT        virtual void closeEvent(QCloseEvent*); diff --git a/muse2/muse/master/lmaster.cpp b/muse2/muse/master/lmaster.cpp index 42486a8b..f50635b4 100644 --- a/muse2/muse/master/lmaster.cpp +++ b/muse2/muse/master/lmaster.cpp @@ -15,7 +15,8 @@  #include "shortcuts.h"  #include "debug.h" -#include <q3toolbar.h> +//#include <q3toolbar.h> +#include <QToolBar>  #include <qtoolbutton.h>  #include <qtooltip.h>  #include <qlayout.h> @@ -88,10 +89,10 @@ LMaster::LMaster()        connect(menuEdit, SIGNAL(activated(int)), SLOT(cmd(int)));        //---------ToolBar---------------------------------- -      tools = new Q3ToolBar(this, "list-tools"); +      tools = new QToolBar(this, "list-tools");        undoRedo->addTo(tools); -      Q3ToolBar* edit = new Q3ToolBar(this, "edit tools"); +      QToolBar* edit = new QToolBar(this, "edit tools");        QToolButton* tempoButton = new QToolButton(edit);        QToolButton* timeSigButton = new QToolButton(edit);        tempoButton->setText(tr("Tempo")); diff --git a/muse2/muse/master/lmaster.h b/muse2/muse/master/lmaster.h index b67f64bf..9be2daf6 100644 --- a/muse2/muse/master/lmaster.h +++ b/muse2/muse/master/lmaster.h @@ -96,7 +96,7 @@ class LMasterSigEventItem : public LMasterLViewItem {  class LMaster : public MidiEditor {        Q3ListView* view; -      Q3ToolBar* tools; +      QToolBar* tools;        Q3PopupMenu* menuEdit;        enum { CMD_DELETE, CMD_INSERT_SIG, CMD_INSERT_TEMPO, CMD_EDIT_BEAT, CMD_EDIT_VALUE }; diff --git a/muse2/muse/master/masteredit.cpp b/muse2/muse/master/masteredit.cpp index 53189573..3adcae3f 100644 --- a/muse2/muse/master/masteredit.cpp +++ b/muse2/muse/master/masteredit.cpp @@ -22,7 +22,8 @@  #include "globals.h"  #include <values.h> -#include <q3toolbar.h> +//#include <q3toolbar.h> +#include <QToolBar>  #include <qtoolbutton.h>  #include <qtooltip.h>  #include <q3accel.h> @@ -100,13 +101,12 @@ MasterEdit::MasterEdit()  //      menuBar()->insertItem("&File", file);        //---------ToolBar---------------------------------- -      tools = new Q3ToolBar(tr("edit tools"), this); +      tools = new QToolBar(tr("edit tools"), this);        undoRedo->addTo(tools); -      EditToolBar* tools2 = new EditToolBar(this, -         PointerTool | PencilTool | RubberTool); +      EditToolBar* tools2 = new EditToolBar(this, PointerTool | PencilTool | RubberTool); -      Q3ToolBar* enableMaster = new Q3ToolBar(tr("EnableMaster"), this); +      QToolBar* enableMaster = new QToolBar(tr("EnableMaster"), this);        enableButton = new QToolButton(enableMaster);        enableButton->setToggleButton(true);        enableButton->setText(tr("Enable")); @@ -114,7 +114,7 @@ MasterEdit::MasterEdit()        enableButton->setOn(song->masterFlag());        connect(enableButton, SIGNAL(toggled(bool)), song, SLOT(setMasterFlag(bool))); -      Q3ToolBar* info = new Q3ToolBar(tr("Info"), this); +      QToolBar* info = new QToolBar(tr("Info"), this);        QLabel* label  = new QLabel(tr("Cursor"), info);        label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);        label->setIndent(3); diff --git a/muse2/muse/master/masteredit.h b/muse2/muse/master/masteredit.h index 88ada6eb..04ef09eb 100644 --- a/muse2/muse/master/masteredit.h +++ b/muse2/muse/master/masteredit.h @@ -47,7 +47,7 @@ class MasterEdit : public MidiEditor {        TempoEdit* curTempo;        SigEdit* curSig;        LabelCombo* rasterLabel; -      Q3ToolBar* tools; +      QToolBar* tools;        PosLabel* cursorPos;        TempoLabel* tempo;        QToolButton* enableButton; diff --git a/muse2/muse/midiedit/drumedit.cpp b/muse2/muse/midiedit/drumedit.cpp index 82d0186d..acfd3a03 100644 --- a/muse2/muse/midiedit/drumedit.cpp +++ b/muse2/muse/midiedit/drumedit.cpp @@ -23,6 +23,8 @@  #include <qclipboard.h>  #include <qmessagebox.h>  #include <qaction.h> +#include <QWhatsThis> +  //Added by qt3to4:  #include <QKeyEvent>  #include <Q3ValueList> @@ -221,41 +223,72 @@ DrumEdit::DrumEdit(PartList* pl, QWidget* parent, const char* name, unsigned ini        //    Toolbars        //--------------------------------------------------- -      tools = new Q3ToolBar(this, "drum-tools"); -      new QToolButton(*openIcon, tr("Load Drummap"), -                  QString::null, this, SLOT(load()), -                  tools, "load drummap from file"); - -      new QToolButton(*saveIcon, tr("Store Drummap"), -                  QString::null, -                  this, SLOT(save()), -                  tools, "store drummap to file"); - -      Q3WhatsThis::whatsThisButton(tools); +      //tools = new QToolBar(this, "drum-tools"); +      tools = addToolBar(tr("drum-tools")); +       +      //new QToolButton(*openIcon, tr("Load Drummap"), +      //            QString::null, this, SLOT(load()), +      //            tools, "load drummap from file"); + +      //new QToolButton(*saveIcon, tr("Store Drummap"), +      //            QString::null, +      //            this, SLOT(save()), +      //            tools, "store drummap to file"); +                   +      QToolButton *ldm = new QToolButton(); +      QToolTip::add(ldm, tr("Load Drummap")); +      ldm->setIcon(*openIcon); +      connect(ldm, SIGNAL(clicked()), SLOT(load())); +      tools->addWidget(ldm); +       +      QToolButton *sdm = new QToolButton(); +      QToolTip::add(sdm, tr("Store Drummap")); +      sdm->setIcon(*saveIcon); +      connect(sdm, SIGNAL(clicked()), SLOT(save())); +      tools->addWidget(sdm); +       +      //Q3WhatsThis::whatsThisButton(tools); +      tools->addAction(QWhatsThis::createAction(this));        tools->addSeparator(); -      undoRedo->addTo(tools); +      //undoRedo->addTo(tools); +      tools->addActions(undoRedo->actions());        tools->addSeparator(); -      srec  = new QToolButton(tools, "srec"); +      //srec  = new QToolButton(tools, "srec"); +      srec  = new QToolButton();        QToolTip::add(srec, tr("Step Record")); -      srec->setPixmap(*steprecIcon); +      srec->setIcon(*steprecIcon);        srec->setToggleButton(true); +      tools->addWidget(srec); -      midiin  = new QToolButton(tools, "midiin"); +      //midiin  = new QToolButton(tools, "midiin"); +      midiin  = new QToolButton();        QToolTip::add(midiin, tr("Midi Input")); -      midiin->setPixmap(*midiinIcon); +      midiin->setIcon(*midiinIcon);        midiin->setToggleButton(true); - +      tools->addWidget(midiin); +              tools2 = new EditToolBar(this, drumeditTools); +      addToolBar(tools2); -      Q3ToolBar* transport = new Q3ToolBar(this); -      transportAction->addTo(transport); - -      // dontt show pitch value in toolbar -      //toolbar = new Toolbar1(this, _rasterInit, _quantInit, false); -      toolbar = new Toolbar1(this, _rasterInit, _quantInit); +      QToolBar* panicToolbar = addToolBar(tr("panic"));          +      //panicAction->addTo(panicToolbar); +      panicToolbar->addAction(panicAction); +       +      //QToolBar* transport = new QToolBar(this); +      QToolBar* transport = addToolBar(tr("transport")); +      //transportAction->addTo(transport); +      transport->addActions(transportAction->actions()); +       +      addToolBarBreak(); +      // don't show pitch value in toolbar +      toolbar = new Toolbar1(this, _rasterInit, _quantInit, false); +      addToolBar(toolbar); +       +      addToolBarBreak();        info    = new NoteInfo(this); +      addToolBar(info);        //---------------------------------------------------        //    split diff --git a/muse2/muse/midiedit/drumedit.h b/muse2/muse/midiedit/drumedit.h index 5043412f..a1c8583b 100644 --- a/muse2/muse/midiedit/drumedit.h +++ b/muse2/muse/midiedit/drumedit.h @@ -94,7 +94,7 @@ class DrumEdit : public MidiEditor {        QWidget* split1w1;        DList* dlist;        Header* header; -      Q3ToolBar* tools; +      QToolBar* tools;        static int _quantInit, _rasterInit;        static int _widthInit, _heightInit; diff --git a/muse2/muse/midiedit/pianoroll.cpp b/muse2/muse/midiedit/pianoroll.cpp index 22d9c55e..dbeda748 100644 --- a/muse2/muse/midiedit/pianoroll.cpp +++ b/muse2/muse/midiedit/pianoroll.cpp @@ -22,7 +22,7 @@  #include <qaction.h>  //Added by qt3to4:  #include <QKeyEvent> -#include <Q3GridLayout> +#include <QGridLayout>  #include <QResizeEvent>  #include <QCloseEvent> @@ -178,38 +178,59 @@ PianoRoll::PianoRoll(PartList* pl, QWidget* parent, const char* name, unsigned i        connect(menuFunctions, SIGNAL(activated(int)), SLOT(cmd(int)));        //---------ToolBar---------------------------------- -      tools = new Q3ToolBar(this, "pianoroll-tools"); -      tools->setLabel(tr("Pianoroll Tools")); -      undoRedo->addTo(tools); +      //tools = new QToolBar(this, "pianoroll-tools"); +      tools = addToolBar(tr("pianoroll-tools"));           +      //undoRedo->addTo(tools); +      tools->addActions(undoRedo->actions());        tools->addSeparator(); -      srec  = new QToolButton(tools, "srec"); +      //srec  = new QToolButton(tools, "srec"); +      // Does not like this, draws on top of other buttons! Must use QToolBar::addWidget() +      //srec  = new QToolButton(tools);           +      srec  = new QToolButton();        QToolTip::add(srec, tr("Step Record")); -      srec->setPixmap(*steprecIcon); +      srec->setIcon(*steprecIcon);        srec->setToggleButton(true); +      tools->addWidget(srec); -      midiin  = new QToolButton(tools, "midiin"); +      //midiin  = new QToolButton(tools, "midiin"); +      midiin  = new QToolButton();        QToolTip::add(midiin, tr("Midi Input")); -      midiin->setPixmap(*midiinIcon); +      midiin->setIcon(*midiinIcon);        midiin->setToggleButton(true); +      tools->addWidget(midiin); -      speaker  = new QToolButton(tools, "speaker"); +      //speaker  = new QToolButton(tools, "speaker"); +      speaker  = new QToolButton();        QToolTip::add(speaker, tr("Play Events")); -      speaker->setPixmap(*speakerIcon); +      speaker->setIcon(*speakerIcon);        speaker->setToggleButton(true); +      tools->addWidget(speaker);        tools2 = new EditToolBar(this, pianorollTools); +      addToolBar(tools2); -      Q3ToolBar* panicToolbar = new Q3ToolBar(this); -      panicAction->addTo(panicToolbar); +      //QToolBar* panicToolbar = new QToolBar(this); +      QToolBar* panicToolbar = addToolBar(tr("panic"));          +      //panicAction->addTo(panicToolbar); +      panicToolbar->addAction(panicAction); +      //this->addToolBar(panicToolbar);        //-------------------------------------------------------------        //    Transport Bar -      Q3ToolBar* transport = new Q3ToolBar(this); -      transportAction->addTo(transport); +      //QToolBar* transport = new QToolBar(this); +      QToolBar* transport = addToolBar(tr("transport")); +      //transportAction->addTo(transport); +      transport->addActions(transportAction->actions()); +      //this->addToolBar(transport); +      addToolBarBreak();        toolbar = new Toolbar1(this, _rasterInit, _quantInit); +      addToolBar(toolbar); + +      addToolBarBreak();        info    = new NoteInfo(this); +      addToolBar(info);        //---------------------------------------------------        //    split @@ -233,7 +254,7 @@ PianoRoll::PianoRoll(PartList* pl, QWidget* parent, const char* name, unsigned i        mainGrid->addRowSpacing(1, hscroll->sizeHint().height());        QWidget* split1     = new QWidget(splitter, "split1"); -      Q3GridLayout* gridS1 = new Q3GridLayout(split1); +      QGridLayout* gridS1 = new QGridLayout(split1);        time                = new MTScale(&_raster, split1, xscale);        Piano* piano        = new Piano(split1, yscale);        canvas              = new PianoCanvas(this, split1, xscale, yscale); diff --git a/muse2/muse/midiedit/pianoroll.h b/muse2/muse/midiedit/pianoroll.h index 8987915a..10818b94 100644 --- a/muse2/muse/midiedit/pianoroll.h +++ b/muse2/muse/midiedit/pianoroll.h @@ -72,7 +72,7 @@ class PianoRoll : public MidiEditor {        Splitter* splitter;        QToolButton* speaker; -      Q3ToolBar* tools; +      QToolBar* tools;        EditToolBar* tools2;        Q3PopupMenu* eventColor; diff --git a/muse2/muse/midiedit/quantconfig.cpp b/muse2/muse/midiedit/quantconfig.cpp index f00b713f..867dedea 100644 --- a/muse2/muse/midiedit/quantconfig.cpp +++ b/muse2/muse/midiedit/quantconfig.cpp @@ -7,7 +7,7 @@  //=========================================================  #include <qspinbox.h> -#include <qlayout.h> +#include <QLayout>  #include <qlabel.h>  #include <qradiobutton.h>  #include <q3groupbox.h> @@ -15,7 +15,7 @@  #include "quantconfig.h"  //Added by qt3to4: -#include <Q3VBoxLayout> +#include <QVBoxLayout>  const char* wtStrengthTxt = QT_TR_NOOP("sets amount of quantization:\n"                              "0   - no quantization\n" @@ -31,7 +31,7 @@ QuantConfig::QuantConfig(int s, int l, bool lenFlag)     : QDialog()        {        setCaption(tr("MusE: Config Quantize")); -      Q3VBoxLayout* layout = new Q3VBoxLayout(this); +      QVBoxLayout* layout = new QVBoxLayout(this);        Q3GroupBox* gb = new Q3GroupBox(2, Qt::Horizontal, tr("Config Quantize"), this);        layout->addWidget(gb); diff --git a/muse2/muse/mixer/amixer.cpp b/muse2/muse/mixer/amixer.cpp index e6c380b4..17c818fa 100644 --- a/muse2/muse/mixer/amixer.cpp +++ b/muse2/muse/mixer/amixer.cpp @@ -13,11 +13,11 @@  #include <qmenubar.h>  #include <qaction.h>  //Added by qt3to4: -#include <Q3HBoxLayout> +#include <QHBoxLayout>  #include <QCloseEvent> -#include <Q3PopupMenu> -#include <Q3ActionGroup> -#include <Q3Action> +#include <QMenu> +#include <QActionGroup> +#include <QAction>  #include "app.h"  #include "amixer.h" @@ -29,7 +29,7 @@  #include "gconfig.h"  #include "xml.h" -extern void populateAddTrack(Q3PopupMenu* addTrack); +extern void populateAddTrack(QMenu* addTrack);  #define __WIDTH_COMPENSATION 4 @@ -44,7 +44,7 @@ extern void populateAddTrack(Q3PopupMenu* addTrack);  //AudioMixerApp::AudioMixerApp(QWidget* parent)  AudioMixerApp::AudioMixerApp(QWidget* parent, MixerConfig* c) -   : Q3MainWindow(parent, "mixer") +   : QMainWindow(parent, "mixer")        {        cfg = c;        oldAuxsSize = 0; @@ -55,26 +55,39 @@ AudioMixerApp::AudioMixerApp(QWidget* parent, MixerConfig* c)        //printf("AudioMixerApp::AudioMixerApp setting caption:%s\n", cfg->name.latin1());        setCaption(cfg->name); -      Q3PopupMenu* menuConfig = new Q3PopupMenu(this); +      QMenu* menuConfig = new QMenu(this);        menuBar()->insertItem(tr("&Create"), menuConfig);        populateAddTrack(menuConfig); -      menuView = new Q3PopupMenu(this); +      menuView = new QMenu(this);        menuBar()->insertItem(tr("&View"), menuView);        routingId = menuView->insertItem(tr("Routing"), this, SLOT(toggleRouteDialog()));        menuView->insertSeparator(); -       -      Q3ActionGroup* actionItems = new Q3ActionGroup(this, "actionItems", false); + +      // ORCAN - CHECK:  +      //QActionGroup* actionItems = new QActionGroup(this, "actionItems", false); +      QActionGroup* actionItems = new QActionGroup(this); +      actionItems->setExclusive(false);        /*        showMidiTracksId = new QAction(tr("Show Midi Tracks"), 0, menuView);        showDrumTracksId = new QAction(tr("Show Drum Tracks"), 0, menuView);        showWaveTracksId = new QAction(tr("Show Wave Tracks"), 0, menuView);        */ -      showMidiTracksId = new Q3Action(tr("Show Midi Tracks"), 0, actionItems); -      showDrumTracksId = new Q3Action(tr("Show Drum Tracks"), 0, actionItems); -      showWaveTracksId = new Q3Action(tr("Show Wave Tracks"), 0, actionItems); + + + +      // CHECK - ORCAN +      //showMidiTracksId = new QAction(tr("Show Midi Tracks"), 0, actionItems); +      //showDrumTracksId = new QAction(tr("Show Drum Tracks"), 0, actionItems); +      //showWaveTracksId = new QAction(tr("Show Wave Tracks"), 0, actionItems); +      showMidiTracksId = new QAction(tr("Show Midi Tracks"), actionItems); +      showDrumTracksId = new QAction(tr("Show Drum Tracks"), actionItems); +      showWaveTracksId = new QAction(tr("Show Wave Tracks"), actionItems); +       + +        //showMidiTracksId->addTo(menuView);        //showDrumTracksId->addTo(menuView);        //showWaveTracksId->addTo(menuView); @@ -89,11 +102,23 @@ AudioMixerApp::AudioMixerApp(QWidget* parent, MixerConfig* c)        showAuxTracksId = new QAction(tr("Show Auxs"), 0, menuView);        showSyntiTracksId = new QAction(tr("Show Synthesizers"), 0, menuView);        */ -      showInputTracksId = new Q3Action(tr("Show Inputs"), 0, actionItems); -      showOutputTracksId = new Q3Action(tr("Show Outputs"), 0, actionItems); -      showGroupTracksId = new Q3Action(tr("Show Groups"), 0, actionItems); -      showAuxTracksId = new Q3Action(tr("Show Auxs"), 0, actionItems); -      showSyntiTracksId = new Q3Action(tr("Show Synthesizers"), 0, actionItems); + + +      // CHECK - ORCAN +      //showInputTracksId = new QAction(tr("Show Inputs"), 0, actionItems); +      //showOutputTracksId = new QAction(tr("Show Outputs"), 0, actionItems); +      //showGroupTracksId = new QAction(tr("Show Groups"), 0, actionItems); +      //showAuxTracksId = new QAction(tr("Show Auxs"), 0, actionItems); +      //showSyntiTracksId = new QAction(tr("Show Synthesizers"), 0, actionItems); +      showInputTracksId = new QAction(tr("Show Inputs"), actionItems); +      showOutputTracksId = new QAction(tr("Show Outputs"), actionItems); +      showGroupTracksId = new QAction(tr("Show Groups"), actionItems); +      showAuxTracksId = new QAction(tr("Show Auxs"), actionItems); +      showSyntiTracksId = new QAction(tr("Show Synthesizers"), actionItems); + + + +        //showInputTracksId->addTo(menuView);        //showOutputTracksId->addTo(menuView);        //showGroupTracksId->addTo(menuView); @@ -121,13 +146,16 @@ AudioMixerApp::AudioMixerApp(QWidget* parent, MixerConfig* c)        connect(showSyntiTracksId, SIGNAL(toggled(bool)), SLOT(showSyntiTracksChanged(bool)));              actionItems->addTo(menuView); -      view = new Q3ScrollView(this); +      view = new QScrollArea(this);        setCentralWidget(view);        central = new QWidget(view); -      view->setResizePolicy(Q3ScrollView::AutoOneFit); -      view->setVScrollBarMode(Q3ScrollView::AlwaysOff); +      // ORCAN - FIXME +      /* +      view->setResizePolicy(QScrollView::AutoOneFit); +      view->setVScrollBarMode(QScrollView::AlwaysOff);        view->addChild(central); -      layout = new Q3HBoxLayout(central); +      */ +      layout = new QHBoxLayout(central);        connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));        connect(muse, SIGNAL(configChanged()), SLOT(configChanged()));        song->update();  // calls update mixer diff --git a/muse2/muse/mixer/amixer.h b/muse2/muse/mixer/amixer.h index f6588ddb..b6650b0f 100644 --- a/muse2/muse/mixer/amixer.h +++ b/muse2/muse/mixer/amixer.h @@ -9,17 +9,17 @@  #ifndef __AMIXER_H__  #define __AMIXER_H__ -#include <qlayout.h> +#include <QLayout>  #include <qpixmap.h> -#include <q3listbox.h> +//#include <q3listbox.h>  #include <qtooltip.h> -#include <q3frame.h> +//#include <q3frame.h>  //Added by qt3to4: -#include <Q3HBoxLayout> +#include <QHBoxLayout>  #include <QLabel> -#include <Q3PopupMenu> +#include <QMenu>  #include <QCloseEvent> -#include <Q3Action> +#include <QAction>  #include "cobject.h"  #include "synth.h" @@ -28,8 +28,9 @@  class Xml;  class QWidget; -class Q3HBoxLayout; -class Q3ScrollView; +class QHBoxLayout; +// ORCAN - CHECK +class QScrollArea;  class AudioTrack;  class Meter;  class Track; @@ -40,7 +41,7 @@ class Knob;  class DoubleLabel;  class ComboBox;  class RouteDialog; -class Q3PopupMenu; +class QMenu;  class Strip;  struct MixerConfig; @@ -53,28 +54,28 @@ typedef std::list<Strip*> StripList;  //   AudioMixerApp  //--------------------------------------------------------- -class AudioMixerApp : public Q3MainWindow { +class AudioMixerApp : public QMainWindow {        //QString name;        MixerConfig* cfg;        StripList stripList; -      Q3ScrollView* view; +      QScrollArea* view;        QWidget* central; -      Q3HBoxLayout* lbox; +      QHBoxLayout* lbox;        //Strip* master; -      Q3HBoxLayout* layout; -      Q3PopupMenu* menuView; +      QHBoxLayout* layout; +      QMenu* menuView;        RouteDialog* routingDialog;        int routingId;        int oldAuxsSize; -      Q3Action* showMidiTracksId; -      Q3Action* showDrumTracksId; -      Q3Action* showInputTracksId; -      Q3Action* showOutputTracksId; -      Q3Action* showWaveTracksId; -      Q3Action* showGroupTracksId; -      Q3Action* showAuxTracksId; -      Q3Action* showSyntiTracksId; +      QAction* showMidiTracksId; +      QAction* showDrumTracksId; +      QAction* showInputTracksId; +      QAction* showOutputTracksId; +      QAction* showWaveTracksId; +      QAction* showGroupTracksId; +      QAction* showAuxTracksId; +      QAction* showSyntiTracksId;        Q_OBJECT diff --git a/muse2/muse/mixer/astrip.cpp b/muse2/muse/mixer/astrip.cpp index c7d2d4f0..56e1e3eb 100644 --- a/muse2/muse/mixer/astrip.cpp +++ b/muse2/muse/mixer/astrip.cpp @@ -25,8 +25,11 @@  #include <qevent.h>  #include <qwidget.h>  //Added by qt3to4: -#include <Q3HBoxLayout> -#include <Q3GridLayout> +//#include <Q3HBoxLayout> +//#include <Q3GridLayout> + +#include <QHBoxLayout> +#include <QGridLayout>  #include "app.h"  #include "globals.h" @@ -644,7 +647,7 @@ Knob* AudioStrip::addKnob(int type, int id, DoubleLabel** dlabel)        plb->setFixedWidth(STRIP_WIDTH/2);        plb->setAlignment(Qt::AlignCenter); -      Q3GridLayout* pangrid = new Q3GridLayout(0, 2, 2, 0, 0, "pangrid"); +      QGridLayout* pangrid = new QGridLayout(0, 2, 2, 0, 0, "pangrid");        pangrid->addWidget(plb, 0, 0);        pangrid->addWidget(pl, 1, 0);        pangrid->addMultiCellWidget(knob, 0, 1, 1, 1); @@ -723,7 +726,7 @@ AudioStrip::AudioStrip(QWidget* parent, AudioTrack* at)        //    mono/stereo  pre/post        //--------------------------------------------------- -      Q3HBoxLayout* ppBox = new Q3HBoxLayout(0); +      QHBoxLayout* ppBox = new QHBoxLayout(0);        stereo  = new QToolButton(this);        stereo->setFont(config.fonts[1]);        QIcon stereoSet; @@ -779,7 +782,7 @@ AudioStrip::AudioStrip(QWidget* parent, AudioTrack* at)        //    slider, label, meter        //--------------------------------------------------- -      sliderGrid = new Q3GridLayout(this); // ddskrjo this +      sliderGrid = new QGridLayout(this); // ddskrjo this        sliderGrid->setRowStretch(0, 100);        //slider = new Slider(this); @@ -849,8 +852,8 @@ AudioStrip::AudioStrip(QWidget* parent, AudioTrack* at)        Track::TrackType type = t->type(); -      Q3HBoxLayout* smBox1 = new Q3HBoxLayout(0); -      Q3HBoxLayout* smBox2 = new Q3HBoxLayout(0); +      QHBoxLayout* smBox1 = new QHBoxLayout(0); +      QHBoxLayout* smBox2 = new QHBoxLayout(0);        mute  = new QToolButton(this); @@ -919,7 +922,7 @@ AudioStrip::AudioStrip(QWidget* parent, AudioTrack* at)        //    routing        //--------------------------------------------------- -      Q3HBoxLayout* rBox = new Q3HBoxLayout(0); +      QHBoxLayout* rBox = new QHBoxLayout(0);        if (type != Track::AUDIO_AUX) {              iR = new QToolButton(this);              iR->setFont(config.fonts[1]); diff --git a/muse2/muse/mixer/meter.cpp b/muse2/muse/mixer/meter.cpp index 14b20a18..fc010a33 100644 --- a/muse2/muse/mixer/meter.cpp +++ b/muse2/muse/mixer/meter.cpp @@ -12,7 +12,7 @@  //Added by qt3to4:  #include <QResizeEvent>  #include <QMouseEvent> -#include <Q3Frame> +#include <QFrame>  #include "meter.h"  #include "gconfig.h" @@ -23,7 +23,7 @@  //---------------------------------------------------------  Meter::Meter(QWidget* parent, MeterType type) -   : Q3Frame(parent, "", Qt::WNoAutoErase) +   : QFrame(parent, Qt::WNoAutoErase)        {        mtype = type;        overflow    = false; diff --git a/muse2/muse/mixer/meter.h b/muse2/muse/mixer/meter.h index fc447147..719ab701 100644 --- a/muse2/muse/mixer/meter.h +++ b/muse2/muse/mixer/meter.h @@ -9,13 +9,14 @@  #ifndef __METER_H__  #define __METER_H__ -#include <q3frame.h> +//#include <q3frame.h> +#include <QFrame>  #include <qpixmap.h>  //Added by qt3to4:  #include <QResizeEvent>  #include <QMouseEvent> -class Meter : public Q3Frame { +class Meter : public QFrame {     public:        enum MeterType {DBMeter, LinMeter};     private:   diff --git a/muse2/muse/mixer/mstrip.cpp b/muse2/muse/mixer/mstrip.cpp index 10d9ddf4..92d2d02f 100644 --- a/muse2/muse/mixer/mstrip.cpp +++ b/muse2/muse/mixer/mstrip.cpp @@ -8,7 +8,7 @@  #include <fastlog.h> -#include <qlayout.h> +#include <QLayout>  #include <qapplication.h>  #include <qdialog.h>  #include <qtoolbutton.h> @@ -20,8 +20,8 @@  //#include <qpopupmenu.h>  #include <qcursor.h>  //Added by qt3to4: -#include <Q3HBoxLayout> -#include <Q3GridLayout> +#include <QHBoxLayout> +#include <QGridLayout>  #include <math.h>  #include "app.h" @@ -144,7 +144,7 @@ void MidiStrip::addKnob(int idx, const QString& tt, const QString& label,        lb->setFixedHeight(15);        lb->setEnabled(enabled); -      Q3GridLayout* grid = new Q3GridLayout(0, 2, 2, 0, 0, "grid"); +      QGridLayout* grid = new QGridLayout(0, 2, 2, 0, 0, "grid");        grid->setMargin(2);        grid->addWidget(lb, 0, 0);        grid->addWidget(dl, 1, 0); @@ -205,7 +205,7 @@ MidiStrip::MidiStrip(QWidget* parent, MidiTrack* t)        meter[0]->setRange(0, 127.0);        meter[0]->setFixedWidth(15);        connect(meter[0], SIGNAL(mousePress()), this, SLOT(resetPeaks())); -      sliderGrid = new Q3GridLayout(this); // ddskrjo this +      sliderGrid = new QGridLayout(this); // ddskrjo this        sliderGrid->setRowStretch(0, 100);        sliderGrid->addWidget(slider, 0, 0, Qt::AlignRight);        sliderGrid->addWidget(meter[0], 0, 1, Qt::AlignLeft); @@ -326,8 +326,8 @@ MidiStrip::MidiStrip(QWidget* parent, MidiTrack* t)        solo->setFixedWidth(STRIP_WIDTH/2);        connect(solo, SIGNAL(toggled(bool)), SLOT(soloToggled(bool))); -      Q3HBoxLayout* smBox1 = new Q3HBoxLayout(0); -      Q3HBoxLayout* smBox2 = new Q3HBoxLayout(0); +      QHBoxLayout* smBox1 = new QHBoxLayout(0); +      QHBoxLayout* smBox2 = new QHBoxLayout(0);        smBox2->addWidget(mute);        smBox2->addWidget(solo); @@ -369,7 +369,7 @@ MidiStrip::MidiStrip(QWidget* parent, MidiTrack* t)        //route->setText(tr("Route"));        //QToolTip::add(route, tr("set routing"));        //layout->addWidget(route); -      Q3HBoxLayout* rBox = new Q3HBoxLayout(0); +      QHBoxLayout* rBox = new QHBoxLayout(0);        iR = new QToolButton(this);        iR->setFont(config.fonts[1]);        iR->setFixedWidth((STRIP_WIDTH-4)/2); diff --git a/muse2/muse/mixer/strip.cpp b/muse2/muse/mixer/strip.cpp index 892a19b6..a15ad44e 100644 --- a/muse2/muse/mixer/strip.cpp +++ b/muse2/muse/mixer/strip.cpp @@ -8,10 +8,11 @@  #include <qtoolbutton.h>  #include <qlabel.h> -#include <qlayout.h> +#include <QLayout>  //Added by qt3to4: -#include <Q3VBoxLayout> -#include <Q3Frame> +#include <QVBoxLayout> +//#include <Q3Frame> +#include <QFrame>  #include "globals.h"  #include "gconfig.h" @@ -168,7 +169,7 @@ void Strip::soloToggled(bool val)  //---------------------------------------------------------  Strip::Strip(QWidget* parent, Track* t) -   : Q3Frame(parent, "Strip", Qt::WDestructiveClose) +   : QFrame(parent, Qt::WDestructiveClose)        {        iR            = 0;        oR            = 0; @@ -182,7 +183,7 @@ Strip::Strip(QWidget* parent, Track* t)        meter[0] = 0;        meter[1] = 0;        setFixedWidth(STRIP_WIDTH); -      layout = new Q3VBoxLayout(this); +      layout = new QVBoxLayout(this);        layout->setMargin(3);        //--------------------------------------------- diff --git a/muse2/muse/mixer/strip.h b/muse2/muse/mixer/strip.h index a28cf5fd..4202b3e3 100644 --- a/muse2/muse/mixer/strip.h +++ b/muse2/muse/mixer/strip.h @@ -9,11 +9,12 @@  #ifndef __STRIP_H__  #define __STRIP_H__ -#include <q3frame.h> +//#include <q3frame.h> +#include <QFrame>  #include <qicon.h>  //Added by qt3to4: -#include <Q3VBoxLayout> -#include <Q3GridLayout> +#include <QVBoxLayout> +#include <QGridLayout>  #include <QLabel>  #include "globaldefs.h" @@ -21,10 +22,10 @@  class Track;  class QLabel; -class Q3VBoxLayout; +class QVBoxLayout;  class Meter;  class QToolButton; -class Q3GridLayout; +class QGridLayout;  class ComboBox;  static const int STRIP_WIDTH = 65; @@ -33,13 +34,13 @@ static const int STRIP_WIDTH = 65;  //   Strip  //--------------------------------------------------------- -class Strip : public Q3Frame { +class Strip : public QFrame {        Q_OBJECT     protected:        Track* track;        QLabel* label; -      Q3VBoxLayout* layout; +      QVBoxLayout* layout;        Meter* meter[MAX_CHANNELS];        bool useSoloIconSet2; @@ -48,7 +49,7 @@ class Strip : public Q3Frame {        QToolButton* mute;        QToolButton* iR; // Input routing button        QToolButton* oR; // Output routing button -      Q3GridLayout* sliderGrid; +      QGridLayout* sliderGrid;        ComboBox* autoType;        void setLabelText(); diff --git a/muse2/muse/mplugins/rhythm.cpp b/muse2/muse/mplugins/rhythm.cpp index 5281fb56..2a164acf 100644 --- a/muse2/muse/mplugins/rhythm.cpp +++ b/muse2/muse/mplugins/rhythm.cpp @@ -55,7 +55,8 @@ void RhythmGen::closeEvent(QCloseEvent* ev)  #include <qvariant.h>  #include <qcheckbox.h> -#include <q3frame.h> +//#include <q3frame.h> +#include <QFrame>  #include <qlabel.h>  #include <qlcdnumber.h>  #include <q3listbox.h> @@ -231,9 +232,9 @@ RhythmGenerator::RhythmGenerator( QWidget* parent,  const char* name, bool modal      setCaption( trUtf8( "Form3" ) );      RhythmGeneratorLayout = new Q3VBoxLayout( this, 11, 6, "RhythmGeneratorLayout"); -    Frame6 = new Q3Frame( this, "Frame6" ); -    Frame6->setFrameShape( Q3Frame::StyledPanel ); -    Frame6->setFrameShadow( Q3Frame::Raised ); +    Frame6 = new QFrame( this); +    Frame6->setFrameShape( QFrame::StyledPanel ); +    Frame6->setFrameShadow( QFrame::Raised );      Frame6Layout = new Q3VBoxLayout( Frame6, 11, 6, "Frame6Layout");      TextLabel1 = new QLabel( Frame6, "TextLabel1" ); @@ -351,9 +352,9 @@ RhythmGenerator::RhythmGenerator( QWidget* parent,  const char* name, bool modal      Layout27 = new Q3HBoxLayout( 0, 0, 15, "Layout27"); -    Frame5 = new Q3Frame( this, "Frame5" ); -    Frame5->setFrameShape( Q3Frame::StyledPanel ); -    Frame5->setFrameShadow( Q3Frame::Raised ); +    Frame5 = new QFrame( this ); +    Frame5->setFrameShape( QFrame::StyledPanel ); +    Frame5->setFrameShadow( QFrame::Raised );      Frame5Layout = new Q3VBoxLayout( Frame5, 11, 6, "Frame5Layout");      TextLabel2 = new QLabel( Frame5, "TextLabel2" ); @@ -430,9 +431,9 @@ RhythmGenerator::RhythmGenerator( QWidget* parent,  const char* name, bool modal      Frame5Layout->addWidget( RandomizeCheck );      Layout27->addWidget( Frame5 ); -    Frame5_2 = new Q3Frame( this, "Frame5_2" ); -    Frame5_2->setFrameShape( Q3Frame::StyledPanel ); -    Frame5_2->setFrameShadow( Q3Frame::Raised ); +    Frame5_2 = new QFrame( this ); +    Frame5_2->setFrameShape( QFrame::StyledPanel ); +    Frame5_2->setFrameShadow( QFrame::Raised );      Frame5_2Layout = new Q3VBoxLayout( Frame5_2, 11, 6, "Frame5_2Layout");      TextLabel3 = new QLabel( Frame5_2, "TextLabel3" ); @@ -477,23 +478,23 @@ RhythmGenerator::RhythmGenerator( QWidget* parent,  const char* name, bool modal      Layout29 = new Q3HBoxLayout( 0, 0, 6, "Layout29"); -    Frame6_2 = new Q3Frame( this, "Frame6_2" ); +    Frame6_2 = new QFrame( this );      Frame6_2->setMinimumSize( QSize( 200, 150 ) ); -    Frame6_2->setFrameShape( Q3Frame::StyledPanel ); -    Frame6_2->setFrameShadow( Q3Frame::Raised ); +    Frame6_2->setFrameShape( QFrame::StyledPanel ); +    Frame6_2->setFrameShadow( QFrame::Raised );      Layout29->addWidget( Frame6_2 ); -    Frame7 = new Q3Frame( this, "Frame7" ); +    Frame7 = new QFrame( this );      Frame7->setMinimumSize( QSize( 200, 150 ) ); -    Frame7->setFrameShape( Q3Frame::StyledPanel ); -    Frame7->setFrameShadow( Q3Frame::Raised ); +    Frame7->setFrameShape( QFrame::StyledPanel ); +    Frame7->setFrameShadow( QFrame::Raised );      Layout29->addWidget( Frame7 );      RhythmGeneratorLayout->addLayout( Layout29 ); -    Frame8 = new Q3Frame( this, "Frame8" ); +    Frame8 = new QFrame( this );      Frame8->setMinimumSize( QSize( 400, 150 ) ); -    Frame8->setFrameShape( Q3Frame::StyledPanel ); -    Frame8->setFrameShadow( Q3Frame::Raised ); +    Frame8->setFrameShape( QFrame::StyledPanel ); +    Frame8->setFrameShadow( QFrame::Raised );      RhythmGeneratorLayout->addWidget( Frame8 );      // signals and slots connections diff --git a/muse2/muse/plugin.cpp b/muse2/muse/plugin.cpp index 0b2911ca..9bcf11bf 100644 --- a/muse2/muse/plugin.cpp +++ b/muse2/muse/plugin.cpp @@ -8,10 +8,10 @@  #include <qdir.h>  //Added by qt3to4: -#include <Q3BoxLayout> -#include <Q3GridLayout> -#include <Q3HBoxLayout> -#include <Q3VBoxLayout> +#include <QBoxLayout> +#include <QGridLayout> +#include <QHBoxLayout> +#include <QVBoxLayout>  #include <Qt3Support>  #include <stdio.h>  #include <stdlib.h> @@ -20,13 +20,14 @@  #include <math.h>  #include <qwidget.h> -#include <qlayout.h> +#include <QLayout>  #include <qlabel.h>  #include <qsignalmapper.h>  #include <qpushbutton.h>  #include <q3scrollview.h>  #include <q3listview.h> -#include <q3toolbar.h> +//#include <q3toolbar.h> +#include <QToolBar>  #include <qtoolbutton.h>  #include <q3whatsthis.h>  #include <qcheckbox.h> @@ -35,7 +36,8 @@  #include <qfile.h>  #include <qobject.h>  #include <qcombobox.h> -#include <q3buttongroup.h> +#include <QButtonGroup> +#include <QGroupBox>  #include <qradiobutton.h>  #include <qmessagebox.h>  #include <qtimer.h> @@ -2530,7 +2532,7 @@ PluginDialog::PluginDialog(QWidget* parent, const char* name, bool modal)    : QDialog(parent, name, modal)        {        setCaption(tr("MusE: select plugin")); -      Q3VBoxLayout* layout = new Q3VBoxLayout(this); +      QVBoxLayout* layout = new QVBoxLayout(this);        pList  = new Q3ListView(this);        pList->setAllColumnsShowFocus(true); @@ -2553,7 +2555,7 @@ PluginDialog::PluginDialog(QWidget* parent, const char* name, bool modal)        //  Ok/Cancel Buttons        //--------------------------------------------------- -      Q3BoxLayout* w5 = new Q3HBoxLayout; +      QBoxLayout* w5 = new QHBoxLayout;        layout->addLayout(w5);        QPushButton* okB     = new QPushButton(tr("Ok"), this); @@ -2565,7 +2567,9 @@ PluginDialog::PluginDialog(QWidget* parent, const char* name, bool modal)        w5->addSpacing(12);        w5->addWidget(cancelB); -      Q3ButtonGroup* plugSel = new Q3ButtonGroup(4, Qt::Horizontal, this, "Show plugs:"); +      // ORCAN - CHECK +      //QButtonGroup* plugSel = new QButtonGroup(4, Qt::Horizontal, this, "Show plugs:"); +      QGroupBox* plugSel = new QGroupBox(this);        plugSel->setTitle("Show plugs:");        QRadioButton* onlySM = new QRadioButton(plugSel, "Mono and Stereo");        onlySM->setText( "Mono and Stereo"); @@ -2576,8 +2580,9 @@ PluginDialog::PluginDialog(QWidget* parent, const char* name, bool modal)        QRadioButton* allPlug = new QRadioButton(plugSel, "Show all");        allPlug->setText( "Show All"); -      plugSel->setRadioButtonExclusive(true); -      plugSel->setButton(selectedPlugType); +      // ORCAN - FIXME +      //plugSel->setRadioButtonExclusive(true); +      //plugSel->setButton(selectedPlugType);        QToolTip::add(plugSel, tr("Select which types of plugins should be visible in the list.<br>"                               "Note that using mono plugins on stereo tracks is not a problem, two will be used in parallel.<br>" @@ -2825,7 +2830,7 @@ PluginGui::PluginGui(PluginIBase* p)        plugin = p;        setCaption(plugin->name()); -      Q3ToolBar* tools = new Q3ToolBar(tr("File Buttons"), this); +      QToolBar* tools = new QToolBar(tr("File Buttons"), this);        QToolButton* fileOpen = new QToolButton(           QIcon(*openIconS), // ddskrjo           tr("Load Preset"), @@ -2968,7 +2973,7 @@ PluginGui::PluginGui(PluginIBase* p)              //view->setVScrollBarMode(QScrollView::AlwaysOff);              view->addChild(mw); -            Q3GridLayout* grid = new Q3GridLayout(mw); +            QGridLayout* grid = new QGridLayout(mw);              grid->setSpacing(2);              int n  = plugin->parameters(); diff --git a/muse2/muse/song.cpp b/muse2/muse/song.cpp index 8c682e39..9e206fad 100644 --- a/muse2/muse/song.cpp +++ b/muse2/muse/song.cpp @@ -11,7 +11,8 @@  #include <errno.h>  #include <qapplication.h>  #include <qmessagebox.h> -#include <q3popupmenu.h> +//#include <q3popupmenu.h> +#include <QMenu>  #include <qdir.h>  #include <qaction.h>  #include <qcursor.h> @@ -2342,7 +2343,7 @@ int Song::execAutomationCtlPopup(AudioTrack* track, const QPoint& menupos, int a  {    //enum { HEADER, SEP1, PREV_EVENT, NEXT_EVENT, SEP2, ADD_EVENT, CLEAR_EVENT, CLEAR_RANGE, CLEAR_ALL_EVENTS };    enum { HEADER, PREV_EVENT, NEXT_EVENT, SEP2, ADD_EVENT, CLEAR_EVENT, CLEAR_RANGE, CLEAR_ALL_EVENTS }; -  Q3PopupMenu* menu = new Q3PopupMenu; +  QMenu* menu = new QMenu;    int count = 0;    bool isEvent = false, canSeekPrev = false, canSeekNext = false, canEraseRange = false; @@ -2406,6 +2407,8 @@ int Song::execAutomationCtlPopup(AudioTrack* track, const QPoint& menupos, int a    menu->insertItem(tr("clear automation"), CLEAR_ALL_EVENTS, CLEAR_ALL_EVENTS);    menu->setItemEnabled(CLEAR_ALL_EVENTS, (bool)count); +  // ORCAN - FIXME +  /*    int sel = menu->exec(menupos, 1);    delete menu;    if (sel == -1) @@ -2446,6 +2449,8 @@ int Song::execAutomationCtlPopup(AudioTrack* track, const QPoint& menupos, int a      break;          }    return sel; +  */ +  return 0;  }  //--------------------------------------------------------- @@ -2459,7 +2464,7 @@ int Song::execMidiAutomationCtlPopup(MidiTrack* track, MidiPart* part, const QPo    //enum { HEADER, SEP1, PREV_EVENT, NEXT_EVENT, SEP2, ADD_EVENT, CLEAR_EVENT, CLEAR_RANGE, CLEAR_ALL_EVENTS };    enum { HEADER, ADD_EVENT, CLEAR_EVENT }; -  Q3PopupMenu* menu = new Q3PopupMenu; +  QMenu* menu = new QMenu;    //int count = 0;    bool isEvent = false; @@ -2576,6 +2581,9 @@ int Song::execMidiAutomationCtlPopup(MidiTrack* track, MidiPart* part, const QPo  //  menu->insertItem(tr("clear automation"), CLEAR_ALL_EVENTS, CLEAR_ALL_EVENTS);  //  menu->setItemEnabled(CLEAR_ALL_EVENTS, (bool)count); + +// ORCAN - FIXME +/*    int sel = menu->exec(menupos, 1);    delete menu;    if (sel == -1) @@ -2663,6 +2671,8 @@ int Song::execMidiAutomationCtlPopup(MidiTrack* track, MidiPart* part, const QPo    }    return sel; +*/ +  return 0;  }  //--------------------------------------------------------- @@ -3618,7 +3628,7 @@ void Song::executeScript(const char* scriptfile, PartList* parts, int quant, boo  #define SCRIPTSSUFFIX "/share/muse/scripts/"  #define USERSCRIPTSSUFFIX "/.muse/scripts/" -void Song::populateScriptMenu(Q3PopupMenu* menuPlugins, QObject* receiver) +void Song::populateScriptMenu(QMenu* menuPlugins, QObject* receiver)  {        //        // List scripts diff --git a/muse2/muse/song.h b/muse2/muse/song.h index cc7267b7..15119b93 100644 --- a/muse2/muse/song.h +++ b/muse2/muse/song.h @@ -13,7 +13,8 @@  #include <qobject.h>  #include <qfont.h>  //Added by qt3to4: -#include <Q3PopupMenu> +//#include <Q3PopupMenu> +#include <QMenu>  #include <QEvent>  #include "pos.h" @@ -38,7 +39,7 @@ class EventList;  class MarkerList;  class Marker;  class SNode; -class Q3PopupMenu; +class QMenu;  class QButton;  class MidiPort; @@ -390,7 +391,7 @@ class Song : public QObject {        Track* addTrack(int);        Track* addNewTrack(int);        QString getScriptPath(int id, bool delivered); -      void populateScriptMenu(Q3PopupMenu* menuPlugins, QObject* receiver); +      void populateScriptMenu(QMenu* menuPlugins, QObject* receiver);     signals:        void songChanged(int); diff --git a/muse2/muse/transport.cpp b/muse2/muse/transport.cpp index 4cb206a2..74aa75ac 100644 --- a/muse2/muse/transport.cpp +++ b/muse2/muse/transport.cpp @@ -10,7 +10,8 @@  #include <qlabel.h>  #include <qslider.h>  #include <qpushbutton.h> -#include <q3frame.h> +//#include <q3frame.h> +#include <QFrame>  #include <q3whatsthis.h>  #include <qtooltip.h>  #include <qlayout.h> @@ -115,8 +116,8 @@ TempoSig::TempoSig(QWidget* parent)        Q3BoxLayout* vb1 = new Q3VBoxLayout(this);        vb1->setAutoAdd(true); -      Q3Frame* f = new Q3Frame(this); -      f->setFrameStyle(Q3Frame::Panel | Q3Frame::Sunken); +      QFrame* f = new QFrame(this); +      f->setFrameStyle(QFrame::Panel | QFrame::Sunken);        f->setLineWidth(1);        Q3BoxLayout* vb2 = new Q3VBoxLayout(f); diff --git a/muse2/muse/waveedit/waveedit.cpp b/muse2/muse/waveedit/waveedit.cpp index cb9d9a17..f6c5484f 100644 --- a/muse2/muse/waveedit/waveedit.cpp +++ b/muse2/muse/waveedit/waveedit.cpp @@ -21,7 +21,8 @@  #include "icons.h"  #include "shortcuts.h" -#include <q3toolbar.h> +//#include <q3toolbar.h> +#include <QToolBar>  #include <qtoolbutton.h>  #include <q3accel.h>  #include <qlayout.h> @@ -105,7 +106,7 @@ WaveEdit::WaveEdit(PartList* pl)        connect(menuEdit, SIGNAL(activated(int)), SLOT(cmd(int)));        //---------ToolBar---------------------------------- -      tools = new Q3ToolBar(this, "waveedit-tools"); +      tools = new QToolBar(this, "waveedit-tools");        undoRedo->addTo(tools);        Q3Accel* qa = new Q3Accel(this); @@ -116,13 +117,13 @@ WaveEdit::WaveEdit(PartList* pl)        //--------------------------------------------------        //    Transport Bar -      Q3ToolBar* transport = new Q3ToolBar(this); +      QToolBar* transport = new QToolBar(this);        transportAction->addTo(transport);        //--------------------------------------------------        //    ToolBar:   Solo  Cursor1 Cursor2 -      tb1 = new Q3ToolBar(this, "pianoroll-tools"); +      tb1 = new QToolBar(this, "pianoroll-tools");        tb1->setLabel(tr("weTools"));        solo = new QToolButton(tb1); diff --git a/muse2/muse/waveedit/waveedit.h b/muse2/muse/waveedit/waveedit.h index eac0e5bf..454fa1a1 100644 --- a/muse2/muse/waveedit/waveedit.h +++ b/muse2/muse/waveedit/waveedit.h @@ -32,8 +32,8 @@ class SNode;  class WaveEdit : public MidiEditor {        WaveView* view;        QSlider* ymag; -      Q3ToolBar* tools; -      Q3ToolBar* tb1; +      QToolBar* tools; +      QToolBar* tb1;        QToolButton* solo;        PosLabel* pos1;        PosLabel* pos2; diff --git a/muse2/muse/widgets/action.h b/muse2/muse/widgets/action.h index 74635f0a..32ec96ce 100644 --- a/muse2/muse/widgets/action.h +++ b/muse2/muse/widgets/action.h @@ -8,20 +8,22 @@  #ifndef __ACTION_H__  #define __ACTION_H__ -#include <Qt3Support> +//#include <Qt3Support> +#include <QAction>  //---------------------------------------------------------  //   Action  //--------------------------------------------------------- -class Action : public Q3Action { +class Action : public QAction {        Q_OBJECT        int _id;     public:        Action(QObject* parent, int i, const char* name = 0, bool toggle = false) -         : Q3Action(parent, name, toggle) { +         : QAction(name, parent) {              _id = i; +            setCheckable(toggle);              }        void setId(int i) { _id = i; }        int id() const    { return _id; } diff --git a/muse2/muse/widgets/combobox.cpp b/muse2/muse/widgets/combobox.cpp index 35959636..6e5b100d 100644 --- a/muse2/muse/widgets/combobox.cpp +++ b/muse2/muse/widgets/combobox.cpp @@ -9,7 +9,7 @@  #include <qcursor.h>  //Added by qt3to4:  #include <QMouseEvent> -#include <Q3Frame> +#include <QFrame>  #include <QLabel>  #include "combobox.h" @@ -24,7 +24,7 @@ ComboBox::ComboBox(QWidget* parent, const char* name)        _id = -1;        list = new Q3PopupMenu(0, "comboPopup");        connect(list, SIGNAL(activated(int)), SLOT(activatedIntern(int))); -      setFrameStyle(Q3Frame::Panel | Q3Frame::Raised); +      setFrameStyle(QFrame::Panel | QFrame::Raised);        setLineWidth(2);        } diff --git a/muse2/muse/widgets/lcombo.cpp b/muse2/muse/widgets/lcombo.cpp index fa647002..beb34255 100644 --- a/muse2/muse/widgets/lcombo.cpp +++ b/muse2/muse/widgets/lcombo.cpp @@ -7,11 +7,11 @@  #include "lcombo.h" -#include <qlayout.h> -#include <q3frame.h> +#include <QLayout> +#include <QFrame>  #include <qlabel.h>  //Added by qt3to4: -#include <Q3HBoxLayout> +#include <QHBoxLayout>  //---------------------------------------------------------  //   LabelCombo @@ -21,16 +21,18 @@ LabelCombo::LabelCombo(const QString& txt, QWidget* parent,     const char* name) : QWidget(parent, name)        {  //      setFixedHeight(20); -      Q3HBoxLayout* layout = new Q3HBoxLayout(this); +      QHBoxLayout* layout = new QHBoxLayout(this);        QLabel* label = new QLabel(txt, this); -      box = new QComboBox(false, this); -      layout->addStretch(); +      //box = new QComboBox(false, this); +      box = new QComboBox(this); +      box->setEditable(false); +      ///layout->addStretch();        layout->addSpacing(5);        layout->addWidget(label);        layout->addSpacing(5);        layout->addWidget(box);        layout->addSpacing(5); -      layout->addStretch(); +      ///layout->addStretch();        connect(box, SIGNAL(activated(int)), SIGNAL(activated(int)));        } @@ -46,4 +48,4 @@ void LabelCombo::clearFocus()  void LabelCombo::setFocusPolicy ( Qt::FocusPolicy fp )  {    box->setFocusPolicy(fp); -}
\ No newline at end of file +} diff --git a/muse2/muse/widgets/lcombo.h b/muse2/muse/widgets/lcombo.h index bdeedcb6..a0adda7d 100644 --- a/muse2/muse/widgets/lcombo.h +++ b/muse2/muse/widgets/lcombo.h @@ -8,12 +8,15 @@  #ifndef __LCOMBO_H__  #define __LCOMBO_H__ -#include <qwidget.h> -#include <qcombobox.h> +//#include <qwidget.h> +//#include <qcombobox.h>  class QString; +class QWidget; +  //class Q3ListBox;  #include <QAbstractItemView> +#include <QComboBox>  //--------------------------------------------------------- diff --git a/muse2/muse/widgets/nentry.cpp b/muse2/muse/widgets/nentry.cpp index c4006112..89c051df 100644 --- a/muse2/muse/widgets/nentry.cpp +++ b/muse2/muse/widgets/nentry.cpp @@ -5,13 +5,13 @@  //  (C) Copyright 1999 Werner Schweer (ws@seh.de)  //========================================================= -#include <qlayout.h> +#include <QLayout>  #include <qlabel.h>  //Added by qt3to4: -#include <Q3HBoxLayout> +#include <QHBoxLayout>  #include <QContextMenuEvent>  #include <QWheelEvent> -#include <Q3Frame> +#include <QFrame>  #include <QMouseEvent>  #include <QKeyEvent>  #include "nentry.h" @@ -81,7 +81,7 @@ bool NentryFilter::eventFilter(QObject*, QEvent* event)  //---------------------------------------------------------  Nentry::Nentry(QWidget* parent, const QString& txt, -   int _lPos, bool dark) : Q3Frame(parent) +   int _lPos, bool dark) : QFrame(parent)        {        focusW     = 0;        lPos       = _lPos; @@ -97,7 +97,7 @@ Nentry::Nentry(QWidget* parent, const QString& txt,        edit->setCursor(QCursor(Qt::arrowCursor));  //      edit->setFont(font3);        val = 0; -      layout = new Q3HBoxLayout(this); +      layout = new QHBoxLayout(this);        if (txt == "") {              layout->addWidget(edit, 1, Qt::AlignHCenter);              } diff --git a/muse2/muse/widgets/nentry.h b/muse2/muse/widgets/nentry.h index 30ddd930..10eefeee 100644 --- a/muse2/muse/widgets/nentry.h +++ b/muse2/muse/widgets/nentry.h @@ -8,20 +8,20 @@  #ifndef __NENTRY_H__  #define __NENTRY_H__ -#include <q3frame.h> +#include <QFrame>  #include <qlineedit.h>  #include <qstring.h>  //Added by qt3to4:  #include <QWheelEvent>  #include <QEvent> -#include <Q3HBoxLayout> +#include <QHBoxLayout>  #include <QMouseEvent>  #include <QLabel>  #include <QContextMenuEvent>  #include <QKeyEvent>  class QTimer; -class Q3HBoxLayout; +class QHBoxLayout;  class QLabel;  class NentryFilter : public QObject { @@ -38,7 +38,7 @@ class NentryFilter : public QObject {  //    numerical entry widget with optional label  //--------------------------------------------------------- -class Nentry : public Q3Frame { +class Nentry : public QFrame {        Q_OBJECT        int button; @@ -47,7 +47,7 @@ class Nentry : public Q3Frame {        QTimer* timer;        int evx;        int timecount; -      Q3HBoxLayout* layout; +      QHBoxLayout* layout;        QObject* filter;        QLabel* label;        int lPos;   // label Position 0 - left, 1 - right diff --git a/muse2/muse/widgets/noteinfo.cpp b/muse2/muse/widgets/noteinfo.cpp index 59bce4b9..e3d869e0 100644 --- a/muse2/muse/widgets/noteinfo.cpp +++ b/muse2/muse/widgets/noteinfo.cpp @@ -21,35 +21,62 @@  //    Start, L�nge, Note, Velo an, Velo aus, Kanal  //--------------------------------------------------- -NoteInfo::NoteInfo(Q3MainWindow* parent) -   : Q3ToolBar(tr("Note Info"), parent) +//NoteInfo::NoteInfo(QMainWindow* parent) +NoteInfo::NoteInfo(QWidget* parent) +   : QToolBar(tr("Note Info"), parent)        {        deltaMode = false; -      QLabel* label = new QLabel(tr("Start"), this, "Start"); +      //QLabel* label = new QLabel(tr("Start"), this, "Start"); +      QLabel* label = new QLabel(tr("Start"));        label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);        label->setIndent(3); -      selTime = new PosEdit(this, "Start"); +      addWidget(label); +      //selTime = new PosEdit(this, "Start"); +      selTime = new PosEdit(0, "Start"); +      addWidget(selTime); -      label = new QLabel(tr("Len"), this, "Len"); +      //label = new QLabel(tr("Len"), this, "Len"); +      label = new QLabel(tr("Len"));        label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);        label->setIndent(3); -      selLen = new QSpinBox(0, 100000, 1, this); - -      label = new QLabel(tr("Pitch"), this, "Pitch"); +      addWidget(label); +      //selLen = new QSpinBox(0, 100000, 1, this); +      selLen = new QSpinBox(); +      selLen->setRange(0, 100000); +      selLen->setSingleStep(1); +      addWidget(selLen); + +      //label = new QLabel(tr("Pitch"), this, "Pitch"); +      label = new QLabel(tr("Pitch"));        label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);        label->setIndent(3); -      selPitch = new PitchEdit(this, "selPitch"); +      addWidget(label); +      //selPitch = new PitchEdit(this, "selPitch"); +      selPitch = new PitchEdit(0, "selPitch"); +      addWidget(selPitch); -      label = new QLabel(tr("Velo On"), this, "Velocity On"); +      //label = new QLabel(tr("Velo On"), this, "Velocity On"); +      label = new QLabel(tr("Velo On"));        label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);        label->setIndent(3); -      selVelOn = new QSpinBox(0, 127, 1, this); - -      label = new QLabel(tr("Velo Off"), this, "Velocity Off"); +      addWidget(label); +      //selVelOn = new QSpinBox(0, 127, 1, this); +      selVelOn = new QSpinBox(); +      selVelOn->setRange(0, 127); +      selVelOn->setSingleStep(1); +      addWidget(selVelOn); + +      //label = new QLabel(tr("Velo Off"), this, "Velocity Off"); +      label = new QLabel(tr("Velo Off"));        label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);        label->setIndent(3); -      selVelOff = new QSpinBox(0, 127, 1, this); +      addWidget(label); +      //selVelOff = new QSpinBox(0, 127, 1, this); +      selVelOff = new QSpinBox(); +      selVelOff->setRange(0, 127); +      selVelOff->setSingleStep(1); +      addWidget(selVelOff);        connect(selLen,     SIGNAL(valueChanged(int)), SLOT(lenChanged(int)));        connect(selPitch,   SIGNAL(valueChanged(int)), SLOT(pitchChanged(int))); diff --git a/muse2/muse/widgets/noteinfo.h b/muse2/muse/widgets/noteinfo.h index 00c798fb..9607dfc1 100644 --- a/muse2/muse/widgets/noteinfo.h +++ b/muse2/muse/widgets/noteinfo.h @@ -7,19 +7,21 @@  #ifndef __NOTE_INFO_H__  #define __NOTE_INFO_H__ -#include <q3toolbar.h> +//#include <q3toolbar.h> +#include <QToolBar>  class PosEdit;  class QSpinBox;  class PitchEdit; -class Q3MainWindow; +//class QMainWindow; +class QWidget;  class Pos;  //---------------------------------------------------------  //   NoteInfo  //--------------------------------------------------------- -class NoteInfo : public Q3ToolBar { +class NoteInfo : public QToolBar {        PosEdit* selTime;        QSpinBox* selLen;        PitchEdit* selPitch; @@ -31,7 +33,8 @@ class NoteInfo : public Q3ToolBar {     public:        enum ValType {VAL_TIME, VAL_LEN, VAL_VELON, VAL_VELOFF, VAL_PITCH }; -      NoteInfo(Q3MainWindow* parent); +      //NoteInfo(QMainWindow* parent); +      NoteInfo(QWidget* parent = 0);        void setValues(unsigned, int, int, int, int);        void setDeltaMode(bool); diff --git a/muse2/muse/widgets/pitchlabel.cpp b/muse2/muse/widgets/pitchlabel.cpp index f53e6fa5..66af63fb 100644 --- a/muse2/muse/widgets/pitchlabel.cpp +++ b/muse2/muse/widgets/pitchlabel.cpp @@ -26,7 +26,8 @@ PitchLabel::PitchLabel(QWidget* parent, const char* name)        setLineWidth(2);        setMidLineWidth(3);        setValue(0); -      int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, 0, this); // ddskrjo 0 +      //int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, 0, this); // ddskrjo 0 +      int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);         setIndent(fw);        } @@ -46,7 +47,8 @@ void PitchLabel::setPitchMode(bool val)  QSize PitchLabel::sizeHint() const        {        QFontMetrics fm(font()); -      int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, 0, this); // ddskrjo 0 +      //int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, 0, this); // ddskrjo 0 +      int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);         int h  = fm.height() + fw * 2;  //      int w = 2 + fm.width(QString("A#8")) +  fw * 4;        int w = 2 + fm.width(QString("-9999")) + fw * 4;     // must display 14Bit controller values diff --git a/muse2/muse/widgets/poslabel.cpp b/muse2/muse/widgets/poslabel.cpp index 3066b640..e71fea49 100644 --- a/muse2/muse/widgets/poslabel.cpp +++ b/muse2/muse/widgets/poslabel.cpp @@ -32,7 +32,8 @@ PosLabel::PosLabel(QWidget* parent, const char* name)        setFrameStyle(WinPanel | Sunken);        setLineWidth(2);        setMidLineWidth(3); -      int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, 0, this); // ddskrjo 0 +      //int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, 0, this); // ddskrjo 0 +      int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);         setIndent(fw);        updateValue();        } @@ -44,7 +45,8 @@ PosLabel::PosLabel(QWidget* parent, const char* name)  QSize PosLabel::sizeHint() const        {        QFontMetrics fm(font()); -      int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, 0, this); // ddskrjo 0 +      //int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, 0, this); // ddskrjo 0 +      int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);         int h  = fm.height() + fw * 2;        int w;        if (_smpte) diff --git a/muse2/muse/widgets/poslabel.h b/muse2/muse/widgets/poslabel.h index 06cd0b09..f16aa64f 100644 --- a/muse2/muse/widgets/poslabel.h +++ b/muse2/muse/widgets/poslabel.h @@ -8,7 +8,8 @@  #ifndef __POSLABEL_H__  #define __POSLABEL_H__ -#include <qlabel.h> +//#include <qlabel.h> +#include <QLabel>  //---------------------------------------------------------  //   PosLabel diff --git a/muse2/muse/widgets/sliderbase.h b/muse2/muse/widgets/sliderbase.h index d2de6f7c..47084246 100644 --- a/muse2/muse/widgets/sliderbase.h +++ b/muse2/muse/widgets/sliderbase.h @@ -15,7 +15,7 @@  #define __SLIDERBASE_H__  #include "drange.h" -#include <q3frame.h> +#include <QFrame>  #include <qpixmap.h>  #include <qdatetime.h>  //#include <qbutton.h> diff --git a/muse2/muse/widgets/tb1.cpp b/muse2/muse/widgets/tb1.cpp index d2b9b4a7..f6a2aff8 100644 --- a/muse2/muse/widgets/tb1.cpp +++ b/muse2/muse/widgets/tb1.cpp @@ -57,43 +57,64 @@ static const char* quantStrings[] = {  //    solo time pitch raster quant  //--------------------------------------------------------- -Toolbar1::Toolbar1(Q3MainWindow* parent, int r, int q, bool sp) -//Toolbar1::Toolbar1(QWidget* parent, int r, int q, bool sp)    // p4.0.4 -   : Q3ToolBar(QString("Quant'n'Snap-tools"), parent) +//Toolbar1::Toolbar1(QMainWindow* parent, int r, int q, bool sp) +Toolbar1::Toolbar1(QWidget* parent, int r, int q, bool sp)     +   : QToolBar(QString("Quant'n'Snap-tools"), parent)     //: QToolBar(QString("Qant'n'Snap-tools"), parent)                     { +      pitch = 0;        showPitch = sp; -      setHorizontalStretchable(false);     +      // ORCAN - FIXME: Check this: +      //setHorizontalStretchable(false); +      //setHorizontalPolicy(QSizePolicy::Minimum); +      //setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); -      solo = new QToolButton(this); +      solo = new QToolButton();            solo->setText(tr("Solo"));        solo->setToggleButton(true); +      addWidget(solo);        //---------------------------------------------------        //  Cursor Position        //--------------------------------------------------- -      QLabel* label = new QLabel(tr("Cursor"), this, "Cursor"); +      //QLabel* label = new QLabel(tr("Cursor"), this, "Cursor"); +      QLabel* label = new QLabel(tr("Cursor"));        label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);        label->setIndent(3); -      pos   = new PosLabel(this, "pos"); +      addWidget(label); +      //pos   = new PosLabel(this, "pos"); +      pos   = new PosLabel(0, "pos"); +      pos->setFixedHeight(22); +      addWidget(pos);        if (showPitch) { -            pitch = new PitchLabel(this); +            //pitch = new PitchLabel(this); +            pitch = new PitchLabel(0);              pitch->setEnabled(false); +            pitch->setFixedHeight(22); +            addWidget(pitch);              }        //---------------------------------------------------        //  Raster, Quant.        //--------------------------------------------------- -      raster = new LabelCombo(tr("Snap"), this); -      quant  = new LabelCombo(tr("Quantize"), this); +      //raster = new LabelCombo(tr("Snap"), this); +      //quant  = new LabelCombo(tr("Quantize"), this); +      raster = new LabelCombo(tr("Snap"), 0); +      quant  = new LabelCombo(tr("Quantize"), 0); +      //addWidget(raster); +      //addWidget(quant);        //Q3ListBox* rlist = new Q3ListBox(this);        //Q3ListBox* qlist = new Q3ListBox(this);        // p4.0.3 -      QTableWidget* rlist = new QTableWidget(10, 3, this);     -      QTableWidget* qlist = new QTableWidget(8, 3, this);      +      //QTableWidget* rlist = new QTableWidget(10, 3, this);     +      //QTableWidget* qlist = new QTableWidget(8, 3, this);      +      QTableWidget* rlist = new QTableWidget(10, 3);     +      QTableWidget* qlist = new QTableWidget(8, 3);      +      //addWidget(rlist); +      //addWidget(qlist);        rlist->verticalHeader()->setDefaultSectionSize(22);                              rlist->horizontalHeader()->setDefaultSectionSize(32);                              rlist->setSelectionMode(QAbstractItemView::SingleSelection);                       @@ -130,13 +151,26 @@ Toolbar1::Toolbar1(Q3MainWindow* parent, int r, int q, bool sp)        setRaster(r);        setQuant(q); +      addWidget(raster); +      addWidget(quant); +       +      // FIXME: Not working right. +      raster->setFixedHeight(38); +      quant->setFixedHeight(38); +              //---------------------------------------------------        //  To Menu        //--------------------------------------------------- -      LabelCombo* to = new LabelCombo(tr("To"), this); +      /*       +      //LabelCombo* to = new LabelCombo(tr("To"), this); +      LabelCombo* to = new LabelCombo(tr("To"), 0); +      addWidget(to);  //       Q3ListBox* toList = new Q3ListBox(this); -      QListWidget* toList = new QListWidget(this);       // p4.0.4 +      //QListWidget* toList = new QListWidget(this);       // p4.0.4 +      QListWidget* toList = new QListWidget();              +      toList->setFixedHeight(24); +      //addWidget(toList);  //       //to->setListBox(toList); ddskrjo        to->setView(toList);                               // p4.0.4 @@ -149,10 +183,21 @@ Toolbar1::Toolbar1(Q3MainWindow* parent, int r, int q, bool sp)        toList->insertItem(CMD_RANGE_LOOP, tr("Looped Ev."));        toList->insertItem(CMD_RANGE_SELECTED, tr("Selected Ev."));        toList->insertItem(CMD_RANGE_LOOP | CMD_RANGE_SELECTED, tr("Looped+Sel.")); +      */ + +      addWidget(new QLabel(tr("To"))); +      QComboBox* toList = new QComboBox; +      toList->setFixedHeight(22); +      toList->addItem(tr("All Events"),   0); +      toList->addItem(tr("Looped Ev."),   CMD_RANGE_LOOP); +      toList->addItem(tr("Selected Ev."), CMD_RANGE_SELECTED); +      toList->addItem(tr("Looped+Sel."),  CMD_RANGE_LOOP | CMD_RANGE_SELECTED); +      addWidget(toList);        connect(raster, SIGNAL(activated(int)), SLOT(_rasterChanged(int)));        connect(quant,  SIGNAL(activated(int)), SLOT(_quantChanged(int))); -      connect(to,     SIGNAL(activated(int)), SIGNAL(toChanged(int))); +      //connect(to,     SIGNAL(activated(int)), SIGNAL(toChanged(int))); +      connect(toList,     SIGNAL(activated(int)), SIGNAL(toChanged(int)));        connect(solo,   SIGNAL(toggled(bool)), SIGNAL(soloChanged(bool)));        pos->setEnabled(false);        } @@ -181,7 +226,7 @@ void Toolbar1::_quantChanged(int index)  void Toolbar1::setPitch(int val)        { -      if (showPitch) { +      if (pitch && showPitch) {              pitch->setEnabled(val != -1);              pitch->setPitch(val);              } @@ -189,7 +234,7 @@ void Toolbar1::setPitch(int val)  void Toolbar1::setInt(int val)        { -      if (showPitch) { +      if (pitch && showPitch) {              pitch->setEnabled(val != -1);              pitch->setInt(val);              } @@ -202,7 +247,7 @@ void Toolbar1::setInt(int val)  void Toolbar1::setTime(unsigned val)        {        if (!pos->isVisible()) { -            printf("NOT visible\n"); +            //printf("NOT visible\n");              return;              }        if (val == MAXINT) @@ -262,6 +307,7 @@ void Toolbar1::setSolo(bool flag)  void Toolbar1::setPitchMode(bool /*flag*/)        { -//      pitch->setPitchMode(flag); +     // if(pitch) +//        pitch->setPitchMode(flag);        } diff --git a/muse2/muse/widgets/tb1.h b/muse2/muse/widgets/tb1.h index 40264abf..b330ee85 100644 --- a/muse2/muse/widgets/tb1.h +++ b/muse2/muse/widgets/tb1.h @@ -9,10 +9,10 @@  #define __TB1_H__  //#include <qwidget.h> -#include <q3toolbar.h> +//#include <q3toolbar.h>  #include <QWidget>      // p4.0.4 -//#include <QToolBar>     // +#include <QToolBar>     //  class PosLabel;  class PitchLabel; @@ -24,8 +24,8 @@ class QToolButton;  //   Toolbar1  //--------------------------------------------------------- -class Toolbar1 : public Q3ToolBar { -//class Toolbar1 : public QToolBar {       // p4.0.4 +//class Toolbar1 : public Q3ToolBar { +class Toolbar1 : public QToolBar {       // p4.0.4        QToolButton* solo;        PosLabel* pos;        PitchLabel* pitch; @@ -52,8 +52,8 @@ class Toolbar1 : public Q3ToolBar {        void toChanged(int);     public: -      Toolbar1(Q3MainWindow* parent, int r=96, -      //Toolbar1(QWidget* parent, int r=96,     // p4.0.4 +      //Toolbar1(QMainWindow* parent = 0, int r=96, +      Toolbar1(QWidget* parent, int r=96,                int q=96, bool showPitch=true);        void setSolo(bool val);        void setPitchMode(bool flag); diff --git a/muse2/muse/widgets/tools.cpp b/muse2/muse/widgets/tools.cpp index bb6ba334..ec80230a 100644 --- a/muse2/muse/widgets/tools.cpp +++ b/muse2/muse/widgets/tools.cpp @@ -6,14 +6,18 @@  //=========================================================  #include "tools.h" -#include <qpixmap.h> -#include <q3buttongroup.h> -#include <qtoolbutton.h> -#include <qtooltip.h> -#include <q3whatsthis.h> -#include <q3mainwindow.h> +//#include <qpixmap.h> +//#include <q3buttongroup.h> +//#include <qtoolbutton.h> +//#include <qtooltip.h> +//#include <q3whatsthis.h> +//#include <q3mainwindow.h> + +#include <QPixmap> +#include <QToolButton> +  //Added by qt3to4: -#include <Q3ActionGroup> +#include <QActionGroup>  #include "icons.h"  #include "action.h" @@ -56,10 +60,12 @@ ToolB toolList[] = {  //   EditToolBar  //--------------------------------------------------------- -EditToolBar::EditToolBar(Q3MainWindow* parent, int tools, const char*) -   : Q3ToolBar(tr("Edit Tools"), parent) +//EditToolBar::EditToolBar(QMainWindow* parent, int tools, const char*) +EditToolBar::EditToolBar(QWidget* parent, int tools, const char*) +   : QToolBar(tr("Edit Tools"), parent)        { -      Q3ActionGroup* action = new Q3ActionGroup(parent, "editaction", true); +      QActionGroup* action = new QActionGroup(parent);  // Parent needed. +      action->setExclusive(true);        nactions = 0;        for (unsigned i = 0; i < sizeof(toolList)/sizeof(*toolList); ++i) { @@ -77,7 +83,8 @@ EditToolBar::EditToolBar(Q3MainWindow* parent, int tools, const char*)              Action* a = new Action(action, 1<<i, t->tip, true);              actions[n] = a; -            a->setIconSet(QIcon(**(t->icon))); +            //a->setIconSet(QIcon(**(t->icon))); +            a->setIcon(QIcon(**(t->icon)));              a->setToolTip(tr(t->tip));              a->setWhatsThis(tr(t->ltip));              if (first) { @@ -86,16 +93,19 @@ EditToolBar::EditToolBar(Q3MainWindow* parent, int tools, const char*)                    }              ++n;              } -      action->addTo(this); -      //connect(action, SIGNAL(selected(Q3Action*)), SLOT(toolChanged(QAction*))); -      connect(action, SIGNAL(selected(Q3Action*)), SLOT(toolChanged(Q3Action*)));   // p4.0.5 +      action->setVisible(true); +      //action->addTo(this); +      // Note: Does not take ownership. +      addActions(action->actions()); +       +      connect(action, SIGNAL(selected(QAction*)), SLOT(toolChanged(QAction*)));           }  //---------------------------------------------------------  //   toolChanged  //--------------------------------------------------------- -void EditToolBar::toolChanged(Q3Action* action) +void EditToolBar::toolChanged(QAction* action)        {        emit toolChanged(((Action*)action)->id());        } diff --git a/muse2/muse/widgets/tools.h b/muse2/muse/widgets/tools.h index efe5d57c..63304a4d 100644 --- a/muse2/muse/widgets/tools.h +++ b/muse2/muse/widgets/tools.h @@ -8,13 +8,15 @@  #ifndef __TOOLS_H__  #define __TOOLS_H__ -#include <q3toolbar.h> +//#include <q3toolbar.h> +#include <QToolBar>  //Added by qt3to4:  #include <QPixmap> -class Q3Action; +class QAction;  class Action; -class Q3MainWindow; +//class QMainWindow; +class QWidget;  enum Tool { PointerTool=1, PencilTool=2, RubberTool=4, CutTool=8,     ScoreTool=16, GlueTool=32, QuantTool=64, DrawTool=128, MuteTool=256}; @@ -33,13 +35,13 @@ extern ToolB toolList[];  //   EditToolBar  //--------------------------------------------------------- -class EditToolBar : public Q3ToolBar { +class EditToolBar : public QToolBar {        Q_OBJECT        Action** actions;        int nactions;     private slots: -      void toolChanged(Q3Action* action); +      void toolChanged(QAction* action);     signals:        void toolChanged(int); @@ -48,7 +50,8 @@ class EditToolBar : public Q3ToolBar {        void set(int id);     public: -      EditToolBar(Q3MainWindow*, int, const char* name = 0); +      //EditToolBar(QMainWindow*, int, const char* name = 0); +      EditToolBar(QWidget* /*parent*/, int /*tools*/, const char* name = 0);  // Needs a parent !        ~EditToolBar();        int curTool();        }; diff --git a/muse2/muse/widgets/utils.cpp b/muse2/muse/widgets/utils.cpp index 2a4852f3..2c4aeb01 100644 --- a/muse2/muse/widgets/utils.cpp +++ b/muse2/muse/widgets/utils.cpp @@ -9,7 +9,7 @@  #include <stdlib.h>  #include "utils.h"  #include <math.h> -#include <q3frame.h> +#include <QFrame>  #include <sys/time.h>  // Quick bit-shift lookup table @@ -61,10 +61,10 @@ int num2cols(int min, int max)  //   hLine  //--------------------------------------------------------- -Q3Frame* hLine(QWidget* w) +QFrame* hLine(QWidget* w)        { -      Q3Frame* delim = new Q3Frame(w); -      delim->setFrameStyle(Q3Frame::HLine | Q3Frame::Sunken); +      QFrame* delim = new QFrame(w); +      delim->setFrameStyle(QFrame::HLine | QFrame::Sunken);        return delim;        } @@ -72,10 +72,10 @@ Q3Frame* hLine(QWidget* w)  //   vLine  //--------------------------------------------------------- -Q3Frame* vLine(QWidget* w) +QFrame* vLine(QWidget* w)        { -      Q3Frame* delim = new Q3Frame(w); -      delim->setFrameStyle(Q3Frame::VLine | Q3Frame::Sunken); +      QFrame* delim = new QFrame(w); +      delim->setFrameStyle(QFrame::VLine | QFrame::Sunken);        return delim;        } @@ -307,7 +307,7 @@ unsigned int string2u32bitmap(const QString& str)  //---------------------------------------------------------  // Added by Tim. p3.3.8 -bool autoAdjustFontSize(Q3Frame* w, const QString& s, bool ignoreWidth, bool ignoreHeight, int max, int min) +bool autoAdjustFontSize(QFrame* w, const QString& s, bool ignoreWidth, bool ignoreHeight, int max, int min)  {    // In case the max or min was obtained from QFont::pointSize() which returns -1     //  if the font is a pixel font, or if min is greater than max... diff --git a/muse2/muse/widgets/utils.h b/muse2/muse/widgets/utils.h index aaf501f0..297994c0 100644 --- a/muse2/muse/widgets/utils.h +++ b/muse2/muse/widgets/utils.h @@ -1,5 +1,5 @@  //Added by qt3to4: -#include <Q3Frame> +#include <QFrame>  //=========================================================  //  MusE  //  Linux Music Editor @@ -10,7 +10,7 @@  #ifndef __UTILS_H__  #define __UTILS_H__ -class Q3Frame; +class QFrame;  class QWidget;  #include <qstring.h> @@ -19,11 +19,11 @@ extern QString bitmap2String(int bm);  extern int string2bitmap(const QString& str);  extern QString u32bitmap2String(unsigned int bm);  extern unsigned int string2u32bitmap(const QString& str); -extern bool autoAdjustFontSize(Q3Frame* w, const QString& s, bool ignoreWidth = false, bool ignoreHeight = false, int max = 10, int min = 4); +extern bool autoAdjustFontSize(QFrame* w, const QString& s, bool ignoreWidth = false, bool ignoreHeight = false, int max = 10, int min = 4);  extern int num2cols(int min, int max); -extern Q3Frame* hLine(QWidget* parent); -extern Q3Frame* vLine(QWidget* parent); +extern QFrame* hLine(QWidget* parent); +extern QFrame* vLine(QWidget* parent);  extern void dump(const unsigned char* p, int n);  extern double curTime(); | 
