diff options
Diffstat (limited to 'qmidiplayer-desktop')
-rw-r--r-- | qmidiplayer-desktop/qmpchannelswindow.cpp | 18 | ||||
-rw-r--r-- | qmidiplayer-desktop/qmpchannelswindow.hpp | 19 |
2 files changed, 14 insertions, 23 deletions
diff --git a/qmidiplayer-desktop/qmpchannelswindow.cpp b/qmidiplayer-desktop/qmpchannelswindow.cpp index 77560dc..c154383 100644 --- a/qmidiplayer-desktop/qmpchannelswindow.cpp +++ b/qmidiplayer-desktop/qmpchannelswindow.cpp @@ -45,6 +45,7 @@ qmpChannelsWindow::qmpChannelsWindow(QWidget *parent) : ui->twChannels->setCellWidget(i,3,new QDCComboBox()); QDCComboBox *cb=(QDCComboBox*)ui->twChannels->cellWidget(i,3); cb->setID(i); + cb->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed); for(size_t j=0;j<devc;++j) { cb->addItem(devs[j].c_str()); @@ -59,13 +60,13 @@ qmpChannelsWindow::qmpChannelsWindow(QWidget *parent) : if(qmpSettingsWindow::getSettingsIntf()->value("Midi/DisableMapping",0).toInt()) cb->setEnabled(false); connect(cb,SIGNAL(onChange(int,int)),this,SLOT(changeMidiMapping(int,int))); - ui->twChannels->setCellWidget(i,4,new QDCLabel("")); - ((QDCLabel*)ui->twChannels->cellWidget(i,4))->setID(i); - connect(ui->twChannels->cellWidget(i,4),SIGNAL(onDoubleClick(int)),this,SLOT(showPresetWindow(int))); + ui->twChannels->setItem(i,4,new QTableWidgetItem("")); + ui->twChannels->item(i,4)->setFlags(Qt::ItemIsEnabled); ui->twChannels->setCellWidget(i,5,new QDCPushButton("...")); - ((QDCLabel*)ui->twChannels->cellWidget(i,5))->setID(i); + ((QDCPushButton*)ui->twChannels->cellWidget(i,5))->setID(i); connect(ui->twChannels->cellWidget(i,5),SIGNAL(onClick(int)),this,SLOT(showChannelEditorWindow(int))); } + connect(ui->twChannels,SIGNAL(cellDoubleClicked(int,int)),this,SLOT(showPresetWindow(int,int))); ui->twChannels->setColumnWidth(0,24*(logicalDpiX()/96.)); ui->twChannels->setColumnWidth(1,24*(logicalDpiX()/96.)); ui->twChannels->setColumnWidth(2,24*(logicalDpiX()/96.)); @@ -130,7 +131,7 @@ void qmpChannelsWindow::channelWindowsUpdate() if(qmpMainWindow::getInstance()->getPlayer()->isFinished()) { for(int i=0;i<16;++i) - ((QLabel*)ui->twChannels->cellWidget(i,4))->setText(""); + ui->twChannels->item(i,4)->setText(""); connect(cb,SIGNAL(onNoteOn()),this,SLOT(updateChannelActivity())); fused=0;return; } @@ -153,14 +154,14 @@ void qmpChannelsWindow::channelWindowsUpdate() sprintf(data,"%03d:%03d %s",b,p,nm); if(fused) { - if(strcmp(((QLabel*)ui->twChannels->cellWidget(i,4))-> + if(strcmp((ui->twChannels->item(i,4))-> text().toStdString().c_str(),data)) { connect(cb,SIGNAL(onNoteOn()),this,SLOT(updateChannelActivity())); fused=0; } } - ((QLabel*)ui->twChannels->cellWidget(i,4))->setText(data); + ui->twChannels->item(i,4)->setText(data); ui->twChannels->item(i,0)->setIcon( qmpMainWindow::getInstance()->getPlayer()->getChstates()[i]?*cha:*chi); if(qmpMainWindow::getInstance()->getPlayer()->getChstates()[i]) @@ -207,8 +208,9 @@ void qmpChannelsWindow::on_pbUnsolo_clicked() } } -void qmpChannelsWindow::showPresetWindow(int chid) +void qmpChannelsWindow::showPresetWindow(int chid,int col) { + if(col!=4)return; pselectw->show(); pselectw->setupWindow(chid); } diff --git a/qmidiplayer-desktop/qmpchannelswindow.hpp b/qmidiplayer-desktop/qmpchannelswindow.hpp index 008598c..9ff0cd0 100644 --- a/qmidiplayer-desktop/qmpchannelswindow.hpp +++ b/qmidiplayer-desktop/qmpchannelswindow.hpp @@ -17,20 +17,6 @@ namespace Ui { class qmpChannelsWindow; } -class QDCLabel:public QLabel -{ - Q_OBJECT - private: - int id; - protected: - void mouseDoubleClickEvent(QMouseEvent *event){event->accept();emit onDoubleClick(id);} - public: - QDCLabel(QString s):QLabel(s){id=-1;} - void setID(int _id){id=_id;} - signals: - void onDoubleClick(int id); -}; - class QDCPushButton:public QPushButton { Q_OBJECT @@ -41,6 +27,7 @@ class QDCPushButton:public QPushButton public: QDCPushButton(QString s):QPushButton(s){id=-1;} void setID(int _id){id=_id;} + QSize sizeHint()const{return QSize();} signals: void onClick(int id); }; @@ -53,6 +40,8 @@ class QDCComboBox:public QComboBox public: QDCComboBox():QComboBox(){id=-1;connect(this,SIGNAL(currentIndexChanged(int)),this,SLOT(indexChangedSlot(int)));} void setID(int _id){id=_id;} + QSize sizeHint()const{return QSize();} + QSize minimumSizeHint()const{return QSize();} signals: void onChange(int id,int idx); public slots: @@ -95,7 +84,7 @@ class qmpChannelsWindow:public QWidget void channelWindowsUpdate(); void updateChannelActivity(); void channelMSChanged(); - void showPresetWindow(int chid); + void showPresetWindow(int chid,int col); void showChannelEditorWindow(int chid); void changeMidiMapping(int chid,int idx); void on_pbUnmute_clicked(); |