summaryrefslogtreecommitdiff
path: root/muse2/muse/confmport.cpp
diff options
context:
space:
mode:
authorOrcan Ogetbil <oget.fedora@gmail.com>2010-11-25 01:09:48 +0000
committerOrcan Ogetbil <oget.fedora@gmail.com>2010-11-25 01:09:48 +0000
commit8d05535f533605d68931d1d0d8644377c1687920 (patch)
treef0d6648195102166d2039a35d11a714a00a0d24c /muse2/muse/confmport.cpp
parent443dde76876b66cb2e68d4f3ea65148a908f3cc2 (diff)
started porting the widget to Qt4
Diffstat (limited to 'muse2/muse/confmport.cpp')
-rw-r--r--muse2/muse/confmport.cpp185
1 files changed, 113 insertions, 72 deletions
diff --git a/muse2/muse/confmport.cpp b/muse2/muse/confmport.cpp
index 4801e250..a2fc8298 100644
--- a/muse2/muse/confmport.cpp
+++ b/muse2/muse/confmport.cpp
@@ -64,8 +64,10 @@ enum { DEVCOL_NO = 0, DEVCOL_GUI, DEVCOL_REC, DEVCOL_PLAY, DEVCOL_INSTR, DEVCOL_
// mdevViewItemRenamed
//---------------------------------------------------------
-void MPConfig::mdevViewItemRenamed(Q3ListViewItem* item, int col, const QString& s)
+void MPConfig::mdevViewItemRenamed(QTableWidgetItem* item)
{
+ int col = item->column();
+ QString s = item->text();
//printf("MPConfig::mdevViewItemRenamed col:%d txt:%s\n", col, s.latin1());
if(item == 0)
return;
@@ -73,7 +75,7 @@ void MPConfig::mdevViewItemRenamed(Q3ListViewItem* item, int col, const QString&
{
case DEVCOL_NAME:
{
- QString id = item->text(DEVCOL_NO);
+ QString id = item->tableWidget()->item(item->row(), DEVCOL_NO)->text();
int no = atoi(id.latin1()) - 1;
if(no < 0 || no >= MIDI_PORTS)
return;
@@ -102,7 +104,7 @@ void MPConfig::mdevViewItemRenamed(Q3ListViewItem* item, int col, const QString&
}
break;
default:
- printf("MPConfig::mdevViewItemRenamed unknown column clicked col:%d txt:%s\n", col, s.latin1());
+ //printf("MPConfig::mdevViewItemRenamed unknown column clicked col:%d txt:%s\n", col, s.latin1());
break;
}
}
@@ -111,11 +113,11 @@ void MPConfig::mdevViewItemRenamed(Q3ListViewItem* item, int col, const QString&
// rbClicked
//---------------------------------------------------------
-void MPConfig::rbClicked(Q3ListViewItem* item, const QPoint& cpt, int col)
+void MPConfig::rbClicked(QTableWidgetItem* item)
{
if (item == 0)
return;
- QString id = item->text(DEVCOL_NO);
+ QString id = item->tableWidget()->item(item->row(), DEVCOL_NO)->text();
int no = atoi(id.latin1()) - 1;
if (no < 0 || no >= MIDI_PORTS)
return;
@@ -125,13 +127,14 @@ void MPConfig::rbClicked(Q3ListViewItem* item, const QPoint& cpt, int col)
MidiDevice* dev = port->device();
int rwFlags = dev ? dev->rwFlags() : 0;
int openFlags = dev ? dev->openFlags() : 0;
- Q3ListView* listView = item->listView();
+ QTableWidget* listView = item->tableWidget();
//printf("MPConfig::rbClicked cpt x:%d y:%d\n", cpt.x(), cpt.y());
//printf("MPConfig::rbClicked new cpt x:%d y:%d\n", cpt.x(), cpt.y());
//printf("MPConfig::rbClicked new mapped cpt x:%d y:%d\n", cpt.x(), cpt.y());
- QPoint ppt = listView->itemRect(item).bottomLeft();
+ QPoint ppt = listView->visualItemRect(item).bottomLeft();
//printf("MPConfig::rbClicked ppt x:%d y:%d\n", ppt.x(), ppt.y());
- ppt += QPoint(listView->header()->sectionPos(col), listView->header()->height());
+ int col = item->column();
+ ppt += QPoint(listView->horizontalHeader()->sectionPosition(col), listView->horizontalHeader()->height());
//printf("MPConfig::rbClicked new ppt x:%d y:%d\n", ppt.x(), ppt.y());
ppt = listView->mapToGlobal(ppt);
//printf("MPConfig::rbClicked new mapped ppt x:%d y:%d\n", ppt.x(), ppt.y());
@@ -144,7 +147,7 @@ void MPConfig::rbClicked(Q3ListViewItem* item, const QPoint& cpt, int col)
if (port->hasGui())
{
port->instrument()->showGui(!port->guiVisible());
- item->setPixmap(DEVCOL_GUI, port->guiVisible() ? *dotIcon : *dothIcon);
+ item->setIcon(port->guiVisible() ? QIcon(*dotIcon) : QIcon(*dothIcon));
}
//break;
return;
@@ -156,7 +159,7 @@ void MPConfig::rbClicked(Q3ListViewItem* item, const QPoint& cpt, int col)
openFlags ^= 0x2;
dev->setOpenFlags(openFlags);
midiSeq->msgSetMidiDevice(port, dev); // reopen device
- item->setPixmap(DEVCOL_REC, openFlags & 2 ? *dotIcon : *dothIcon);
+ item->setIcon(openFlags & 2 ? QIcon(*dotIcon) : QIcon(*dothIcon));
// p3.3.55
if(dev->deviceType() == MidiDevice::JACK_MIDI)
@@ -164,12 +167,12 @@ void MPConfig::rbClicked(Q3ListViewItem* item, const QPoint& cpt, int col)
if(dev->openFlags() & 2)
{
//item->setPixmap(DEVCOL_INROUTES, *buttondownIcon);
- item->setText(DEVCOL_INROUTES, tr("in"));
- }
+ item->tableWidget()->item(item->row(), DEVCOL_INROUTES)->setText(tr("in"));
+ }
else
{
//item->setPixmap(DEVCOL_INROUTES, *buttondownIcon);
- item->setText(DEVCOL_INROUTES, "");
+ item->tableWidget()->item(item->row(), DEVCOL_INROUTES)->setText("");
}
}
@@ -183,7 +186,7 @@ void MPConfig::rbClicked(Q3ListViewItem* item, const QPoint& cpt, int col)
openFlags ^= 0x1;
dev->setOpenFlags(openFlags);
midiSeq->msgSetMidiDevice(port, dev); // reopen device
- item->setPixmap(DEVCOL_PLAY, openFlags & 1 ? *dotIcon : *dothIcon);
+ item->setIcon(openFlags & 1 ? QIcon(*dotIcon) : QIcon(*dothIcon));
// p3.3.55
if(dev->deviceType() == MidiDevice::JACK_MIDI)
@@ -191,12 +194,12 @@ void MPConfig::rbClicked(Q3ListViewItem* item, const QPoint& cpt, int col)
if(dev->openFlags() & 1)
{
//item->setPixmap(DEVCOL_OUTROUTES, *buttondownIcon);
- item->setText(DEVCOL_OUTROUTES, tr("out"));
+ item->tableWidget()->item(item->row(), DEVCOL_OUTROUTES)->setText(tr("out"));
}
else
{
//item->setPixmap(DEVCOL_OUTROUTES, *buttondownIcon);
- item->setText(DEVCOL_OUTROUTES, "");
+ item->tableWidget()->item(item->row(), DEVCOL_OUTROUTES)->setText("");
}
}
@@ -375,6 +378,7 @@ void MPConfig::rbClicked(Q3ListViewItem* item, const QPoint& cpt, int col)
//printf("MPConfig::rbClicked DEVCOL_NAME\n");
// Did we click in the text area?
+ /* ORCAN FIXME-->
if((cpt.x() - ppt.x()) > buttondownIcon->width())
{
//printf("MPConfig::rbClicked starting item rename... enabled?:%d\n", item->renameEnabled(DEVCOL_NAME));
@@ -384,7 +388,7 @@ void MPConfig::rbClicked(Q3ListViewItem* item, const QPoint& cpt, int col)
return;
}
- else
+ else <--END OF ORCAN FIXME*/
// We clicked the 'down' button.
{
QMenu* pup = new QMenu(this);
@@ -602,7 +606,7 @@ void MPConfig::rbClicked(Q3ListViewItem* item, const QPoint& cpt, int col)
//break;
return;
QString s = act->text();
- item->setText(DEVCOL_INSTR, s);
+ item->tableWidget()->item(item->row(), DEVCOL_INSTR)->setText(s);
for (iMidiInstrument i = midiInstruments.begin(); i
!= midiInstruments.end(); ++i) {
if ((*i)->iname() == s) {
@@ -691,16 +695,32 @@ QString MPWhatsThis::text(const QPoint& pos)
// Midi Port Config
//---------------------------------------------------------
-MPConfig::MPConfig(QWidget* parent, char* name)
- : SynthConfigBase(parent, name)
+MPConfig::MPConfig(QWidget* parent)
+ : QDialog(parent)
{
+ setupUi(this);
+ mdevView->setRowCount(MIDI_PORTS);
+ mdevView->setColumnCount(9);
+
_mptooltip = 0;
//popup = 0;
instrPopup = 0;
_showAliases = -1; // 0: Show first aliases, if available. Nah, stick with -1: none at first.
- mdevView->setSorting(-1);
- mdevView->setAllColumnsShowFocus(true);
+ //ORCAN-FIXMEmdevView->setSorting(-1);
+ //ORCAN-FIXMEmdevView->setAllColumnsShowFocus(true);
+ mdevView->setHorizontalHeaderLabels(QStringList()
+ << tr("Port")
+ << tr("GUI")
+ << tr("I")
+ << tr("O")
+ << tr("Instrument")
+ << tr("Device Name")
+ << tr("In routes")
+ << tr("Out routes")
+ << tr("State")
+ );
+ /* Orcan FIXME column widths
mdevView->addColumn(tr("Port"));
mdevView->addColumn(tr("GUI"));
mdevView->addColumn(tr("I"));
@@ -711,8 +731,10 @@ MPConfig::MPConfig(QWidget* parent, char* name)
mdevView->addColumn(tr("In routes"), 80);
mdevView->addColumn(tr("Out routes"), 80);
mdevView->addColumn(tr("State"));
+ */
mdevView->setFocusPolicy(Qt::NoFocus);
+ /* Orcan FIXME
mdevView->setColumnAlignment(DEVCOL_NO, Qt::AlignHCenter);
mdevView->setColumnAlignment(DEVCOL_GUI, Qt::AlignCenter);
mdevView->setColumnAlignment(DEVCOL_REC, Qt::AlignCenter);
@@ -720,24 +742,26 @@ MPConfig::MPConfig(QWidget* parent, char* name)
mdevView->header()->setResizeEnabled(false, DEVCOL_NO);
mdevView->header()->setResizeEnabled(false, DEVCOL_REC);
mdevView->header()->setResizeEnabled(false, DEVCOL_GUI);
- mdevView->setResizeMode(Q3ListView::LastColumn);
+ mdevView->setResizeMode(QTableWidget::LastColumn);
instanceList->setColumnAlignment(1, Qt::AlignHCenter);
new MPWhatsThis(mdevView, mdevView->header());
_mptooltip = new MPHeaderTip(mdevView->header());
-
- connect(mdevView, SIGNAL(pressed(Q3ListViewItem*,const QPoint&,int)),
- this, SLOT(rbClicked(Q3ListViewItem*,const QPoint&,int)));
- connect(mdevView, SIGNAL(itemRenamed(Q3ListViewItem*,int,const QString&)),
- this, SLOT(mdevViewItemRenamed(Q3ListViewItem*,int,const QString&)));
+ */
+ connect(mdevView, SIGNAL(itemPressed(QTableWidgetItem*)),
+ this, SLOT(rbClicked(QTableWidgetItem*)));
+ connect(mdevView, SIGNAL(itemChanged(QTableWidgetItem*)),
+ this, SLOT(mdevViewItemRenamed(QTableWidgetItem*)));
connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
- connect(synthList, SIGNAL(selectionChanged()), SLOT(selectionChanged()));
- connect(instanceList, SIGNAL(selectionChanged()), SLOT(selectionChanged()));
+ connect(synthList, SIGNAL(itemSelectionChanged()), SLOT(selectionChanged()));
+ connect(instanceList, SIGNAL(itemSelectionChanged()), SLOT(selectionChanged()));
connect(addInstance, SIGNAL(clicked()), SLOT(addInstanceClicked()));
+ connect(synthList, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), SLOT(addInstanceClicked()));
connect(removeInstance, SIGNAL(clicked()), SLOT(removeInstanceClicked()));
+ connect(instanceList, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), SLOT(removeInstanceClicked()));
songChanged(0);
}
@@ -753,8 +777,8 @@ MPConfig::~MPConfig()
void MPConfig::selectionChanged()
{
- addInstance->setEnabled(synthList->selectedItem());
- removeInstance->setEnabled(instanceList->selectedItem());
+ addInstance->setEnabled(synthList->currentItem());
+ removeInstance->setEnabled(instanceList->currentItem());
}
//---------------------------------------------------------
@@ -769,62 +793,80 @@ void MPConfig::songChanged(int flags)
// Get currently selected index...
int no = -1;
- Q3ListViewItem* sitem = mdevView->selectedItem();
+ QTableWidgetItem* sitem = mdevView->currentItem();
if(sitem)
{
- QString id = sitem->text(DEVCOL_NO);
+ QString id = sitem->tableWidget()->item(sitem->row(), DEVCOL_NO)->text();
no = atoi(id.latin1()) - 1;
if(no < 0 || no >= MIDI_PORTS)
no = -1;
}
sitem = 0;
- mdevView->clear();
+ mdevView->clearContents();
for (int i = MIDI_PORTS-1; i >= 0; --i)
{
MidiPort* port = &midiPorts[i];
MidiDevice* dev = port->device();
QString s;
s.setNum(i+1);
- Q3ListViewItem* item = new Q3ListViewItem(mdevView);
- item->setText(DEVCOL_NO, s);
- item->setText(DEVCOL_STATE, port->state());
- if (port->instrument())
- item->setText(DEVCOL_INSTR, port->instrument()->iname() );
- else
- item->setText(DEVCOL_INSTR, tr("<unknown>"));
+ QTableWidgetItem* itemno = new QTableWidgetItem(s);
+ mdevView->setItem(i, DEVCOL_NO, itemno);
+ QTableWidgetItem* itemstate = new QTableWidgetItem(port->state());
+ mdevView->setItem(i, DEVCOL_STATE, itemstate);
+ QTableWidgetItem* iteminstr = new QTableWidgetItem(port->instrument() ?
+ port->instrument()->iname() :
+ tr("<unknown>"));
+ mdevView->setItem(i, DEVCOL_INSTR, iteminstr);
+ QTableWidgetItem* itemname = new QTableWidgetItem;
+ mdevView->setItem(i, DEVCOL_NAME, itemname);
+ QTableWidgetItem* itemgui = new QTableWidgetItem;
+ mdevView->setItem(i, DEVCOL_GUI, itemgui);
+ QTableWidgetItem* itemrec = new QTableWidgetItem;
+ mdevView->setItem(i, DEVCOL_REC, itemrec);
+ QTableWidgetItem* itemplay = new QTableWidgetItem;
+ mdevView->setItem(i, DEVCOL_PLAY, itemplay);
+ QTableWidgetItem* itemout = new QTableWidgetItem;
+ mdevView->setItem(i, DEVCOL_OUTROUTES, itemout);
+ QTableWidgetItem* itemin = new QTableWidgetItem;
+ mdevView->setItem(i, DEVCOL_INROUTES, itemin);
+
if (dev) {
- item->setText(DEVCOL_NAME, dev->name());
+ itemname->setText(dev->name());
+
// Is it a Jack midi device? Allow renaming.
//if(dynamic_cast<MidiJackDevice*>(dev))
- if(dev->deviceType() == MidiDevice::JACK_MIDI)
- item->setRenameEnabled(DEVCOL_NAME, true);
+ if (dev->deviceType() == MidiDevice::JACK_MIDI)
+ itemname->setFlags(Qt::ItemIsEditable);
if (dev->rwFlags() & 0x2)
- item->setPixmap(DEVCOL_REC, dev->openFlags() & 2 ? *dotIcon : *dothIcon);
+ itemrec->setIcon(dev->openFlags() & 2 ? QIcon(*dotIcon) : QIcon(*dothIcon));
else
- item->setPixmap(DEVCOL_REC, QPixmap());
+ itemrec->setIcon(QIcon(QPixmap()));
if (dev->rwFlags() & 0x1)
- item->setPixmap(DEVCOL_PLAY, dev->openFlags() & 1 ? *dotIcon : *dothIcon);
+ itemplay->setIcon( dev->openFlags() & 1 ?
+ QIcon(*dotIcon) :
+ QIcon(*dothIcon));
else
- item->setPixmap(DEVCOL_PLAY, QPixmap());
+ itemplay->setIcon(QIcon(QPixmap()));
}
else {
- item->setText(DEVCOL_NAME, tr("<none>"));
- item->setPixmap(DEVCOL_GUI, *dothIcon);
- item->setPixmap(DEVCOL_REC, QPixmap());
- item->setPixmap(DEVCOL_PLAY, QPixmap());
+ itemname->setText(tr("<none>"));
+ itemgui->setIcon(QIcon(*dothIcon));
+ itemrec->setIcon(QIcon(QPixmap()));
+ itemplay->setIcon(QIcon(QPixmap()));
}
if (port->hasGui()) {
- item->setPixmap(DEVCOL_GUI, port->guiVisible() ? *dotIcon : *dothIcon);
+ itemgui->setIcon(port->guiVisible() ? QIcon(*dotIcon) : QIcon(*dothIcon));
}
else {
- item->setPixmap(DEVCOL_GUI, QPixmap());
+ itemgui->setIcon(QIcon(QPixmap()));
}
if (!(dev && dev->isSynti()))
- item->setPixmap(DEVCOL_INSTR, *buttondownIcon);
- item->setPixmap(DEVCOL_NAME, *buttondownIcon);
-
+ iteminstr->setIcon(QIcon(*buttondownIcon));
+ itemname->setIcon(QIcon(*buttondownIcon));
+
+
//if(dev && dynamic_cast<MidiJackDevice*>(dev))
if(dev && dev->deviceType() == MidiDevice::JACK_MIDI)
{
@@ -835,27 +877,25 @@ void MPConfig::songChanged(int flags)
if(dev->rwFlags() & 1)
//if(dev->openFlags() & 1)
{
- item->setPixmap(DEVCOL_OUTROUTES, *buttondownIcon);
+ itemout->setIcon(QIcon(*buttondownIcon));
if(dev->openFlags() & 1)
- item->setText(DEVCOL_OUTROUTES, tr("out"));
+ itemout->setText(tr("out"));
}
if(dev->rwFlags() & 2)
//if(dev->openFlags() & 2)
{
- item->setPixmap(DEVCOL_INROUTES, *buttondownIcon);
+ itemin->setIcon(QIcon(*buttondownIcon));
if(dev->openFlags() & 2)
- item->setText(DEVCOL_INROUTES, tr("in"));
+ itemin->setText(tr("in"));
}
}
- mdevView->insertItem(item);
- if(i == no)
- sitem = item;
+ if(i == no) sitem = itemno;
}
if(sitem)
{
- mdevView->setSelected(sitem, true);
- mdevView->ensureItemVisible(sitem);
+ mdevView->setCurrentItem(sitem);
+ //ORCAN-ChECKmdevView->ensureItemVisible(sitem);
}
QString s;
@@ -865,7 +905,7 @@ void MPConfig::songChanged(int flags)
//s = (*i)->baseName();
//s = (*i)->name();
- Q3ListViewItem* item = new Q3ListViewItem(synthList);
+ QTreeWidgetItem* item = new QTreeWidgetItem(synthList);
//item->setText(0, s);
item->setText(0, QString((*i)->baseName()));
s.setNum((*i)->instances());
@@ -879,7 +919,7 @@ void MPConfig::songChanged(int flags)
instanceList->clear();
SynthIList* sl = song->syntis();
for (iSynthI si = sl->begin(); si != sl->end(); ++si) {
- Q3ListViewItem* iitem = new Q3ListViewItem(instanceList);
+ QTreeWidgetItem* iitem = new QTreeWidgetItem(instanceList);
iitem->setText(0, (*si)->name());
if ((*si)->midiPort() == -1)
s = tr("<none>");
@@ -887,6 +927,7 @@ void MPConfig::songChanged(int flags)
s.setNum((*si)->midiPort() + 1);
iitem->setText(1, s);
}
+ mdevView->resizeColumnsToContents();
selectionChanged();
}
@@ -896,7 +937,7 @@ void MPConfig::songChanged(int flags)
void MPConfig::addInstanceClicked()
{
- Q3ListViewItem* item = synthList->selectedItem();
+ QTreeWidgetItem* item = synthList->currentItem();
if (item == 0)
return;
//SynthI *si = song->createSynthI(item->text(2));
@@ -923,7 +964,7 @@ void MPConfig::addInstanceClicked()
void MPConfig::removeInstanceClicked()
{
- Q3ListViewItem* item = instanceList->selectedItem();
+ QTreeWidgetItem* item = instanceList->currentItem();
if (item == 0)
return;
SynthIList* sl = song->syntis();
@@ -946,7 +987,7 @@ void MPConfig::removeInstanceClicked()
void MusE::configMidiPorts()
{
if (!midiPortConfig)
- midiPortConfig = new MPConfig(0, (char*) "midiPortConfig");
+ midiPortConfig = new MPConfig(0);
if (midiPortConfig->isVisible()) {
midiPortConfig->raise();
midiPortConfig->setActiveWindow();