diff options
author | Orcan Ogetbil <oget.fedora@gmail.com> | 2010-11-27 11:32:13 +0000 |
---|---|---|
committer | Orcan Ogetbil <oget.fedora@gmail.com> | 2010-11-27 11:32:13 +0000 |
commit | a0ed94cfa536025b1c51b6b1c4dffe1683ea2808 (patch) | |
tree | 2554a80f8ec4a105a9779db59751ee8548a086c6 /muse2/muse | |
parent | 5969affc475d1abf1c34297b524b905490b05fe1 (diff) |
ported .ui widgets to Qt4
Diffstat (limited to 'muse2/muse')
-rw-r--r-- | muse2/muse/conf.cpp | 2 | ||||
-rw-r--r-- | muse2/muse/confmport.cpp | 145 | ||||
-rw-r--r-- | muse2/muse/confmport.h | 43 | ||||
-rw-r--r-- | muse2/muse/icons.cpp | 4 | ||||
-rw-r--r-- | muse2/muse/mixer/CMakeLists.txt | 3 | ||||
-rw-r--r-- | muse2/muse/mixer/routedialog.cpp | 51 | ||||
-rw-r--r-- | muse2/muse/mixer/routedialog.h | 11 | ||||
-rw-r--r-- | muse2/muse/mixer/routedialogbase.ui | 399 | ||||
-rw-r--r-- | muse2/muse/widgets/CMakeLists.txt | 11 | ||||
-rw-r--r-- | muse2/muse/widgets/gatetime.cpp | 23 | ||||
-rw-r--r-- | muse2/muse/widgets/gatetime.h | 10 | ||||
-rw-r--r-- | muse2/muse/widgets/gatetimebase.ui | 495 | ||||
-rw-r--r-- | muse2/muse/widgets/midisync.ui | 823 | ||||
-rw-r--r-- | muse2/muse/widgets/midisyncimpl.cpp | 516 | ||||
-rw-r--r-- | muse2/muse/widgets/midisyncimpl.h | 63 |
15 files changed, 1155 insertions, 1444 deletions
diff --git a/muse2/muse/conf.cpp b/muse2/muse/conf.cpp index 33631211..feaf123d 100644 --- a/muse2/muse/conf.cpp +++ b/muse2/muse/conf.cpp @@ -1307,7 +1307,7 @@ void MusE::configMidiSync() { if (!midiSyncConfig) //midiSyncConfig = new MidiSyncConfig(this); - midiSyncConfig = new MidiSyncConfig(0, (char*) "midiSyncConfig"); + midiSyncConfig = new MidiSyncConfig; if (midiSyncConfig->isVisible()) { midiSyncConfig->raise(); diff --git a/muse2/muse/confmport.cpp b/muse2/muse/confmport.cpp index b881cda7..953115cc 100644 --- a/muse2/muse/confmport.cpp +++ b/muse2/muse/confmport.cpp @@ -9,29 +9,13 @@ #include <list> #include <termios.h> #include <iostream> +#include <stdio.h> -#include <q3listview.h> -#include <qlayout.h> -#include <qpushbutton.h> -#include <qlineedit.h> -#include <qcombobox.h> -#include <qlabel.h> -#include <QButtonGroup> #include <QMenu> -//Added by qt3to4: +#include <QMessageBox> #include <QPixmap> -#include <stdio.h> -//#include <q3popupmenu.h> -#include <q3groupbox.h> -#include <qradiobutton.h> -#include <qspinbox.h> -#include <qcheckbox.h> -#include <qsignalmapper.h> -#include <qtooltip.h> -#include <q3filedialog.h> -#include <qtoolbutton.h> -#include <qmessagebox.h> -#include <qpoint.h> +#include <QTableWidget> +#include <QTableWidgetItem> #include "confmport.h" #include "app.h" @@ -624,73 +608,71 @@ void MPConfig::rbClicked(QTableWidgetItem* item) } //--------------------------------------------------------- -// MPHeaderTip::maybeTip +// MPConfig::setToolTip //--------------------------------------------------------- -void MPHeaderTip::maybeTip(const QPoint &pos) +void MPConfig::setToolTip(QTableWidgetItem *item, int col) { -#if 0 // ddskrjo - Q3Header* w = (Q3Header*)parentWidget(); - int section = w->sectionAt(pos.x()); - if (section == -1) - return; - QRect r(w->sectionPos(section), 0, w->sectionSize(section), - w->height()); - QString p; - switch (section) { - case DEVCOL_NO: p = Q3Header::tr("Port Number"); break; - case DEVCOL_GUI: p = Q3Header::tr("Enable gui"); break; - case DEVCOL_REC: p = Q3Header::tr("Enable reading"); break; - case DEVCOL_PLAY: p = Q3Header::tr("Enable writing"); break; - case DEVCOL_INSTR: p = Q3Header::tr("Port instrument"); break; - case DEVCOL_NAME: p = Q3Header::tr("Midi device name. Click to edit (Jack)"); break; - //case DEVCOL_ROUTES: p = Q3Header::tr("Jack midi ports"); break; - case DEVCOL_INROUTES: p = Q3Header::tr("Connections from Jack Midi outputs"); break; - case DEVCOL_OUTROUTES: p = Q3Header::tr("Connections to Jack Midi inputs"); break; - case DEVCOL_STATE: p = Q3Header::tr("Device state"); break; + switch (col) { + case DEVCOL_NO: item->setToolTip(tr("Port Number")); break; + case DEVCOL_GUI: item->setToolTip(tr("Enable gui")); break; + case DEVCOL_REC: item->setToolTip(tr("Enable reading")); break; + case DEVCOL_PLAY: item->setToolTip(tr("Enable writing")); break; + case DEVCOL_INSTR: item->setToolTip(tr("Port instrument")); break; + case DEVCOL_NAME: item->setToolTip(tr("Midi device name. Click to edit (Jack)")); break; + //case DEVCOL_ROUTES: item->setToolTip(tr("Jack midi ports")); break; + case DEVCOL_INROUTES: item->setToolTip(tr("Connections from Jack Midi outputs")); break; + case DEVCOL_OUTROUTES: item->setToolTip(tr("Connections to Jack Midi inputs")); break; + case DEVCOL_STATE: item->setToolTip(tr("Device state")); break; default: return; } - tip(r, p); -#endif } //--------------------------------------------------------- -// MPWhatsThis::text +// MPConfig::setWhatsThis //--------------------------------------------------------- -QString MPWhatsThis::text(const QPoint& pos) +void MPConfig::setWhatsThis(QTableWidgetItem *item, int col) { - int n = header->cellAt(pos.x()); - if (n == -1) - return QString::null; - switch (header->mapToLogical(n)) { + switch (col) { case DEVCOL_NO: - return Q3Header::tr("Port Number"); + item->setWhatsThis(tr("Port Number")); break; case DEVCOL_GUI: - return Q3Header::tr("Enable gui for device"); + item->setWhatsThis(tr("Enable gui for device")); break; case DEVCOL_REC: - return Q3Header::tr("Enable reading from device"); + item->setWhatsThis(tr("Enable reading from device")); break; case DEVCOL_PLAY: - return Q3Header::tr("Enable writing to device"); + item->setWhatsThis(tr("Enable writing to device")); break; case DEVCOL_NAME: - return Q3Header::tr("Name of the midi device associated with" - " this port number. Click to edit Jack midi name."); + item->setWhatsThis(tr("Name of the midi device associated with" + " this port number. Click to edit Jack midi name.")); break; case DEVCOL_INSTR: - return Q3Header::tr("Instrument connected to port"); + item->setWhatsThis(tr("Instrument connected to port")); break; //case DEVCOL_ROUTES: - // return Q3Header::tr("Jack midi ports"); + // item->setWhatsThis(tr("Jack midi ports")); break; case DEVCOL_INROUTES: - return Q3Header::tr("Connections from Jack Midi output ports"); + item->setWhatsThis(tr("Connections from Jack Midi output ports")); break; case DEVCOL_OUTROUTES: - return Q3Header::tr("Connections to Jack Midi input ports"); + item->setWhatsThis(tr("Connections to Jack Midi input ports")); break; case DEVCOL_STATE: - return Q3Header::tr("State: result of opening the device"); + item->setWhatsThis(tr("State: result of opening the device")); break; default: break; } - return QString::null; } + +//--------------------------------------------------------- +// MPConfig::addItem() +//--------------------------------------------------------- + +void MPConfig::addItem(int row, int col, QTableWidgetItem *item, QTableWidget *table) + { + setWhatsThis(item, col); + table->setItem(row, col, item); + } + + //--------------------------------------------------------- // MPConfig // Midi Port Config @@ -704,12 +686,7 @@ MPConfig::MPConfig(QWidget* parent) mdevView->verticalHeader()->hide(); mdevView->setSelectionMode(QAbstractItemView::SingleSelection); mdevView->setShowGrid(false); - mdevView->horizontalHeader()->setResizeMode(DEVCOL_NO ,QHeaderView::Fixed); - mdevView->horizontalHeader()->setResizeMode(DEVCOL_REC ,QHeaderView::Fixed); - mdevView->horizontalHeader()->setResizeMode(DEVCOL_PLAY ,QHeaderView::Fixed); - mdevView->horizontalHeader()->setResizeMode(DEVCOL_GUI ,QHeaderView::Fixed); - _mptooltip = 0; //popup = 0; instrPopup = 0; _showAliases = -1; // 0: Show first aliases, if available. Nah, stick with -1: none at first. @@ -727,16 +704,12 @@ MPConfig::MPConfig(QWidget* parent) mdevView->setColumnCount(columnnames.size()); mdevView->setHorizontalHeaderLabels(columnnames); - + for (int i = 0; i < columnnames.size(); ++i) { + setWhatsThis(mdevView->horizontalHeaderItem(i), i); + setToolTip(mdevView->horizontalHeaderItem(i), i); + } mdevView->setFocusPolicy(Qt::NoFocus); - - - /* Orcan FIXME - - new MPWhatsThis(mdevView, mdevView->header()); - _mptooltip = new MPHeaderTip(mdevView->header()); - */ connect(mdevView, SIGNAL(itemPressed(QTableWidgetItem*)), this, SLOT(rbClicked(QTableWidgetItem*))); connect(mdevView, SIGNAL(itemChanged(QTableWidgetItem*)), @@ -756,7 +729,6 @@ MPConfig::MPConfig(QWidget* parent) MPConfig::~MPConfig() { - delete _mptooltip; } //--------------------------------------------------------- @@ -800,30 +772,30 @@ void MPConfig::songChanged(int flags) QString s; s.setNum(i+1); QTableWidgetItem* itemno = new QTableWidgetItem(s); - mdevView->setItem(i, DEVCOL_NO, itemno); + addItem(i, DEVCOL_NO, itemno, mdevView); itemno->setTextAlignment(Qt::AlignHCenter); QTableWidgetItem* itemstate = new QTableWidgetItem(port->state()); - mdevView->setItem(i, DEVCOL_STATE, itemstate); + addItem(i, DEVCOL_STATE, itemstate, mdevView); QTableWidgetItem* iteminstr = new QTableWidgetItem(port->instrument() ? port->instrument()->iname() : tr("<unknown>")); - mdevView->setItem(i, DEVCOL_INSTR, iteminstr); + addItem(i, DEVCOL_INSTR, iteminstr, mdevView); QTableWidgetItem* itemname = new QTableWidgetItem; - mdevView->setItem(i, DEVCOL_NAME, itemname); + addItem(i, DEVCOL_NAME, itemname, mdevView); itemname->setFlags(Qt::ItemIsEnabled); QTableWidgetItem* itemgui = new QTableWidgetItem; - mdevView->setItem(i, DEVCOL_GUI, itemgui); + addItem(i, DEVCOL_GUI, itemgui, mdevView); itemgui->setTextAlignment(Qt::AlignHCenter); QTableWidgetItem* itemrec = new QTableWidgetItem; - mdevView->setItem(i, DEVCOL_REC, itemrec); + addItem(i, DEVCOL_REC, itemrec, mdevView); itemrec->setTextAlignment(Qt::AlignHCenter); QTableWidgetItem* itemplay = new QTableWidgetItem; - mdevView->setItem(i, DEVCOL_PLAY, itemplay); + addItem(i, DEVCOL_PLAY, itemplay, mdevView); itemplay->setTextAlignment(Qt::AlignHCenter); QTableWidgetItem* itemout = new QTableWidgetItem; - mdevView->setItem(i, DEVCOL_OUTROUTES, itemout); + addItem(i, DEVCOL_OUTROUTES, itemout, mdevView); QTableWidgetItem* itemin = new QTableWidgetItem; - mdevView->setItem(i, DEVCOL_INROUTES, itemin); + addItem(i, DEVCOL_INROUTES, itemin, mdevView); mdevView->blockSignals(false); @@ -922,6 +894,11 @@ void MPConfig::songChanged(int flags) } synthList->resizeColumnToContents(1); mdevView->resizeColumnsToContents(); + mdevView->horizontalHeader()->setResizeMode(DEVCOL_NO ,QHeaderView::Fixed); + mdevView->horizontalHeader()->setResizeMode(DEVCOL_REC ,QHeaderView::Fixed); + mdevView->horizontalHeader()->setResizeMode(DEVCOL_PLAY ,QHeaderView::Fixed); + mdevView->horizontalHeader()->setResizeMode(DEVCOL_GUI ,QHeaderView::Fixed); + mdevView->horizontalHeader()->setStretchLastSection( true ); selectionChanged(); } diff --git a/muse2/muse/confmport.h b/muse2/muse/confmport.h index 11bac60c..d8bd663b 100644 --- a/muse2/muse/confmport.h +++ b/muse2/muse/confmport.h @@ -10,62 +10,29 @@ #define __CONFMPORT_H__ #include <QWidget> -#include <Q3WhatsThis> #include <QToolTip> -//Added by qt3to4: -//#include <Q3PopupMenu> #include "ui_synthconfigbase.h" class QTreeWidget; class QTableWidget; class QPoint; -//class Q3PopupMenu; class QMenu; -class Q3Header; class Xml; -//---------------------------------------------------------- -// MPHeaderTip -//---------------------------------------------------------- - -class MPHeaderTip { // : public QToolTip { ddskrjo - - public: - MPHeaderTip(QWidget *) {} // : QToolTip(parent) {} ddskrjo - virtual ~MPHeaderTip() {} - protected: - void maybeTip(const QPoint &); - }; - -//--------------------------------------------------------- -// MPWhatsThis -//--------------------------------------------------------- - -class MPWhatsThis : public Q3WhatsThis { - Q3Header* header; - - protected: - QString text(const QPoint&); - - public: - MPWhatsThis(QWidget* parent, Q3Header* h) : Q3WhatsThis(parent) { - header = h; - } - }; - //--------------------------------------------------------- // MPConfig // Midi Port Config //--------------------------------------------------------- class MPConfig : public QDialog, Ui::SynthConfigBase { - MPHeaderTip* _mptooltip; - //Q3PopupMenu* popup; QMenu* instrPopup; - + //QMenu* popup; int _showAliases; // -1: None. 0: First aliases. 1: Second aliases etc. - + void setWhatsThis(QTableWidgetItem *item, int col); + void setToolTip(QTableWidgetItem *item, int col); + void addItem(int row, int col, QTableWidgetItem *item, QTableWidget *table); + Q_OBJECT private slots: diff --git a/muse2/muse/icons.cpp b/muse2/muse/icons.cpp index f2260b55..e3be2b26 100644 --- a/muse2/muse/icons.cpp +++ b/muse2/muse/icons.cpp @@ -467,8 +467,8 @@ void initIcons() startIcon = new MPIXMAP(start_xpm, "media-skip-backward"); fforwardIcon = new MPIXMAP(fforward_xpm, "media-seek-forward"); frewindIcon = new MPIXMAP(frewind_xpm, "media-seek-backward"); - dotIcon = new MPIXMAP(dot_xpm, NULL); - dothIcon = new MPIXMAP(doth_xpm, NULL); + dotIcon = new MPIXMAP(dot_xpm, "dialog-ok-apply"); + dothIcon = new MPIXMAP(doth_xpm, "draw-circle"); dot1Icon = new MPIXMAP(dot1_xpm, NULL); noteIcon = new MPIXMAP(note_xpm, NULL); note1Icon = new MPIXMAP(note1_xpm, NULL); diff --git a/muse2/muse/mixer/CMakeLists.txt b/muse2/muse/mixer/CMakeLists.txt index f2d4b012..979d57a5 100644 --- a/muse2/muse/mixer/CMakeLists.txt +++ b/muse2/muse/mixer/CMakeLists.txt @@ -19,8 +19,7 @@ #============================================================================= QT4_WRAP_CPP ( mixer_mocs amixer.h strip.h astrip.h mstrip.h meter.h rack.h panknob.h auxknob.h routedialog.h ) -# QT4_WRAP_UI ( mixer_uis routedialogbase.ui ) -QT4_WRAP_UI3 ( mixer_uis routedialogbase.ui ) +QT4_WRAP_UI ( mixer_uis routedialogbase.ui ) add_library ( mixer STATIC ${mixer_mocs} diff --git a/muse2/muse/mixer/routedialog.cpp b/muse2/muse/mixer/routedialog.cpp index e56a15ba..29ff8946 100644 --- a/muse2/muse/mixer/routedialog.cpp +++ b/muse2/muse/mixer/routedialog.cpp @@ -6,11 +6,11 @@ // (C) Copyright 2004 Werner Schweer (ws@seh.de) //========================================================= -#include <q3listbox.h> -#include <q3listview.h> -#include <qtoolbutton.h> -//Added by qt3to4: #include <QCloseEvent> +#include <QDialog> +#include <QListWidgetItem> +#include <QTreeWidgetItem> + #include "routedialog.h" #include "track.h" #include "song.h" @@ -22,11 +22,12 @@ //--------------------------------------------------------- RouteDialog::RouteDialog(QWidget* parent) - : RouteDialogBase(parent) + : QDialog(parent) { - connect(routeList, SIGNAL(selectionChanged()), SLOT(routeSelectionChanged())); - connect(newSrcList, SIGNAL(selectionChanged()), SLOT(srcSelectionChanged())); - connect(newDstList, SIGNAL(selectionChanged()), SLOT(dstSelectionChanged())); + setupUi(this); + connect(routeList, SIGNAL(itemSelectionChanged()), SLOT(routeSelectionChanged())); + connect(newSrcList, SIGNAL(itemSelectionChanged()), SLOT(srcSelectionChanged())); + connect(newDstList, SIGNAL(itemSelectionChanged()), SLOT(dstSelectionChanged())); connect(removeButton, SIGNAL(clicked()), SLOT(removeRoute())); connect(connectButton, SIGNAL(clicked()), SLOT(addRoute())); connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int))); @@ -56,24 +57,24 @@ void RouteDialog::routingChanged() AudioTrack* track = (AudioTrack*)(*i); if (track->type() == Track::AUDIO_INPUT) { for (int channel = 0; channel < track->channels(); ++channel) - newDstList->insertItem(Route(track, channel).name()); + newDstList->addItem(Route(track, channel).name()); const RouteList* rl = track->inRoutes(); for (ciRoute r = rl->begin(); r != rl->end(); ++r) { //Route dst(track->name(), true, r->channel); Route dst(track->name(), true, r->channel, Route::TRACK_ROUTE); - new Q3ListViewItem(routeList, r->name(), dst.name()); + new QTreeWidgetItem(routeList, QStringList() << r->name() << dst.name()); } } else if (track->type() != Track::AUDIO_AUX) - newDstList->insertItem(Route(track, -1).name()); + newDstList->addItem(Route(track, -1).name()); if (track->type() == Track::AUDIO_OUTPUT) { for (int channel = 0; channel < track->channels(); ++channel) { Route r(track, channel); - newSrcList->insertItem(r.name()); + newSrcList->addItem(r.name()); } } else - newSrcList->insertItem(Route(track, -1).name()); + newSrcList->addItem(Route(track, -1).name()); const RouteList* rl = track->outRoutes(); for (ciRoute r = rl->begin(); r != rl->end(); ++r) { @@ -82,16 +83,16 @@ void RouteDialog::routingChanged() Route s(src, false, r->channel); src = s.name(); } - new Q3ListViewItem(routeList, src, r->name()); + new QTreeWidgetItem(routeList, QStringList() << src << r->name()); } } if (!checkAudioDevice()) return; std::list<QString> sl = audioDevice->outputPorts(); for (std::list<QString>::iterator i = sl.begin(); i != sl.end(); ++i) - newSrcList->insertItem(*i); + newSrcList->addItem(*i); sl = audioDevice->inputPorts(); for (std::list<QString>::iterator i = sl.begin(); i != sl.end(); ++i) - newDstList->insertItem(*i); + newDstList->addItem(*i); routeSelectionChanged(); // init remove button srcSelectionChanged(); // init select button } @@ -113,7 +114,7 @@ void RouteDialog::songChanged(int v) void RouteDialog::routeSelectionChanged() { - Q3ListViewItem* item = routeList->selectedItem(); + QTreeWidgetItem* item = routeList->currentItem(); removeButton->setEnabled(item != 0); } @@ -123,7 +124,7 @@ void RouteDialog::routeSelectionChanged() void RouteDialog::removeRoute() { - Q3ListViewItem* item = routeList->selectedItem(); + QTreeWidgetItem* item = routeList->currentItem(); if (item == 0) return; audio->msgRemoveRoute(Route(item->text(0), false, -1), Route(item->text(1), true, -1)); @@ -138,14 +139,14 @@ void RouteDialog::removeRoute() void RouteDialog::addRoute() { - Q3ListBoxItem* srcItem = newSrcList->selectedItem(); - Q3ListBoxItem* dstItem = newDstList->selectedItem(); + QListWidgetItem* srcItem = newSrcList->currentItem(); + QListWidgetItem* dstItem = newDstList->currentItem(); if (srcItem == 0 || dstItem == 0) return; audio->msgAddRoute(Route(srcItem->text(), false, -1), Route(dstItem->text(), true, -1)); audio->msgUpdateSoloStates(); song->update(SC_SOLO); - new Q3ListViewItem(routeList, srcItem->text(), dstItem->text()); + new QTreeWidgetItem(routeList, QStringList() << srcItem->text() << dstItem->text()); } //--------------------------------------------------------- @@ -154,8 +155,8 @@ void RouteDialog::addRoute() void RouteDialog::srcSelectionChanged() { - Q3ListBoxItem* srcItem = newSrcList->selectedItem(); - Q3ListBoxItem* dstItem = newDstList->selectedItem(); + QListWidgetItem* srcItem = newSrcList->currentItem(); + QListWidgetItem* dstItem = newDstList->currentItem(); connectButton->setEnabled((srcItem != 0) && (dstItem != 0) && checkRoute(srcItem->text(), dstItem->text())); @@ -167,8 +168,8 @@ void RouteDialog::srcSelectionChanged() void RouteDialog::dstSelectionChanged() { - Q3ListBoxItem* dstItem = newDstList->selectedItem(); - Q3ListBoxItem* srcItem = newSrcList->selectedItem(); + QListWidgetItem* dstItem = newDstList->currentItem(); + QListWidgetItem* srcItem = newSrcList->currentItem(); connectButton->setEnabled((srcItem != 0) && (dstItem != 0) && checkRoute(srcItem->text(), dstItem->text())); diff --git a/muse2/muse/mixer/routedialog.h b/muse2/muse/mixer/routedialog.h index d819b2a1..39bbce2c 100644 --- a/muse2/muse/mixer/routedialog.h +++ b/muse2/muse/mixer/routedialog.h @@ -9,15 +9,16 @@ #ifndef __ROUTEDIALOG_H__ #define __ROUTEDIALOG_H__ -#include "routedialogbase.h" -//Added by qt3to4: -#include <QCloseEvent> +#include "ui_routedialogbase.h" + +class QCloseEvent; +class QDialog; //--------------------------------------------------------- // RouteDialog //--------------------------------------------------------- -class RouteDialog : public RouteDialogBase { +class RouteDialog : public QDialog, public Ui::RouteDialogBase { Q_OBJECT virtual void closeEvent(QCloseEvent*); @@ -35,7 +36,7 @@ class RouteDialog : public RouteDialogBase { void closed(); public: - RouteDialog(QWidget* parent); + RouteDialog(QWidget* parent=0); }; diff --git a/muse2/muse/mixer/routedialogbase.ui b/muse2/muse/mixer/routedialogbase.ui index 85c4f0d4..30087b9f 100644 --- a/muse2/muse/mixer/routedialogbase.ui +++ b/muse2/muse/mixer/routedialogbase.ui @@ -1,234 +1,175 @@ -<!DOCTYPE UI><UI version="3.2" stdsetdef="1"> -<class>RouteDialogBase</class> -<widget class="QDialog"> - <property name="name"> - <cstring>RouteDialogBase</cstring> - </property> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>316</width> - <height>383</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>7</vsizetype> +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>RouteDialogBase</class> + <widget class="QDialog" name="RouteDialogBase"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>316</width> + <height>383</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="windowTitle"> + <string>MusE: Routing</string> + </property> + <layout class="QVBoxLayout"> + <property name="spacing"> + <number>4</number> + </property> + <property name="margin"> + <number>4</number> + </property> + <item> + <widget class="QGroupBox" name="groupBox4"> + <property name="title"> + <string>Add Route</string> + </property> + <layout class="QVBoxLayout"> + <property name="spacing"> + <number>4</number> + </property> + <property name="margin"> + <number>4</number> + </property> + <item> + <layout class="QHBoxLayout"> + <item> + <widget class="QGroupBox" name="groupBox2"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> <horstretch>0</horstretch> <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="caption"> - <string>MusE: Routing</string> - </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> + </sizepolicy> + </property> + <property name="title"> + <string>Source:</string> + </property> + <layout class="QVBoxLayout"> + <property name="spacing"> + <number>0</number> + </property> + <property name="margin"> + <number>2</number> + </property> + <item> + <widget class="QListWidget" name="newSrcList"/> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox3"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>Destination:</string> + </property> + <layout class="QVBoxLayout"> + <property name="spacing"> + <number>0</number> + </property> + <property name="margin"> + <number>2</number> + </property> + <item> + <widget class="QListWidget" name="newDstList"/> + </item> + </layout> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QToolButton" name="connectButton"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>connect source to destination</string> + </property> + <property name="text"> + <string>Connect</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox1"> + <property name="title"> + <string>Current Routes</string> + </property> + <layout class="QVBoxLayout"> + <property name="spacing"> + <number>4</number> + </property> + <property name="margin"> + <number>4</number> + </property> + <item> + <widget class="QTreeWidget" name="routeList"> + <column> + <property name="text"> + <string>Source</string> + </property> + <property name="clickable"> + <bool>true</bool> + </property> + <property name="resizable"> + <bool>true</bool> + </property> + </column> + <column> + <property name="text"> + <string>Destination</string> + </property> + <property name="clickable"> + <bool>true</bool> + </property> + <property name="resizable"> + <bool>true</bool> + </property> + </column> + </widget> + </item> + <item> + <widget class="QToolButton" name="removeButton"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> </property> - <property name="margin"> - <number>4</number> + <property name="toolTip"> + <string>remove selected route</string> </property> - <property name="spacing"> - <number>4</number> + <property name="text"> + <string>Remove</string> </property> - <widget class="QGroupBox"> - <property name="name"> - <cstring>groupBox4</cstring> - </property> - <property name="title"> - <string>Add Route</string> - </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>4</number> - </property> - <property name="spacing"> - <number>4</number> - </property> - <widget class="QLayoutWidget"> - <property name="name"> - <cstring>layout1</cstring> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QGroupBox"> - <property name="name"> - <cstring>groupBox2</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>7</hsizetype> - <vsizetype>7</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="lineWidth"> - <number>0</number> - </property> - <property name="title"> - <string>Source:</string> - </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>2</number> - </property> - <property name="spacing"> - <number>0</number> - </property> - <widget class="QListBox"> - <property name="name"> - <cstring>newSrcList</cstring> - </property> - </widget> - </vbox> - </widget> - <widget class="QGroupBox"> - <property name="name"> - <cstring>groupBox3</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>7</hsizetype> - <vsizetype>7</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="lineWidth"> - <number>0</number> - </property> - <property name="title"> - <string>Destination:</string> - </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>2</number> - </property> - <property name="spacing"> - <number>0</number> - </property> - <widget class="QListBox"> - <property name="name"> - <cstring>newDstList</cstring> - </property> - </widget> - </vbox> - </widget> - </hbox> - </widget> - <widget class="QToolButton"> - <property name="name"> - <cstring>connectButton</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>4</hsizetype> - <vsizetype>1</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Connect</string> - </property> - <property name="toolTip" stdset="0"> - <string>connect source to destination</string> - </property> - </widget> - </vbox> - </widget> - <widget class="QGroupBox"> - <property name="name"> - <cstring>groupBox1</cstring> - </property> - <property name="lineWidth"> - <number>1</number> - </property> - <property name="title"> - <string>Current Routes</string> - </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>4</number> - </property> - <property name="spacing"> - <number>4</number> - </property> - <widget class="QListView"> - <column> - <property name="text"> - <string>Source</string> - </property> - <property name="clickable"> - <bool>true</bool> - </property> - <property name="resizable"> - <bool>true</bool> - </property> - </column> - <column> - <property name="text"> - <string>Destination</string> - </property> - <property name="clickable"> - <bool>true</bool> - </property> - <property name="resizable"> - <bool>true</bool> - </property> - </column> - <property name="name"> - <cstring>routeList</cstring> - </property> - <property name="selectionMode"> - <enum>Single</enum> - </property> - <property name="allColumnsShowFocus"> - <bool>true</bool> - </property> - <property name="resizeMode"> - <enum>AllColumns</enum> - </property> - </widget> - <widget class="QToolButton"> - <property name="name"> - <cstring>removeButton</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>4</hsizetype> - <vsizetype>1</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Remove</string> - </property> - <property name="toolTip" stdset="0"> - <string>remove selected route</string> - </property> - </widget> - </vbox> - </widget> - </vbox> -</widget> -<layoutdefaults spacing="6" margin="11"/> -</UI> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + <layoutdefault spacing="6" margin="11"/> + <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <resources/> + <connections/> +</ui> diff --git a/muse2/muse/widgets/CMakeLists.txt b/muse2/muse/widgets/CMakeLists.txt index 0a92ba5a..83fa0d6d 100644 --- a/muse2/muse/widgets/CMakeLists.txt +++ b/muse2/muse/widgets/CMakeLists.txt @@ -132,7 +132,7 @@ QT4_WRAP_CPP (widget_mocs didyouknow.h ) -QT4_WRAP_UI (UIC +QT4_WRAP_UI (widget_ui_headers aboutbox.ui appearancebase.ui cliplisteditorbase.ui @@ -142,9 +142,11 @@ QT4_WRAP_UI (UIC editnotedialogbase.ui editsysexdialogbase.ui fdialogbuttons.ui + gatetimebase.ui gensetbase.ui itransformbase.ui metronomebase.ui + midisync.ui mittransposebase.ui mixdowndialogbase.ui mtrackinfobase.ui @@ -158,12 +160,6 @@ QT4_WRAP_UI (UIC ) -#QT4_WRAP_UI (widget_ui_headers -QT4_WRAP_UI3 (widget_ui_headers - midisync.ui - gatetimebase.ui - ) - # add_custom_command(OUTPUT ui_midisync.h # COMMAND ${QT_UIC_EXECUTABLE} # ARGS -o ${CMAKE_CURRENT_BINARY_DIR}/ui_midisync.h ${CMAKE_CURRENT_SOURCE_DIR}/midisync.ui @@ -173,7 +169,6 @@ QT4_WRAP_UI3 (widget_ui_headers # ADD_FILE_DEPENDENCIES(moc_midisync.cxx ${CMAKE_CURRENT_BINARY_DIR}/ui_midisync.h) add_library ( widgets STATIC - ${UIC} ${widget_ui_headers} ${widget_mocs} utils.cpp diff --git a/muse2/muse/widgets/gatetime.cpp b/muse2/muse/widgets/gatetime.cpp index 412d4d4c..f1804c35 100644 --- a/muse2/muse/widgets/gatetime.cpp +++ b/muse2/muse/widgets/gatetime.cpp @@ -5,10 +5,8 @@ // (C) Copyright 2001 Werner Schweer (ws@seh.de) //========================================================= -#include <q3buttongroup.h> -#include <qspinbox.h> -//#include <qbutton.h> -#include <QtGui> +#include <QButtonGroup> +#include <QDialog> #include "gatetime.h" @@ -18,9 +16,16 @@ // GateTime //--------------------------------------------------------- -GateTime::GateTime(QWidget* parent, const char* name) - : GateTimeBase(parent, name, true) +GateTime::GateTime(QWidget* parent) + : QDialog(parent) { + setupUi(this); + rangeGroup = new QButtonGroup(rangeBox); + rangeGroup->addButton(allButton, 0); + rangeGroup->addButton(selButton, 1); + rangeGroup->addButton(loopButton, 2); + rangeGroup->addButton(sloopButton, 3); + rangeGroup->setExclusive(true); } //--------------------------------------------------------- @@ -29,10 +34,10 @@ GateTime::GateTime(QWidget* parent, const char* name) void GateTime::accept() { - _range = rangeGroup->id(rangeGroup->selected()); + _range = rangeGroup->checkedId(); _rateVal = rate->value(); _offsetVal = offset->value(); - GateTimeBase::accept(); + QDialog::accept(); } //--------------------------------------------------------- @@ -41,6 +46,6 @@ void GateTime::accept() void GateTime::setRange(int id) { - rangeGroup->setButton(id); + rangeGroup->button(id)->setChecked(true); } diff --git a/muse2/muse/widgets/gatetime.h b/muse2/muse/widgets/gatetime.h index c3e5b883..dcb1827c 100644 --- a/muse2/muse/widgets/gatetime.h +++ b/muse2/muse/widgets/gatetime.h @@ -8,24 +8,28 @@ #ifndef __GATETIME_H__ #define __GATETIME_H__ -#include "gatetimebase.h" +#include "ui_gatetimebase.h" + +class QButtonGroup; +class QDialog; //--------------------------------------------------------- // GateTime //--------------------------------------------------------- -class GateTime : public GateTimeBase { +class GateTime : public QDialog, public Ui::GateTimeBase { Q_OBJECT int _range; int _rateVal; int _offsetVal; + QButtonGroup *rangeGroup; protected slots: void accept(); public: - GateTime(QWidget* parent, const char* name = 0); + GateTime(QWidget* parent=0); void setRange(int id); int range() const { return _range; } int rateVal() const { return _rateVal; } diff --git a/muse2/muse/widgets/gatetimebase.ui b/muse2/muse/widgets/gatetimebase.ui index fe696076..bc6916dc 100644 --- a/muse2/muse/widgets/gatetimebase.ui +++ b/muse2/muse/widgets/gatetimebase.ui @@ -1,285 +1,214 @@ -<!DOCTYPE UI><UI> -<class>GateTimeBase</class> -<widget> - <class>QDialog</class> - <property stdset="1"> - <name>name</name> - <cstring>GateTimeBase</cstring> - </property> - <property stdset="1"> - <name>geometry</name> - <rect> - <x>0</x> - <y>0</y> - <width>275</width> - <height>266</height> - </rect> - </property> - <property stdset="1"> - <name>caption</name> - <string>MusE: Modify Gate Time</string> - </property> - <vbox> - <property stdset="1"> - <name>margin</name> - <number>11</number> +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>GateTimeBase</class> + <widget class="QDialog" name="GateTimeBase"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>275</width> + <height>316</height> + </rect> + </property> + <property name="windowTitle"> + <string>MusE: Modify Gate Time</string> + </property> + <layout class="QVBoxLayout"> + <property name="spacing"> + <number>6</number> + </property> + <property name="margin"> + <number>11</number> + </property> + <item> + <widget class="QGroupBox" name="rangeBox"> + <property name="title"> + <string>Range</string> + </property> + <layout class="QVBoxLayout"> + <property name="spacing"> + <number>6</number> + </property> + <property name="margin"> + <number>11</number> + </property> + <item> + <widget class="QRadioButton" name="allButton"> + <property name="text"> + <string>All Events</string> </property> - <property stdset="1"> - <name>spacing</name> - <number>6</number> + </widget> + </item> + <item> + <widget class="QRadioButton" name="selButton"> + <property name="text"> + <string>Selected Events</string> </property> - <widget> - <class>QButtonGroup</class> - <property stdset="1"> - <name>name</name> - <cstring>rangeGroup</cstring> - </property> - <property stdset="1"> - <name>title</name> - <string>Range</string> - </property> - <property stdset="1"> - <name>exclusive</name> - <bool>true</bool> - </property> - <vbox> - <property stdset="1"> - <name>margin</name> - <number>11</number> - </property> - <property stdset="1"> - <name>spacing</name> - <number>6</number> - </property> - <widget> - <class>QRadioButton</class> - <property stdset="1"> - <name>name</name> - <cstring>RadioButton5</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>All Events</string> - </property> - <property stdset="1"> - <name>buttonGroupId</name> - <number>0</number> - </property> - </widget> - <widget> - <class>QRadioButton</class> - <property stdset="1"> - <name>name</name> - <cstring>RadioButton6</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Selected Events</string> - </property> - <property stdset="1"> - <name>checked</name> - <bool>true</bool> - </property> - <property stdset="1"> - <name>buttonGroupId</name> - <number>1</number> - </property> - </widget> - <widget> - <class>QRadioButton</class> - <property stdset="1"> - <name>name</name> - <cstring>RadioButton7</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Looped Events</string> - </property> - <property stdset="1"> - <name>buttonGroupId</name> - <number>2</number> - </property> - </widget> - <widget> - <class>QRadioButton</class> - <property stdset="1"> - <name>name</name> - <cstring>RadioButton8</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Selected & Looped</string> - </property> - <property stdset="1"> - <name>buttonGroupId</name> - <number>3</number> - </property> - </widget> - </vbox> - </widget> - <widget> - <class>QGroupBox</class> - <property stdset="1"> - <name>name</name> - <cstring>GroupBox3</cstring> - </property> - <property stdset="1"> - <name>title</name> - <string>Values</string> - </property> - <grid> - <property stdset="1"> - <name>margin</name> - <number>11</number> - </property> - <property stdset="1"> - <name>spacing</name> - <number>6</number> - </property> - <widget row="0" column="0" > - <class>QLabel</class> - <property stdset="1"> - <name>name</name> - <cstring>TextLabel3</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Rate:</string> - </property> - </widget> - <widget row="1" column="0" > - <class>QLabel</class> - <property stdset="1"> - <name>name</name> - <cstring>TextLabel4</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Offset:</string> - </property> - </widget> - <widget row="0" column="1" > - <class>QSpinBox</class> - <property stdset="1"> - <name>name</name> - <cstring>rate</cstring> - </property> - <property stdset="1"> - <name>suffix</name> - <string>%</string> - </property> - <property stdset="1"> - <name>maxValue</name> - <number>200</number> - </property> - <property stdset="1"> - <name>value</name> - <number>100</number> - </property> - </widget> - <widget row="1" column="1" > - <class>QSpinBox</class> - <property stdset="1"> - <name>name</name> - <cstring>offset</cstring> - </property> - <property stdset="1"> - <name>maxValue</name> - <number>999</number> - </property> - <property stdset="1"> - <name>minValue</name> - <number>-999</number> - </property> - <property stdset="1"> - <name>lineStep</name> - <number>1</number> - </property> - </widget> - </grid> - </widget> - <widget> - <class>QLayoutWidget</class> - <property stdset="1"> - <name>name</name> - <cstring>Layout3</cstring> - </property> - <hbox> - <property stdset="1"> - <name>margin</name> - <number>0</number> - </property> - <property stdset="1"> - <name>spacing</name> - <number>6</number> - </property> - <spacer> - <property> - <name>name</name> - <cstring>Spacer1</cstring> - </property> - <property stdset="1"> - <name>orientation</name> - <enum>Horizontal</enum> - </property> - <property stdset="1"> - <name>sizeType</name> - <enum>Expanding</enum> - </property> - <property> - <name>sizeHint</name> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - </spacer> - <widget> - <class>QPushButton</class> - <property stdset="1"> - <name>name</name> - <cstring>okButton</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>OK</string> - </property> - <property stdset="1"> - <name>autoDefault</name> - <bool>false</bool> - </property> - <property stdset="1"> - <name>default</name> - <bool>true</bool> - </property> - </widget> - <widget> - <class>QPushButton</class> - <property stdset="1"> - <name>name</name> - <cstring>cancelButton</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Cancel</string> - </property> - </widget> - </hbox> - </widget> - </vbox> -</widget> -<connections> - <connection> - <sender>okButton</sender> - <signal>clicked()</signal> - <receiver>GateTimeBase</receiver> - <slot>accept()</slot> - </connection> - <connection> - <sender>cancelButton</sender> - <signal>clicked()</signal> - <receiver>GateTimeBase</receiver> - <slot>reject()</slot> - </connection> -</connections> -</UI> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="loopButton"> + <property name="text"> + <string>Looped Events</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="sloopButton"> + <property name="text"> + <string>Selected & Looped</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="GroupBox3"> + <property name="title"> + <string>Values</string> + </property> + <layout class="QGridLayout"> + <property name="margin"> + <number>11</number> + </property> + <property name="spacing"> + <number>6</number> + </property> + <item row="0" column="0"> + <widget class="QLabel" name="TextLabel3"> + <property name="text"> + <string>Rate:</string> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="TextLabel4"> + <property name="text"> + <string>Offset:</string> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QSpinBox" name="rate"> + <property name="suffix"> + <string>%</string> + </property> + <property name="maximum"> + <number>200</number> + </property> + <property name="value"> + <number>100</number> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QSpinBox" name="offset"> + <property name="minimum"> + <number>-999</number> + </property> + <property name="maximum"> + <number>999</number> + </property> + <property name="singleStep"> + <number>1</number> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <layout class="QHBoxLayout"> + <property name="spacing"> + <number>6</number> + </property> + <property name="margin"> + <number>0</number> + </property> + <item> + <spacer name="spacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="okButton"> + <property name="text"> + <string>OK</string> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + <property name="default"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="cancelButton"> + <property name="text"> + <string>Cancel</string> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <resources/> + <connections> + <connection> + <sender>okButton</sender> + <signal>clicked()</signal> + <receiver>GateTimeBase</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>20</x> + <y>20</y> + </hint> + <hint type="destinationlabel"> + <x>20</x> + <y>20</y> + </hint> + </hints> + </connection> + <connection> + <sender>cancelButton</sender> + <signal>clicked()</signal> + <receiver>GateTimeBase</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>20</x> + <y>20</y> + </hint> + <hint type="destinationlabel"> + <x>20</x> + <y>20</y> + </hint> + </hints> + </connection> + </connections> +</ui> diff --git a/muse2/muse/widgets/midisync.ui b/muse2/muse/widgets/midisync.ui index f9c9a816..1171555e 100644 --- a/muse2/muse/widgets/midisync.ui +++ b/muse2/muse/widgets/midisync.ui @@ -1,443 +1,410 @@ -<!DOCTYPE UI><UI version="3.2" stdsetdef="1"> -<class>MidiSyncConfigBase</class> -<comment>midi sync +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <author>werner schweer</author> + <comment>midi sync configuration dialog</comment> -<author>werner schweer</author> -<widget class="QDialog"> - <property name="name"> - <cstring>MidiSyncConfigBase</cstring> - </property> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>574</width> - <height>419</height> - </rect> - </property> - <property name="caption"> - <string>MusE: Midi Sync</string> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> + <class>MidiSyncConfigBase</class> + <widget class="QDialog" name="MidiSyncConfigBase"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>655</width> + <height>419</height> + </rect> + </property> + <property name="windowTitle"> + <string>MusE: Midi Sync</string> + </property> + <layout class="QGridLayout"> + <item row="2" column="0"> + <layout class="QHBoxLayout"> + <property name="spacing"> + <number>6</number> + </property> + <property name="margin"> + <number>0</number> + </property> + <item> + <spacer name="Spacer1_2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="applyButton"> + <property name="text"> + <string>Apply</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="okButton"> + <property name="text"> + <string>Ok</string> + </property> + <property name="default"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="cancelButton"> + <property name="text"> + <string>Cancel</string> + </property> + </widget> + </item> + </layout> + </item> + <item row="1" column="0"> + <widget class="QGroupBox" name="GroupBox13"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="title"> + <string>MTC</string> + </property> + <layout class="QVBoxLayout"> + <property name="spacing"> + <number>6</number> + </property> + <property name="margin"> + <number>11</number> + </property> + <item> + <layout class="QHBoxLayout"> + <item> + <widget class="QLabel" name="textLabel2"> + <property name="text"> + <string>Type:</string> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + </item> + <item> + <widget class="QComboBox" name="mtcSyncType"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <item> + <property name="text"> + <string>24</string> + </property> + </item> + <item> + <property name="text"> + <string>25</string> + </property> + </item> + <item> + <property name="text"> + <string>30D</string> + </property> + </item> + <item> + <property name="text"> + <string>30N</string> + </property> + </item> + </widget> + </item> + <item> + <spacer name="spacer4"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout"> + <item> + <widget class="QLabel" name="textLabel1"> + <property name="text"> + <string>Offset:</string> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="mtcOffH"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>hour</string> + </property> + <property name="maximum"> + <number>23</number> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="TextLabel2"> + <property name="text"> + <string>h</string> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="mtcOffM"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>minute</string> + </property> + <property name="maximum"> + <number>59</number> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="TextLabel3"> + <property name="text"> + <string>m</string> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="mtcOffS"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>second</string> + </property> + <property name="maximum"> + <number>59</number> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="TextLabel4"> + <property name="text"> + <string>s</string> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="mtcOffF"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>frame</string> + </property> + <property name="maximum"> + <number>30</number> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="TextLabel5"> + <property name="text"> + <string>f</string> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="mtcOffSf"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>subframe</string> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item row="0" column="0"> + <widget class="QGroupBox" name="syncGen"> + <property name="title"> + <string>Sync receiving and sending</string> + </property> + <layout class="QGridLayout"> + <item row="0" column="0" colspan="2"> + <widget class="QCheckBox" name="useJackTransportCheckbox"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="toolTip"> + <string>Send and receive Jack transport</string> </property> - <widget class="QLayoutWidget" row="2" column="0"> - <property name="name"> - <cstring>ApplyOk</cstring> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>0</number> - </property> - <property name="spacing"> - <number>6</number> - </property> - <spacer> - <property name="name"> - <cstring>Spacer1_2</cstring> - </property> - <property name="orientation"> - <enum>Horizontal</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="sizeHint"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - </spacer> - <widget class="QPushButton"> - <property name="name"> - <cstring>applyButton</cstring> - </property> - <property name="text"> - <string>Apply</string> - </property> - </widget> - <widget class="QPushButton"> - <property name="name"> - <cstring>okButton</cstring> - </property> - <property name="text"> - <string>Ok</string> - </property> - <property name="default"> - <bool>true</bool> - </property> - </widget> - <widget class="QPushButton"> - <property name="name"> - <cstring>cancelButton</cstring> - </property> - <property name="text"> - <string>Cancel</string> - </property> - </widget> - </hbox> - </widget> - <widget class="QGroupBox" row="1" column="0"> - <property name="name"> - <cstring>GroupBox13</cstring> - </property> - <property name="enabled"> - <bool>true</bool> - </property> - <property name="title"> - <string>MTC</string> - </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>11</number> - </property> - <property name="spacing"> - <number>6</number> - </property> - <widget class="QLayoutWidget"> - <property name="name"> - <cstring>layout7</cstring> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QLabel"> - <property name="name"> - <cstring>textLabel2</cstring> - </property> - <property name="text"> - <string>Type:</string> - </property> - </widget> - <widget class="QComboBox"> - <item> - <property name="text"> - <string>24</string> - </property> - </item> - <item> - <property name="text"> - <string>25</string> - </property> - </item> - <item> - <property name="text"> - <string>30D</string> - </property> - </item> - <item> - <property name="text"> - <string>30N</string> - </property> - </item> - <property name="name"> - <cstring>mtcSyncType</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>1</hsizetype> - <vsizetype>1</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - </widget> - <spacer> - <property name="name"> - <cstring>spacer4</cstring> - </property> - <property name="orientation"> - <enum>Horizontal</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="sizeHint"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </hbox> - </widget> - <widget class="QLayoutWidget"> - <property name="name"> - <cstring>layout5</cstring> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QLabel"> - <property name="name"> - <cstring>textLabel1</cstring> - </property> - <property name="text"> - <string>Offset:</string> - </property> - </widget> - <widget class="QSpinBox"> - <property name="name"> - <cstring>mtcOffH</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="maxValue"> - <number>23</number> - </property> - <property name="toolTip" stdset="0"> - <string>hour</string> - </property> - </widget> - <widget class="QLabel"> - <property name="name"> - <cstring>TextLabel2</cstring> - </property> - <property name="text"> - <string>h</string> - </property> - </widget> - <widget class="QSpinBox"> - <property name="name"> - <cstring>mtcOffM</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="maxValue"> - <number>59</number> - </property> - <property name="toolTip" stdset="0"> - <string>minute</string> - </property> - </widget> - <widget class="QLabel"> - <property name="name"> - <cstring>TextLabel3</cstring> - </property> - <property name="text"> - <string>m</string> - </property> - </widget> - <widget class="QSpinBox"> - <property name="name"> - <cstring>mtcOffS</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="maxValue"> - <number>59</number> - </property> - <property name="toolTip" stdset="0"> - <string>second</string> - </property> - </widget> - <widget class="QLabel"> - <property name="name"> - <cstring>TextLabel4</cstring> - </property> - <property name="text"> - <string>s</string> - </property> - </widget> - <widget class="QSpinBox"> - <property name="name"> - <cstring>mtcOffF</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="maxValue"> - <number>30</number> - </property> - <property name="toolTip" stdset="0"> - <string>frame</string> - </property> - </widget> - <widget class="QLabel"> - <property name="name"> - <cstring>TextLabel5</cstring> - </property> - <property name="text"> - <string>f</string> - </property> - </widget> - <widget class="QSpinBox"> - <property name="name"> - <cstring>mtcOffSf</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="toolTip" stdset="0"> - <string>subframe</string> - </property> - </widget> - </hbox> - </widget> - </vbox> - </widget> - <widget class="QGroupBox" row="0" column="0"> - <property name="name"> - <cstring>syncGen</cstring> - </property> - <property name="title"> - <string>Sync receiving and sending</string> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QCheckBox" row="0" column="0" rowspan="1" colspan="2"> - <property name="name"> - <cstring>useJackTransportCheckbox</cstring> - </property> - <property name="enabled"> - <bool>true</bool> - </property> - <property name="text"> - <string>Use Jack transport</string> - </property> - <property name="checked"> - <bool>false</bool> - </property> - <property name="toolTip" stdset="0"> - <string>Send and receive Jack transport</string> - </property> - <property name="whatsThis" stdset="0"> - <string>Send and receive Jack transport information, + <property name="whatsThis"> + <string>Send and receive Jack transport information, including stop, start and position.</string> - </property> - </widget> - <widget class="QCheckBox" row="1" column="0" rowspan="1" colspan="2"> - <property name="name"> - <cstring>jackTransportMasterCheckbox</cstring> - </property> - <property name="enabled"> - <bool>true</bool> - </property> - <property name="text"> - <string>Jack transport Timebase Master</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - <property name="toolTip" stdset="0"> - <string>Make MusE the Jack transport Timebase Master</string> - </property> - <property name="whatsThis" stdset="0"> - <string>Make MusE the Jack transport Timebase Master. + </property> + <property name="text"> + <string>Use Jack transport</string> + </property> + <property name="checked"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="1" column="0" colspan="2"> + <widget class="QCheckBox" name="jackTransportMasterCheckbox"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="toolTip"> + <string>Make MusE the Jack transport Timebase Master</string> + </property> + <property name="whatsThis"> + <string>Make MusE the Jack transport Timebase Master. Allows Jack to show time as MusE Bars, Beats, and Ticks. MusE will try to become master, but other Jack clients can also take over later. You can always click here again for Master.</string> - </property> - </widget> - <widget class="QCheckBox" row="2" column="0" rowspan="1" colspan="2"> - <property name="name"> - <cstring>extSyncCheckbox</cstring> - </property> - <property name="enabled"> - <bool>true</bool> - </property> - <property name="text"> - <string>Slave to external sync</string> - </property> - <property name="checked"> - <bool>false</bool> - </property> - <property name="toolTip" stdset="0"> - <string>Control MusE timing by external midi clock or MTC sync</string> - </property> - <property name="whatsThis" stdset="0"> - <string>When in slave mode, tempo is + </property> + <property name="text"> + <string>Jack transport Timebase Master</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="2" column="0" colspan="2"> + <widget class="QCheckBox" name="extSyncCheckbox"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="toolTip"> + <string>Control MusE timing by external midi clock or MTC sync</string> + </property> + <property name="whatsThis"> + <string>When in slave mode, tempo is controlled externally. MusE can sync to midi clock, or MTC quarter frame sync. Enabled inputs in the list will be in effect (RMC, RMMC, RMTC).</string> - </property> - </widget> - <widget class="QLayoutWidget" row="3" column="0"> - <property name="name"> - <cstring>syncDelayLayout</cstring> - </property> - <hbox> - <widget class="QSpinBox"> - <property name="name"> - <cstring>syncDelaySpinBox</cstring> - </property> - <property name="suffix"> - <string>ms</string> - </property> - <property name="maxValue"> - <number>60000</number> - </property> - <property name="minValue"> - <number>0</number> - </property> - <property name="lineStep"> - <number>1</number> - </property> - <property name="value"> - <number>1</number> - </property> - <property name="toolTip" stdset="0"> - <string>Send start to first clock delay</string> - </property> - <property name="whatsThis" stdset="0"> - <string>Allows 'slow sync' devices time + </property> + <property name="text"> + <string>Slave to external sync</string> + </property> + <property name="checked"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="3" column="0"> + <layout class="QHBoxLayout"> + <item> + <widget class="QSpinBox" name="syncDelaySpinBox"> + <property name="toolTip"> + <string>Send start to first clock delay</string> + </property> + <property name="whatsThis"> + <string>Allows 'slow sync' devices time to synchronize to MusE. This value is the delay from sending start to sending the first clock.</string> - </property> - </widget> - <widget class="QLabel"> - <property name="name"> - <cstring>syncDelayLabel</cstring> - </property> - <property name="text"> - <string>Send sync delay</string> - </property> - <property name="alignment"> - <set>AlignVCenter|AlignLeft</set> - </property> - </widget> - </hbox> - </widget> - <widget class="QListView" row="4" column="0"> - <property name="name"> - <cstring>devicesListView</cstring> - </property> - </widget> - </grid> - </widget> - </grid> -</widget> -<tabstops> - <tabstop>mtcOffH</tabstop> - <tabstop>mtcOffM</tabstop> - <tabstop>mtcOffS</tabstop> - <tabstop>mtcOffF</tabstop> - <tabstop>mtcOffSf</tabstop> - <tabstop>applyButton</tabstop> - <tabstop>okButton</tabstop> - <tabstop>cancelButton</tabstop> -</tabstops> -<slots> - <slot>mopslot()</slot> -</slots> -<layoutdefaults spacing="6" margin="11"/> -</UI> + </property> + <property name="suffix"> + <string>ms</string> + </property> + <property name="minimum"> + <number>0</number> + </property> + <property name="maximum"> + <number>60000</number> + </property> + <property name="singleStep"> + <number>1</number> + </property> + <property name="value"> + <number>1</number> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="syncDelayLabel"> + <property name="text"> + <string>Send sync delay</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="4" column="0"> + <widget class="QTreeWidget" name="devicesListView"> + <column> + <property name="text"> + <string notr="true">1</string> + </property> + </column> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + <layoutdefault spacing="6" margin="11"/> + <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <tabstops> + <tabstop>mtcOffH</tabstop> + <tabstop>mtcOffM</tabstop> + <tabstop>mtcOffS</tabstop> + <tabstop>mtcOffF</tabstop> + <tabstop>mtcOffSf</tabstop> + <tabstop>applyButton</tabstop> + <tabstop>okButton</tabstop> + <tabstop>cancelButton</tabstop> + </tabstops> + <resources/> + <connections/> +</ui> diff --git a/muse2/muse/widgets/midisyncimpl.cpp b/muse2/muse/widgets/midisyncimpl.cpp index e763c62f..c9e3801a 100644 --- a/muse2/muse/widgets/midisyncimpl.cpp +++ b/muse2/muse/widgets/midisyncimpl.cpp @@ -6,22 +6,9 @@ // (C) Copyright 1999/2000 Werner Schweer (ws@seh.de) //========================================================= -//#include "midisyncimpl.h" -//#include "sync.h" -//#include "globals.h" - -#include <qspinbox.h> -#include <qcombobox.h> -#include <qcheckbox.h> -#include <q3buttongroup.h> -#include <qpushbutton.h> -#include <qinputdialog.h> -//#include <qlistview.h> -#include <q3header.h> -#include <qtimer.h> -//#include <qwhatsthis.h> -#include <qmessagebox.h> -//Added by qt3to4: +#include <QStringList> +#include <QTreeWidgetItem> +#include <QInputDialog> #include <QCloseEvent> #include "app.h" @@ -43,120 +30,91 @@ enum { DEVCOL_NO = 0, DEVCOL_NAME, DEVCOL_IN, DEVCOL_TICKIN, DEVCOL_MRTIN, DEVCO //MidiSyncInfo tmpMidiSyncPorts[MIDI_PORTS]; //--------------------------------------------------------- -// MSyncHeaderTip::maybeTip +// MidiSyncConfig::setToolTips //--------------------------------------------------------- -void MSyncHeaderTip::maybeTip(const QPoint &pos) - { - Q3Header* w = (Q3Header*)_parent->parentWidget(); - int section = w->sectionAt(pos.x()); - if (section == -1) - return; - QRect r(w->sectionPos(section), 0, w->sectionSize(section), - w->height()); - QString p; - switch (section) { - case DEVCOL_NO: p = Q3Header::tr("Port Number"); break; - case DEVCOL_NAME: p = Q3Header::tr("Name of the midi device associated with" - " this port number"); break; - case DEVCOL_IN: p = Q3Header::tr("Midi clock input detected"); break; - case DEVCOL_TICKIN: p = Q3Header::tr("Midi tick input detected"); break; - case DEVCOL_MRTIN: p = Q3Header::tr("Midi real time input detected"); break; - case DEVCOL_MMCIN: p = Q3Header::tr("MMC input detected"); break; - case DEVCOL_MTCIN: p = Q3Header::tr("MTC input detected"); break; - case DEVCOL_MTCTYPE: p = Q3Header::tr("Detected SMPTE format"); break; - case DEVCOL_RID: p = Q3Header::tr("Receive id number. 127 = Global. Double click to edit."); break; - case DEVCOL_RCLK: p = Q3Header::tr("Accept midi clock input"); break; - case DEVCOL_RMRT: p = Q3Header::tr("Accept midi real time input"); break; - case DEVCOL_RMMC: p = Q3Header::tr("Accept MMC input"); break; - case DEVCOL_RMTC: p = Q3Header::tr("Accept MTC input"); break; - case DEVCOL_RREWSTART: p = Q3Header::tr("Receive start rewinds before playing"); break; - case DEVCOL_TID: p = Q3Header::tr("Transmit id number. 127 = Global. Double click to edit."); break; - case DEVCOL_TCLK: p = Q3Header::tr("Send midi clock output"); break; - case DEVCOL_TMRT: p = Q3Header::tr("Send midi realtime output"); break; - case DEVCOL_TMMC: p = Q3Header::tr("Send MMC output"); break; - case DEVCOL_TMTC: p = Q3Header::tr("Send MTC output"); break; - //case DEVCOL_TREWSTART: p = QHeader::tr("Send continue instead of start"); break; - default: return; - } - //tip(r, p); ddskrjo - } +void MidiSyncConfig::setToolTips(QTreeWidgetItem *item) +{ + item->setToolTip(DEVCOL_NO, tr("Port Number")); + item->setToolTip(DEVCOL_NAME, tr("Name of the midi device associated with" + " this port number")); + item->setToolTip(DEVCOL_IN, tr("Midi clock input detected")); + item->setToolTip(DEVCOL_TICKIN, tr("Midi tick input detected")); + item->setToolTip(DEVCOL_MRTIN, tr("Midi real time input detected")); + item->setToolTip(DEVCOL_MMCIN, tr("MMC input detected")); + item->setToolTip(DEVCOL_MTCIN, tr("MTC input detected")); + item->setToolTip(DEVCOL_MTCTYPE, tr("Detected SMPTE format")); + item->setToolTip(DEVCOL_RID, tr("Receive id number. 127 = Global. Double click to edit.")); + item->setToolTip(DEVCOL_RCLK, tr("Accept midi clock input")); + item->setToolTip(DEVCOL_RMRT, tr("Accept midi real time input")); + item->setToolTip(DEVCOL_RMMC, tr("Accept MMC input")); + item->setToolTip(DEVCOL_RMTC, tr("Accept MTC input")); + item->setToolTip(DEVCOL_RREWSTART, tr("Receive start rewinds before playing")); + item->setToolTip(DEVCOL_TID, tr("Transmit id number. 127 = Global. Double click to edit.")); + item->setToolTip(DEVCOL_TCLK, tr("Send midi clock output")); + item->setToolTip(DEVCOL_TMRT, tr("Send midi realtime output")); + item->setToolTip(DEVCOL_TMMC, tr("Send MMC output")); + item->setToolTip(DEVCOL_TMTC, tr("Send MTC output")); + //item->setToolTip(DEVCOL_TREWSTART, tr("Send continue instead of start")); +} //--------------------------------------------------------- -// MSyncWhatsThis::text +// MidiSyncConfig::setWhatsThis //--------------------------------------------------------- -QString MSyncWhatsThis::text(const QPoint& pos) +void MidiSyncConfig::setWhatsThis(QTreeWidgetItem *item) { - int n = header->cellAt(pos.x()); - if (n == -1) - return QString::null; - switch (header->mapToLogical(n)) { - case DEVCOL_NO: - return Q3Header::tr("Port Number"); - case DEVCOL_NAME: - return Q3Header::tr("Name of the midi device associated with this port number"); - case DEVCOL_IN: - return Q3Header::tr("Midi clock input detected.\n" - "Current port actually used is red.\nClick to force a port to be used."); - case DEVCOL_TICKIN: - return Q3Header::tr("Midi tick input detected"); - case DEVCOL_MRTIN: - return Q3Header::tr("Midi realtime input detected, including\n start/stop/continue, and song position."); - case DEVCOL_MMCIN: - return Q3Header::tr("MMC input detected, including stop/play/deferred play, and locate."); - //"Current port actually used is red. Click to force a port to be current."); - case DEVCOL_MTCIN: - return Q3Header::tr("MTC input detected, including forward quarter-frame sync and full-frame locate.\n" - "Current port actually used is red. Click to force a port to be current."); - case DEVCOL_MTCTYPE: - return Q3Header::tr("Detected SMPTE format: 24fps, 25fps, 30fps drop frame, or 30fps non-drop\n" - "Detects format of MTC quarter and full frame, and MMC locate."); - case DEVCOL_RID: - return Q3Header::tr("Receive id number. 127 = global receive all, even if not global."); - case DEVCOL_RCLK: - return Q3Header::tr("Accept midi clock input. Only one input is used for clock.\n" - "Auto-acquire: If two or more port realtime inputs are enabled,\n" - " the first clock detected is used, until clock is lost,\n" - " then another can take over. Best if each turns off its clock\n" - " at stop, so MusE can re-acquire the clock from another port.\n" - "Click on detect indicator to force another."); - case DEVCOL_RMRT: - return Q3Header::tr("Accept midi realtime input, including\n start/stop/continue, and song position.\n" - "Non-clock events (start,stop etc) are\n accepted by ALL enabled ports.\n" - "This means you may have several master\n devices connected, and muse will accept\n" - " input from them."); - case DEVCOL_RMMC: - return Q3Header::tr("Accept MMC input, including stop/play/deferred play, and locate."); - case DEVCOL_RMTC: - return Q3Header::tr("Accept MTC input, including forward quarter-frame sync and full-frame locate.\n" - "See 'rc' column for more help."); - case DEVCOL_RREWSTART: - return Q3Header::tr("When start is received, rewind before playing.\n" - "Note: It may be impossible to rewind fast\n" - " enough to synchronize with the external device."); - case DEVCOL_TID: - return Q3Header::tr("Transmit id number. 127 = global transmit to all."); - case DEVCOL_TCLK: - return Q3Header::tr("Send midi clock output. If 'Slave to External Sync' is chosen,\n" - " muse can re-transmit clock to any other chosen ports."); - case DEVCOL_TMRT: - return Q3Header::tr("Send midi realtime output, including start/stop/continue,\n" - " and song position. If 'Slave to external sync' is chosen,\n" - " muse can re-transmit midi realtime input messages to any\n" - " other chosen ports. This means you may have several slave\n" - " devices connected, and muse can re-send realtime messages\n" - " to any or all of them."); - case DEVCOL_TMMC: - return Q3Header::tr("Send MMC output"); - case DEVCOL_TMTC: - return Q3Header::tr("Send MTC output"); - //case DEVCOL_TREWSTART: - // return QHeader::tr("When transport is starting, send continue instead of start.\n"); - default: - break; - } - return QString::null; + item->setWhatsThis(DEVCOL_NO, tr("Port Number")); + item->setWhatsThis(DEVCOL_NAME, tr("Name of the midi device associated with this port number")); + item->setWhatsThis(DEVCOL_IN, tr("Midi clock input detected.\n" + "Current port actually used is red.\nClick to force a port to be used.")); + item->setWhatsThis(DEVCOL_TICKIN, tr("Midi tick input detected")); + item->setWhatsThis(DEVCOL_MRTIN, tr("Midi realtime input detected, including\n start/stop/continue, and song position.")); + item->setWhatsThis(DEVCOL_MMCIN, tr("MMC input detected, including stop/play/deferred play, and locate.")); + //"Current port actually used is red. Click to force a port to be current.")); + item->setWhatsThis(DEVCOL_MTCIN, tr("MTC input detected, including forward quarter-frame sync and full-frame locate.\n" + "Current port actually used is red. Click to force a port to be current.")); + item->setWhatsThis(DEVCOL_MTCTYPE, tr("Detected SMPTE format: 24fps, 25fps, 30fps drop frame, or 30fps non-drop\n" + "Detects format of MTC quarter and full frame, and MMC locate.")); + item->setWhatsThis(DEVCOL_RID, tr("Receive id number. 127 = global receive all, even if not global.")); + item->setWhatsThis(DEVCOL_RCLK, tr("Accept midi clock input. Only one input is used for clock.\n" + "Auto-acquire: If two or more port realtime inputs are enabled,\n" + " the first clock detected is used, until clock is lost,\n" + " then another can take over. Best if each turns off its clock\n" + " at stop, so MusE can re-acquire the clock from another port.\n" + "Click on detect indicator to force another.")); + item->setWhatsThis(DEVCOL_RMRT, tr("Accept midi realtime input, including\n start/stop/continue, and song position.\n" + "Non-clock events (start,stop etc) are\n accepted by ALL enabled ports.\n" + "This means you may have several master\n devices connected, and muse will accept\n" + " input from them.")); + item->setWhatsThis(DEVCOL_RMMC, tr("Accept MMC input, including stop/play/deferred play, and locate.")); + item->setWhatsThis(DEVCOL_RMTC, tr("Accept MTC input, including forward quarter-frame sync and full-frame locate.\n" + "See 'rc' column for more help.")); + item->setWhatsThis(DEVCOL_RREWSTART, tr("When start is received, rewind before playing.\n" + "Note: It may be impossible to rewind fast\n" + " enough to synchronize with the external device.")); + item->setWhatsThis(DEVCOL_TID, tr("Transmit id number. 127 = global transmit to all.")); + item->setWhatsThis(DEVCOL_TCLK, tr("Send midi clock output. If 'Slave to External Sync' is chosen,\n" + " muse can re-transmit clock to any other chosen ports.")); + item->setWhatsThis(DEVCOL_TMRT, tr("Send midi realtime output, including start/stop/continue,\n" + " and song position. If 'Slave to external sync' is chosen,\n" + " muse can re-transmit midi realtime input messages to any\n" + " other chosen ports. This means you may have several slave\n" + " devices connected, and muse can re-send realtime messages\n" + " to any or all of them.")); + item->setWhatsThis(DEVCOL_TMMC, tr("Send MMC output")); + item->setWhatsThis(DEVCOL_TMTC, tr("Send MTC output")); + // item->setWhatsThis(DEVCOL_TREWSTART, tr("When transport is starting, send continue instead of start.\n")); +} + +//--------------------------------------------------------- +// MidiSyncConfig::addDevice +//--------------------------------------------------------- + +void MidiSyncConfig::addDevice(QTreeWidgetItem *item, QTreeWidget *tree) +{ + setWhatsThis(item); + tree->addTopLevelItem(item); } /* @@ -235,10 +193,10 @@ void MidiSyncLViewItem::copyToSyncInfo(MidiSyncInfo &sp) // Midi Sync Config //--------------------------------------------------------- -MidiSyncConfig::MidiSyncConfig(QWidget* parent, const char* name) - : MidiSyncConfigBase(parent, name) +MidiSyncConfig::MidiSyncConfig(QWidget* parent) + : QDialog(parent) { - _synctooltip = 0; + setupUi(this); _dirty = false; applyButton->setEnabled(false); @@ -278,71 +236,34 @@ MidiSyncConfig::MidiSyncConfig(QWidget* parent, const char* name) - devicesListView->setSorting(-1); devicesListView->setAllColumnsShowFocus(true); - devicesListView->addColumn(tr("Port")); - devicesListView->addColumn(tr("Device Name"), 120); - devicesListView->addColumn(tr("c")); - devicesListView->addColumn(tr("k")); - devicesListView->addColumn(tr("r")); - devicesListView->addColumn(tr("m")); - devicesListView->addColumn(tr("t")); - devicesListView->addColumn(tr("type")); - devicesListView->addColumn(tr("rid")); // Receive - devicesListView->addColumn(tr("rc")); // Receive - devicesListView->addColumn(tr("rr")); // Receive - devicesListView->addColumn(tr("rm")); // Receive - devicesListView->addColumn(tr("rt")); // Receive - devicesListView->addColumn(tr("rw")); // Receive - devicesListView->addColumn(tr("tid")); // Transmit - devicesListView->addColumn(tr("tc")); // Transmit - devicesListView->addColumn(tr("tr")); // Transmit - devicesListView->addColumn(tr("tm")); // Transmit - devicesListView->addColumn(tr("tt")); // Transmit - //devicesListView->addColumn(tr("trs")); // Transmit + QStringList columnnames; + columnnames << tr("Port") + << tr("Device Name") + << tr("c") + << tr("k") + << tr("r") + << tr("m") + << tr("t") + << tr("type") + << tr("rid") // Receive + << tr("rc") // Receive + << tr("rr") // Receive + << tr("rm") // Receive + << tr("rt") // Receive + << tr("rw") // Receive + << tr("tid") // Transmit + << tr("tc") // Transmit + << tr("tr") // Transmit + << tr("tm") // Transmit + << tr("tt"); // Transmit + + devicesListView->setColumnCount(columnnames.size()); + devicesListView->setHeaderLabels(columnnames); + setWhatsThis(devicesListView->headerItem()); + setToolTips(devicesListView->headerItem()); devicesListView->setFocusPolicy(Qt::NoFocus); - devicesListView->setColumnAlignment(DEVCOL_NO, Qt::AlignHCenter); - devicesListView->setColumnAlignment(DEVCOL_IN, Qt::AlignCenter); - devicesListView->setColumnAlignment(DEVCOL_TICKIN, Qt::AlignCenter); - devicesListView->setColumnAlignment(DEVCOL_MRTIN, Qt::AlignCenter); - devicesListView->setColumnAlignment(DEVCOL_MMCIN, Qt::AlignCenter); - devicesListView->setColumnAlignment(DEVCOL_MTCIN, Qt::AlignCenter); - //devicesListView->setColumnAlignment(DEVCOL_MTCTYPE, AlignCenter); - //devicesListView->setColumnAlignment(DEVCOL_RID, AlignCenter); - devicesListView->setColumnAlignment(DEVCOL_RCLK, Qt::AlignCenter); - devicesListView->setColumnAlignment(DEVCOL_RMRT, Qt::AlignCenter); - devicesListView->setColumnAlignment(DEVCOL_RMMC, Qt::AlignCenter); - devicesListView->setColumnAlignment(DEVCOL_RMTC, Qt::AlignCenter); - devicesListView->setColumnAlignment(DEVCOL_RREWSTART, Qt::AlignCenter); - //devicesListView->setColumnAlignment(DEVCOL_TID, AlignCenter); - devicesListView->setColumnAlignment(DEVCOL_TCLK, Qt::AlignCenter); - devicesListView->setColumnAlignment(DEVCOL_TMRT, Qt::AlignCenter); - devicesListView->setColumnAlignment(DEVCOL_TMMC, Qt::AlignCenter); - devicesListView->setColumnAlignment(DEVCOL_TMTC, Qt::AlignCenter); - //devicesListView->setColumnAlignment(DEVCOL_TREWSTART, AlignCenter); - devicesListView->header()->setResizeEnabled(false, DEVCOL_NO); - devicesListView->header()->setResizeEnabled(false, DEVCOL_IN); - devicesListView->header()->setResizeEnabled(false, DEVCOL_TICKIN); - devicesListView->header()->setResizeEnabled(false, DEVCOL_MRTIN); - devicesListView->header()->setResizeEnabled(false, DEVCOL_MMCIN); - devicesListView->header()->setResizeEnabled(false, DEVCOL_MTCIN); - devicesListView->header()->setResizeEnabled(false, DEVCOL_RCLK); - devicesListView->header()->setResizeEnabled(false, DEVCOL_RMRT); - devicesListView->header()->setResizeEnabled(false, DEVCOL_RMMC); - devicesListView->header()->setResizeEnabled(false, DEVCOL_RMTC); - devicesListView->header()->setResizeEnabled(false, DEVCOL_RMTC); - devicesListView->header()->setResizeEnabled(false, DEVCOL_RREWSTART); - devicesListView->header()->setResizeEnabled(false, DEVCOL_TCLK); - devicesListView->header()->setResizeEnabled(false, DEVCOL_TMRT); - devicesListView->header()->setResizeEnabled(false, DEVCOL_TMMC); - //devicesListView->header()->setResizeEnabled(false, DEVCOL_TREWSTART); - //devicesListView->setResizeMode(QListView::LastColumn); - devicesListView->setResizeMode(Q3ListView::NoColumn); - - - new MSyncWhatsThis(devicesListView, devicesListView->header()); - _synctooltip = new MSyncHeaderTip(devicesListView->header()); //MSyncHeaderTip::add(devicesListView->header(), QString("Midi sync ports")); // updateSyncInfoLV(); @@ -351,10 +272,10 @@ MidiSyncConfig::MidiSyncConfig(QWidget* parent, const char* name) //connect(devicesListView, SIGNAL(pressed(QListViewItem*,const QPoint&,int)), // this, SLOT(dlvClicked(QListViewItem*,const QPoint&,int))); - connect(devicesListView, SIGNAL(mouseButtonClicked(int, Q3ListViewItem*,const QPoint&, int)), - this, SLOT(dlvClicked(int, Q3ListViewItem*,const QPoint&, int))); - connect(devicesListView, SIGNAL(doubleClicked(Q3ListViewItem*,const QPoint&,int)), - this, SLOT(dlvDoubleClicked(Q3ListViewItem*,const QPoint&,int))); + connect(devicesListView, SIGNAL(itemClicked(QTreeWidgetItem*, int)), + this, SLOT(dlvClicked(QTreeWidgetItem*, int))); + connect(devicesListView, SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)), + this, SLOT(dlvDoubleClicked(QTreeWidgetItem*, int))); //connect(devicesListView, SIGNAL(itemRenamed(QListViewItem*, int, const QString&)), // this, SLOT(renameOk(QListViewItem*, int, const QString&))); @@ -379,7 +300,6 @@ MidiSyncConfig::MidiSyncConfig(QWidget* parent, const char* name) MidiSyncConfig::~MidiSyncConfig() { - delete _synctooltip; } //--------------------------------------------------------- @@ -447,12 +367,11 @@ void MidiSyncConfig::songChanged(int flags) void MidiSyncConfig::heartBeat() { //inHeartBeat = true; - - MidiSyncLViewItem* lvi = (MidiSyncLViewItem*)devicesListView->firstChild(); - while(lvi) - { - int port = lvi->port(); - if(port >= 0 && port < MIDI_PORTS) + for (int i = MIDI_PORTS-1; i >= 0; --i) + { + MidiSyncLViewItem* lvi = (MidiSyncLViewItem*)devicesListView->topLevelItem(i); + int port = lvi->port(); + if(port >= 0 && port < MIDI_PORTS) { bool sdet = midiPorts[port].syncInfo().MCSyncDetect(); if(sdet) @@ -466,7 +385,7 @@ void MidiSyncConfig::heartBeat() lvi->_curDet = true; lvi->_inDet = false; - lvi->setPixmap(DEVCOL_IN, *record1_Icon); + lvi->setIcon(DEVCOL_IN, QIcon( *record1_Icon)); } } else @@ -477,7 +396,7 @@ void MidiSyncConfig::heartBeat() lvi->_inDet = true; lvi->_curDet = false; - lvi->setPixmap(DEVCOL_IN, *dotIcon); + lvi->setIcon(DEVCOL_IN, QIcon( *dotIcon)); } } else @@ -489,7 +408,7 @@ void MidiSyncConfig::heartBeat() lvi->_curDet = false; lvi->_inDet = false; - lvi->setPixmap(DEVCOL_IN, *dothIcon); + lvi->setIcon(DEVCOL_IN, QIcon( *dothIcon)); } } @@ -502,7 +421,7 @@ void MidiSyncConfig::heartBeat() //printf("MidiSyncConfig::heartBeat setting tick on icon\n"); lvi->_tickDet = true; - lvi->setPixmap(DEVCOL_TICKIN, *dotIcon); + lvi->setIcon(DEVCOL_TICKIN, QIcon( *dotIcon)); } } else @@ -513,7 +432,7 @@ void MidiSyncConfig::heartBeat() //printf("MidiSyncConfig::heartBeat setting tick off icon\n"); lvi->_tickDet = false; - lvi->setPixmap(DEVCOL_TICKIN, *dothIcon); + lvi->setIcon(DEVCOL_TICKIN, QIcon( *dothIcon)); } } @@ -526,7 +445,7 @@ void MidiSyncConfig::heartBeat() //printf("MidiSyncConfig::heartBeat setting MRT on icon\n"); lvi->_MRTDet = true; - lvi->setPixmap(DEVCOL_MRTIN, *dotIcon); + lvi->setIcon(DEVCOL_MRTIN, QIcon( *dotIcon)); } } else @@ -537,7 +456,7 @@ void MidiSyncConfig::heartBeat() //printf("MidiSyncConfig::heartBeat setting MRT off icon\n"); lvi->_MRTDet = false; - lvi->setPixmap(DEVCOL_MRTIN, *dothIcon); + lvi->setIcon(DEVCOL_MRTIN, QIcon( *dothIcon)); } } @@ -552,7 +471,7 @@ void MidiSyncConfig::heartBeat() //printf("MidiSyncConfig::heartBeat setting MMC on icon\n"); lvi->_MMCDet = true; - lvi->setPixmap(DEVCOL_MMCIN, *dotIcon); + lvi->setIcon(DEVCOL_MMCIN, QIcon( *dotIcon)); } // MMC locate command can contain SMPTE format type. Update now. if(!mtcdet && lvi->_recMTCtype != type) @@ -586,7 +505,7 @@ void MidiSyncConfig::heartBeat() //printf("MidiSyncConfig::heartBeat setting MMC off icon\n"); lvi->_MMCDet = false; - lvi->setPixmap(DEVCOL_MMCIN, *dothIcon); + lvi->setIcon(DEVCOL_MMCIN, QIcon( *dothIcon)); } } @@ -601,7 +520,7 @@ void MidiSyncConfig::heartBeat() lvi->_curMTCDet = true; lvi->_MTCDet = false; - lvi->setPixmap(DEVCOL_MTCIN, *record1_Icon); + lvi->setIcon(DEVCOL_MTCIN, QIcon( *record1_Icon)); } } else @@ -612,7 +531,7 @@ void MidiSyncConfig::heartBeat() lvi->_MTCDet = true; lvi->_curMTCDet = false; - lvi->setPixmap(DEVCOL_MTCIN, *dotIcon); + lvi->setIcon(DEVCOL_MTCIN, QIcon( *dotIcon)); } if(lvi->_recMTCtype != type) @@ -647,7 +566,7 @@ void MidiSyncConfig::heartBeat() lvi->_MTCDet = false; lvi->_curMTCDet = false; - lvi->setPixmap(DEVCOL_MTCIN, *dothIcon); + lvi->setIcon(DEVCOL_MTCIN, QIcon( *dothIcon)); } } } @@ -655,9 +574,8 @@ void MidiSyncConfig::heartBeat() //MidiDevice* dev = lvi->device(); //bool sdet = dev->syncInfo().MCSyncDetect(); //if(lvi->pixmap(DEVCOL_IN) != (sdet ? *dotIcon : *dothIcon)) - // lvi->setPixmap(DEVCOL_IN, sdet ? *dotIcon : *dothIcon); + // lvi->setIcon(DEVCOL_IN, QIcon( sdet ? *dotIcon : *dothIcon)); - lvi = (MidiSyncLViewItem*)lvi->nextSibling(); } //inHeartBeat = false; @@ -802,10 +720,13 @@ void MidiSyncConfig::apply() // acceptMC = acceptMCCheckbox->isChecked(); // acceptMMC = acceptMMCCheckbox->isChecked(); // acceptMTC = acceptMTCCheckbox->isChecked(); + - MidiSyncLViewItem* lvi = (MidiSyncLViewItem*)devicesListView->firstChild(); - while(lvi) + //MidiSyncLViewItem* lvi = (MidiSyncLViewItem*)devicesListView->firstChild(); + //while(lvi) + for (int i = MIDI_PORTS-1; i >= 0; --i) { + MidiSyncLViewItem* lvi = (MidiSyncLViewItem*)devicesListView->topLevelItem(i); //MidiDevice* dev = lvi->device(); // Does the device really exist? //if(midiDevices.find(dev) != midiDevices.end()) @@ -815,7 +736,6 @@ void MidiSyncConfig::apply() //midiPorts[port].syncInfo().copyParams(lvi->syncInfo()); lvi->copyToSyncInfo(midiPorts[port].syncInfo()); - lvi = (MidiSyncLViewItem*)lvi->nextSibling(); } //muse->changeConfig(true); // save settings @@ -835,7 +755,7 @@ void MidiSyncConfig::apply() void MidiSyncConfig::updateSyncInfoLV() { devicesListView->clear(); - for(int i = MIDI_PORTS-1; i >= 0; --i) + for(int i = 0; i < MIDI_PORTS; ++i) { MidiPort* port = &midiPorts[i]; MidiDevice* dev = port->device(); @@ -871,48 +791,48 @@ void MidiSyncConfig::updateSyncInfoLV() { lvi->_curDet = true; lvi->_inDet = false; - lvi->setPixmap(DEVCOL_IN, *record1_Icon); + lvi->setIcon(DEVCOL_IN, QIcon( *record1_Icon)); } else { lvi->_curDet = false; lvi->_inDet = true; - lvi->setPixmap(DEVCOL_IN, *dotIcon); + lvi->setIcon(DEVCOL_IN, QIcon( *dotIcon)); } } else { lvi->_curDet = false; lvi->_inDet = false; - lvi->setPixmap(DEVCOL_IN, *dothIcon); + lvi->setIcon(DEVCOL_IN, QIcon( *dothIcon)); } if(portsi.tickDetect()) { lvi->_tickDet = true; - lvi->setPixmap(DEVCOL_TICKIN, *dotIcon); + lvi->setIcon(DEVCOL_TICKIN, QIcon( *dotIcon)); } else { lvi->_tickDet = false; - lvi->setPixmap(DEVCOL_TICKIN, *dothIcon); + lvi->setIcon(DEVCOL_TICKIN, QIcon( *dothIcon)); } - + if(portsi.MRTDetect()) { lvi->_MRTDet = true; - lvi->setPixmap(DEVCOL_MRTIN, *dotIcon); + lvi->setIcon(DEVCOL_MRTIN, QIcon( *dotIcon)); } else { lvi->_MRTDet = false; - lvi->setPixmap(DEVCOL_MRTIN, *dothIcon); + lvi->setIcon(DEVCOL_MRTIN, QIcon( *dothIcon)); } - + if(portsi.MMCDetect()) { lvi->_MMCDet = true; - lvi->setPixmap(DEVCOL_MMCIN, *dotIcon); + lvi->setIcon(DEVCOL_MMCIN, QIcon( *dotIcon)); // MMC locate command can have SMPTE format bits... if(lvi->_recMTCtype != portsi.recMTCtype()) { @@ -939,22 +859,22 @@ void MidiSyncConfig::updateSyncInfoLV() else { lvi->_MMCDet = false; - lvi->setPixmap(DEVCOL_MMCIN, *dothIcon); + lvi->setIcon(DEVCOL_MMCIN, QIcon( *dothIcon)); } - + if(portsi.MTCDetect()) { if(i == curMidiSyncInPort) { lvi->_curMTCDet = true; lvi->_MTCDet = false; - lvi->setPixmap(DEVCOL_MTCIN, *record1_Icon); + lvi->setIcon(DEVCOL_MTCIN, QIcon( *record1_Icon)); } else { lvi->_curMTCDet = false; lvi->_MTCDet = true; - lvi->setPixmap(DEVCOL_MTCIN, *dotIcon); + lvi->setIcon(DEVCOL_MTCIN, QIcon( *dotIcon)); } if(lvi->_recMTCtype != portsi.recMTCtype()) @@ -983,36 +903,73 @@ void MidiSyncConfig::updateSyncInfoLV() { lvi->_curMTCDet = false; lvi->_MTCDet = false; - lvi->setPixmap(DEVCOL_MTCIN, *dothIcon); + lvi->setIcon(DEVCOL_MTCIN, QIcon( *dothIcon)); //lvi->setText(DEVCOL_MTCTYPE, "--"); } - + //lvi->setText(DEVCOL_RID, QString().setNum(si.idIn()) ); //lvi->setRenameEnabled(DEVCOL_RID, true); - //lvi->setPixmap(DEVCOL_RCLK, si.MCIn() ? *dotIcon : *dothIcon); - //lvi->setPixmap(DEVCOL_RMMC, si.MMCIn() ? *dotIcon : *dothIcon); - //lvi->setPixmap(DEVCOL_RMTC, si.MTCIn() ? *dotIcon : *dothIcon); + //lvi->setIcon(DEVCOL_RCLK, QIcon( si.MCIn() ? *dotIcon : *dothIcon)); + //lvi->setIcon(DEVCOL_RMMC, QIcon( si.MMCIn() ? *dotIcon : *dothIcon)); + //lvi->setIcon(DEVCOL_RMTC, QIcon( si.MTCIn() ? *dotIcon : *dothIcon)); lvi->setText(DEVCOL_RID, QString().setNum(lvi->_idIn) ); - lvi->setPixmap(DEVCOL_RCLK, lvi->_recMC ? *dotIcon : *dothIcon); - lvi->setPixmap(DEVCOL_RMRT, lvi->_recMRT ? *dotIcon : *dothIcon); - lvi->setPixmap(DEVCOL_RMMC, lvi->_recMMC ? *dotIcon : *dothIcon); - lvi->setPixmap(DEVCOL_RMTC, lvi->_recMTC ? *dotIcon : *dothIcon); - lvi->setPixmap(DEVCOL_RREWSTART, lvi->_recRewOnStart ? *dotIcon : *dothIcon); + lvi->setIcon(DEVCOL_RCLK, QIcon( lvi->_recMC ? *dotIcon : *dothIcon)); + lvi->setIcon(DEVCOL_RMRT, QIcon( lvi->_recMRT ? *dotIcon : *dothIcon)); + lvi->setIcon(DEVCOL_RMMC, QIcon( lvi->_recMMC ? *dotIcon : *dothIcon)); + lvi->setIcon(DEVCOL_RMTC, QIcon( lvi->_recMTC ? *dotIcon : *dothIcon)); + lvi->setIcon(DEVCOL_RREWSTART, QIcon( lvi->_recRewOnStart ? *dotIcon : *dothIcon)); //lvi->setText(DEVCOL_TID, QString().setNum(si.idOut()) ); //lvi->setRenameEnabled(DEVCOL_TID, true); - //lvi->setPixmap(DEVCOL_TCLK, si.MCOut() ? *dotIcon : *dothIcon); - //lvi->setPixmap(DEVCOL_TMMC, si.MMCOut() ? *dotIcon : *dothIcon); - //lvi->setPixmap(DEVCOL_TMTC, si.MTCOut() ? *dotIcon : *dothIcon); + //lvi->setIcon(DEVCOL_TCLK, QIcon( si.MCOut() ? *dotIcon : *dothIcon)); + //lvi->setIcon(DEVCOL_TMMC, QIcon( si.MMCOut() ? *dotIcon : *dothIcon)); + //lvi->setIcon(DEVCOL_TMTC, QIcon( si.MTCOut() ? *dotIcon : *dothIcon)); lvi->setText(DEVCOL_TID, QString().setNum(lvi->_idOut) ); - lvi->setPixmap(DEVCOL_TCLK, lvi->_sendMC ? *dotIcon : *dothIcon); - lvi->setPixmap(DEVCOL_TMRT, lvi->_sendMRT ? *dotIcon : *dothIcon); - lvi->setPixmap(DEVCOL_TMMC, lvi->_sendMMC ? *dotIcon : *dothIcon); - lvi->setPixmap(DEVCOL_TMTC, lvi->_sendMTC ? *dotIcon : *dothIcon); - //lvi->setPixmap(DEVCOL_TREWSTART, lvi->_sendContNotStart ? *dotIcon : *dothIcon); + lvi->setIcon(DEVCOL_TCLK, QIcon(lvi->_sendMC ? *dotIcon : *dothIcon)); + lvi->setIcon(DEVCOL_TMRT, QIcon(lvi->_sendMRT ? *dotIcon : *dothIcon)); + lvi->setIcon(DEVCOL_TMMC, QIcon(lvi->_sendMMC ? *dotIcon : *dothIcon)); + lvi->setIcon(DEVCOL_TMTC, QIcon(lvi->_sendMTC ? *dotIcon : *dothIcon)); + //lvi->setIcon(DEVCOL_TREWSTART, QIcon( lvi->_sendContNotStart ? *dotIcon : *dothIcon)); - devicesListView->insertItem(lvi); + addDevice(lvi, devicesListView); } + devicesListView->resizeColumnToContents(DEVCOL_NO); + //devicesListView->resizeColumnToContents(DEVCOL_NAME); + devicesListView->header()->resizeSection(DEVCOL_NAME, 120); + devicesListView->resizeColumnToContents(DEVCOL_IN); + devicesListView->resizeColumnToContents(DEVCOL_TICKIN); + devicesListView->resizeColumnToContents(DEVCOL_MRTIN); + devicesListView->resizeColumnToContents(DEVCOL_MMCIN); + devicesListView->resizeColumnToContents(DEVCOL_MTCIN); + devicesListView->resizeColumnToContents(DEVCOL_MTCTYPE); + devicesListView->resizeColumnToContents(DEVCOL_RID); + devicesListView->resizeColumnToContents(DEVCOL_RCLK); + devicesListView->resizeColumnToContents(DEVCOL_RMRT); + devicesListView->resizeColumnToContents(DEVCOL_RMMC); + devicesListView->resizeColumnToContents(DEVCOL_RMTC); + devicesListView->resizeColumnToContents(DEVCOL_RREWSTART); + devicesListView->resizeColumnToContents(DEVCOL_TID); + devicesListView->resizeColumnToContents(DEVCOL_TCLK); + devicesListView->resizeColumnToContents(DEVCOL_TMRT); + devicesListView->resizeColumnToContents(DEVCOL_TMMC); + devicesListView->resizeColumnToContents(DEVCOL_TMTC); + + devicesListView->header()->setResizeMode(DEVCOL_NO, QHeaderView::Fixed); + devicesListView->header()->setResizeMode(DEVCOL_IN, QHeaderView::Fixed); + devicesListView->header()->setResizeMode(DEVCOL_TICKIN, QHeaderView::Fixed); + devicesListView->header()->setResizeMode(DEVCOL_MRTIN, QHeaderView::Fixed); + devicesListView->header()->setResizeMode(DEVCOL_MMCIN, QHeaderView::Fixed); + devicesListView->header()->setResizeMode(DEVCOL_MTCIN, QHeaderView::Fixed); + devicesListView->header()->setResizeMode(DEVCOL_RCLK, QHeaderView::Fixed); + devicesListView->header()->setResizeMode(DEVCOL_RMRT, QHeaderView::Fixed); + devicesListView->header()->setResizeMode(DEVCOL_RMMC, QHeaderView::Fixed); + devicesListView->header()->setResizeMode(DEVCOL_RMTC, QHeaderView::Fixed); + devicesListView->header()->setResizeMode(DEVCOL_RMTC, QHeaderView::Fixed); + devicesListView->header()->setResizeMode(DEVCOL_RREWSTART, QHeaderView::Fixed); + devicesListView->header()->setResizeMode(DEVCOL_TCLK, QHeaderView::Fixed); + devicesListView->header()->setResizeMode(DEVCOL_TMRT, QHeaderView::Fixed); + devicesListView->header()->setResizeMode(DEVCOL_TMMC, QHeaderView::Fixed); + /* for(iMidiDevice id = midiDevices.begin(); id != midiDevices.end(); ++id) @@ -1030,22 +987,21 @@ void MidiSyncConfig::updateSyncInfoLV() lvi->setText(DEVCOL_NAME, dev->name()); - lvi->setPixmap(DEVCOL_IN, si.MCSyncDetect() ? *dotIcon : *dothIcon); + lvi->setIcon(DEVCOL_IN, QIcon( si.MCSyncDetect() ? *dotIcon : *dothIcon)); lvi->setText(DEVCOL_RID, QString().setNum(si.idIn()) ); - lvi->setPixmap(DEVCOL_RCLK, si.MCIn() ? *dotIcon : *dothIcon); - lvi->setPixmap(DEVCOL_RMMC, si.MMCIn() ? *dotIcon : *dothIcon); - lvi->setPixmap(DEVCOL_RMTC, si.MTCIn() ? *dotIcon : *dothIcon); + lvi->setIcon(DEVCOL_RCLK, QIcon( si.MCIn() ? *dotIcon : *dothIcon)); + lvi->setIcon(DEVCOL_RMMC, QIcon( si.MMCIn() ? *dotIcon : *dothIcon)); + lvi->setIcon(DEVCOL_RMTC, QIcon( si.MTCIn() ? *dotIcon : *dothIcon)); lvi->setText(DEVCOL_TID, QString().setNum(si.idOut()) ); - lvi->setPixmap(DEVCOL_TCLK, si.MCOut() ? *dotIcon : *dothIcon); - lvi->setPixmap(DEVCOL_TMMC, si.MMCOut() ? *dotIcon : *dothIcon); - lvi->setPixmap(DEVCOL_TMTC, si.MTCOut() ? *dotIcon : *dothIcon); + lvi->setIcon(DEVCOL_TCLK, QIcon( si.MCOut() ? *dotIcon : *dothIcon)); + lvi->setIcon(DEVCOL_TMMC, QIcon( si.MMCOut() ? *dotIcon : *dothIcon)); + lvi->setIcon(DEVCOL_TMTC, QIcon( si.MTCOut() ? *dotIcon : *dothIcon)); devicesListView->insertItem(lvi); } */ - } @@ -1054,7 +1010,7 @@ void MidiSyncConfig::updateSyncInfoLV() //--------------------------------------------------------- //void MidiSyncConfig::dlvClicked(QListViewItem* item, const QPoint&, int col) -void MidiSyncConfig::dlvClicked(int /*button*/, Q3ListViewItem* item, const QPoint&, int col) +void MidiSyncConfig::dlvClicked(QTreeWidgetItem* item, int col) { if (item == 0) return; @@ -1093,12 +1049,12 @@ void MidiSyncConfig::dlvClicked(int /*button*/, Q3ListViewItem* item, const QPoi if(lvi->_recMC && midiPorts[no].syncInfo().MCSyncDetect()) { curMidiSyncInPort = no; - lvi->setPixmap(DEVCOL_IN, *record1_Icon); + lvi->setIcon(DEVCOL_IN, QIcon( *record1_Icon)); } if(lvi->_recMTC && midiPorts[no].syncInfo().MTCDetect()) { curMidiSyncInPort = no; - lvi->setPixmap(DEVCOL_MTCIN, *record1_Icon); + lvi->setIcon(DEVCOL_MTCIN, QIcon( *record1_Icon)); } } break; @@ -1117,12 +1073,12 @@ void MidiSyncConfig::dlvClicked(int /*button*/, Q3ListViewItem* item, const QPoi if(lvi->_recMTC && midiPorts[no].syncInfo().MTCDetect()) { curMidiSyncInPort = no; - lvi->setPixmap(DEVCOL_MTCIN, *record1_Icon); + lvi->setIcon(DEVCOL_MTCIN, QIcon( *record1_Icon)); } if(lvi->_recMC && midiPorts[no].syncInfo().MCSyncDetect()) { curMidiSyncInPort = no; - lvi->setPixmap(DEVCOL_IN, *record1_Icon); + lvi->setIcon(DEVCOL_IN, QIcon( *record1_Icon)); } } break; @@ -1132,66 +1088,66 @@ void MidiSyncConfig::dlvClicked(int /*button*/, Q3ListViewItem* item, const QPoi break; case DEVCOL_RCLK: //si.setMCIn(si.MCIn() ? false : true); - //lvi->setPixmap(DEVCOL_RCLK, si.MCIn() ? *dotIcon : *dothIcon); + //lvi->setIcon(DEVCOL_RCLK, QIcon( si.MCIn() ? *dotIcon : *dothIcon)); lvi->_recMC = (lvi->_recMC ? false : true); - lvi->setPixmap(DEVCOL_RCLK, lvi->_recMC ? *dotIcon : *dothIcon); + lvi->setIcon(DEVCOL_RCLK, QIcon( lvi->_recMC ? *dotIcon : *dothIcon)); setDirty(); break; case DEVCOL_RMRT: lvi->_recMRT = (lvi->_recMRT ? false : true); - lvi->setPixmap(DEVCOL_RMRT, lvi->_recMRT ? *dotIcon : *dothIcon); + lvi->setIcon(DEVCOL_RMRT, QIcon( lvi->_recMRT ? *dotIcon : *dothIcon)); setDirty(); break; case DEVCOL_RMMC: //si.setMMCIn(si.MMCIn() ? false : true); - //lvi->setPixmap(DEVCOL_RMMC, si.MMCIn() ? *dotIcon : *dothIcon); + //lvi->setIcon(DEVCOL_RMMC, QIcon( si.MMCIn() ? *dotIcon : *dothIcon)); lvi->_recMMC = (lvi->_recMMC ? false : true); - lvi->setPixmap(DEVCOL_RMMC, lvi->_recMMC ? *dotIcon : *dothIcon); + lvi->setIcon(DEVCOL_RMMC, QIcon( lvi->_recMMC ? *dotIcon : *dothIcon)); setDirty(); break; case DEVCOL_RMTC: //si.setMTCIn(si.MTCIn() ? false : true); - //lvi->setPixmap(DEVCOL_RMTC, si.MTCIn() ? *dotIcon : *dothIcon); + //lvi->setIcon(DEVCOL_RMTC, QIcon( si.MTCIn() ? *dotIcon : *dothIcon)); lvi->_recMTC = (lvi->_recMTC ? false : true); - lvi->setPixmap(DEVCOL_RMTC, lvi->_recMTC ? *dotIcon : *dothIcon); + lvi->setIcon(DEVCOL_RMTC, QIcon( lvi->_recMTC ? *dotIcon : *dothIcon)); setDirty(); break; case DEVCOL_RREWSTART: lvi->_recRewOnStart = (lvi->_recRewOnStart ? false : true); - lvi->setPixmap(DEVCOL_RREWSTART, lvi->_recRewOnStart ? *dotIcon : *dothIcon); + lvi->setIcon(DEVCOL_RREWSTART, QIcon( lvi->_recRewOnStart ? *dotIcon : *dothIcon)); setDirty(); break; case DEVCOL_TID: break; case DEVCOL_TCLK: //si.setMCOut(si.MCOut() ? false : true); - //lvi->setPixmap(DEVCOL_TCLK, si.MCOut() ? *dotIcon : *dothIcon); + //lvi->setIcon(DEVCOL_TCLK, QIcon( si.MCOut() ? *dotIcon : *dothIcon)); lvi->_sendMC = (lvi->_sendMC ? false : true); - lvi->setPixmap(DEVCOL_TCLK, lvi->_sendMC ? *dotIcon : *dothIcon); + lvi->setIcon(DEVCOL_TCLK, QIcon( lvi->_sendMC ? *dotIcon : *dothIcon)); setDirty(); break; case DEVCOL_TMRT: lvi->_sendMRT = (lvi->_sendMRT ? false : true); - lvi->setPixmap(DEVCOL_TMRT, lvi->_sendMRT ? *dotIcon : *dothIcon); + lvi->setIcon(DEVCOL_TMRT, QIcon( lvi->_sendMRT ? *dotIcon : *dothIcon)); setDirty(); break; case DEVCOL_TMMC: //si.setMMCOut(si.MMCOut() ? false : true); - //lvi->setPixmap(DEVCOL_TMMC, si.MMCOut() ? *dotIcon : *dothIcon); + //lvi->setIcon(DEVCOL_TMMC, QIcon( si.MMCOut() ? *dotIcon : *dothIcon)); lvi->_sendMMC = (lvi->_sendMMC ? false : true); - lvi->setPixmap(DEVCOL_TMMC, lvi->_sendMMC ? *dotIcon : *dothIcon); + lvi->setIcon(DEVCOL_TMMC, QIcon( lvi->_sendMMC ? *dotIcon : *dothIcon)); setDirty(); break; case DEVCOL_TMTC: //si.setMTCOut(si.MTCOut() ? false : true); - //lvi->setPixmap(DEVCOL_TMTC, si.MTCOut() ? *dotIcon : *dothIcon); + //lvi->setIcon(DEVCOL_TMTC, QIcon( si.MTCOut() ? *dotIcon : *dothIcon)); lvi->_sendMTC = (lvi->_sendMTC ? false : true); - lvi->setPixmap(DEVCOL_TMTC, lvi->_sendMTC ? *dotIcon : *dothIcon); + lvi->setIcon(DEVCOL_TMTC, QIcon( lvi->_sendMTC ? *dotIcon : *dothIcon)); setDirty(); break; //case DEVCOL_TREWSTART: // lvi->_sendContNotStart = (lvi->_sendContNotStart ? false : true); - // lvi->setPixmap(DEVCOL_TREWSTART, lvi->_sendContNotStart ? *dotIcon : *dothIcon); + // lvi->setIcon(DEVCOL_TREWSTART, QIcon( lvi->_sendContNotStart ? *dotIcon : *dothIcon)); // setDirty(); // break; } @@ -1202,7 +1158,7 @@ void MidiSyncConfig::dlvClicked(int /*button*/, Q3ListViewItem* item, const QPoi // dlvDoubleClicked //--------------------------------------------------------- -void MidiSyncConfig::dlvDoubleClicked(Q3ListViewItem* item, const QPoint&, int col) +void MidiSyncConfig::dlvDoubleClicked(QTreeWidgetItem* item, int col) { if(!item) return; diff --git a/muse2/muse/widgets/midisyncimpl.h b/muse2/muse/widgets/midisyncimpl.h index a804e85f..3eb33451 100644 --- a/muse2/muse/widgets/midisyncimpl.h +++ b/muse2/muse/widgets/midisyncimpl.h @@ -9,51 +9,18 @@ #ifndef __MIDISYNCIMPL_H__ #define __MIDISYNCIMPL_H__ -#include <q3whatsthis.h> -#include <q3listview.h> -#include <qtooltip.h> -//Added by qt3to4: -#include <QCloseEvent> -//#include <qheader.h> -#include "midisync.h" +#include "ui_midisync.h" #include "sync.h" -//class QWhatsThis; -//class QListView; -//class QListViewItem; -class Q3Header; -//class MidiDevice; +class QCloseEvent; +class QDialog; +class QTreeWidgetItem; //---------------------------------------------------------- -// MSyncHeaderTip +// MidiSyncLViewItem //---------------------------------------------------------- -class MSyncHeaderTip /*: public QToolTip ddskrjo*/ { - QWidget *_parent; - public: - MSyncHeaderTip(QWidget * parent) : _parent(parent) {} // ddskrjo - virtual ~MSyncHeaderTip() {} - protected: - void maybeTip(const QPoint &); - }; - -//--------------------------------------------------------- -// MSyncWhatsThis -//--------------------------------------------------------- - -class MSyncWhatsThis : public Q3WhatsThis { - Q3Header* header; - - protected: - QString text(const QPoint&); - - public: - MSyncWhatsThis(QWidget* parent, Q3Header* h) : Q3WhatsThis(parent) { - header = h; - } - }; - -class MidiSyncLViewItem : public Q3ListViewItem +class MidiSyncLViewItem : public QTreeWidgetItem { //MidiSyncInfo _syncInfo; //MidiDevice* _device; @@ -63,8 +30,8 @@ class MidiSyncLViewItem : public Q3ListViewItem //int _port; public: - MidiSyncLViewItem(Q3ListView* parent) - : Q3ListViewItem(parent) { _port = -1; _inDet = _curDet = _tickDet = false; } + MidiSyncLViewItem(QTreeWidget* parent) + : QTreeWidgetItem(parent) { _port = -1; _inDet = _curDet = _tickDet = false; } //: QListViewItem(parent) { _device = 0; } //MidiSyncLViewItem(QListView* parent, QListViewItem* after) @@ -112,16 +79,18 @@ class MidiSyncLViewItem : public Q3ListViewItem // MSConfig //--------------------------------------------------------- -class MidiSyncConfig : public MidiSyncConfigBase { +class MidiSyncConfig : public QDialog, public Ui::MidiSyncConfigBase { Q_OBJECT - MSyncHeaderTip* _synctooltip; bool inHeartBeat; bool _dirty; void updateSyncInfoLV(); void closeEvent(QCloseEvent*); - + void setToolTips(QTreeWidgetItem *item); + void setWhatsThis(QTreeWidgetItem *item); + void addDevice(QTreeWidgetItem *item, QTreeWidget *tree); + private slots: void heartBeat(); void syncChanged(); @@ -130,8 +99,8 @@ class MidiSyncConfig : public MidiSyncConfigBase { void cancel(); void apply(); //void dlvClicked(QListViewItem*, const QPoint&, int); - void dlvClicked(int, Q3ListViewItem*, const QPoint&, int); - void dlvDoubleClicked(Q3ListViewItem*, const QPoint&, int); + void dlvClicked(QTreeWidgetItem*, int); + void dlvDoubleClicked(QTreeWidgetItem*, int); //void renameOk(QListViewItem*, int, const QString&); void songChanged(int); @@ -139,7 +108,7 @@ class MidiSyncConfig : public MidiSyncConfigBase { // void deleted(unsigned long); public: - MidiSyncConfig(QWidget* parent=0, const char* name=0); + MidiSyncConfig(QWidget* parent=0); //MidiSyncConfig(); ~MidiSyncConfig(); void show(); |