aboutsummaryrefslogtreecommitdiff
path: root/qmidiplayer-desktop
diff options
context:
space:
mode:
authorGravatar Chris Xiong <chirs241097@gmail.com> 2019-04-22 00:16:50 +0800
committerGravatar Chris Xiong <chirs241097@gmail.com> 2019-04-22 00:16:50 +0800
commiteba45fdf11a98113b439db0510b55f14845db8fb (patch)
tree1d73816893ccb36fa3a5f1f5c63a629bac7f0787 /qmidiplayer-desktop
parentd2b00a80c237c1c3d8bc9551966cf781292525e6 (diff)
downloadQMidiPlayer-eba45fdf11a98113b439db0510b55f14845db8fb.tar.xz
New development cycle!
Partially reintroduce High DPI handling. Pressing enter when a preset is focused now opens the preset selection dialog. Close all functionality windows before shutting down. Temporary fix for switching all channels of an external synth to mono mode unintentionally. And the most important one of them all: simple visualization! I'm ditching the 0.8.6 cycle because there was no clear goal for that release now (as the OPL3 emulation is now delayed indefinitely). In contrast, the 0.8.7 release has a pretty good-looking feature set mainly focused on improving support for external synthesizers: - Per-device initialization profile. - Instrument mapping files. - And a simple visualization ~~for showing off your external synthesizers~~. As always no ETA is set, nor will I promise the implementaion of all the features listed above.
Diffstat (limited to 'qmidiplayer-desktop')
-rw-r--r--qmidiplayer-desktop/main.cpp2
-rw-r--r--qmidiplayer-desktop/qmpchannelswindow.cpp13
-rw-r--r--qmidiplayer-desktop/qmpchannelswindow.hpp3
-rw-r--r--qmidiplayer-desktop/qmpmainwindow.cpp7
4 files changed, 23 insertions, 2 deletions
diff --git a/qmidiplayer-desktop/main.cpp b/qmidiplayer-desktop/main.cpp
index a2375ca..f62429c 100644
--- a/qmidiplayer-desktop/main.cpp
+++ b/qmidiplayer-desktop/main.cpp
@@ -24,6 +24,8 @@
int main(int argc,char **argv)
{
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
+ if(!qgetenv("QT_SCALE_FACTOR").length()&&!qgetenv("QT_SCREEN_SCALE_FACTORS").length())
+ QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication a(argc,argv);
QTranslator qtTranslator;
qtTranslator.load("qt_"+QLocale::system().name(),
diff --git a/qmidiplayer-desktop/qmpchannelswindow.cpp b/qmidiplayer-desktop/qmpchannelswindow.cpp
index 6b1b8b4..3b54069 100644
--- a/qmidiplayer-desktop/qmpchannelswindow.cpp
+++ b/qmidiplayer-desktop/qmpchannelswindow.cpp
@@ -71,6 +71,7 @@ qmpChannelsWindow::qmpChannelsWindow(QWidget *parent) :
ui->twChannels->setColumnWidth(3,192);
ui->twChannels->setColumnWidth(4,208);
ui->twChannels->setColumnWidth(5,32);
+ ui->twChannels->installEventFilter(this);
qmpMainWindow::getInstance()->registerFunctionality(
chnlf=new qmpChannelFunc(this),
std::string("Channel"),
@@ -224,6 +225,18 @@ void qmpChannelsWindow::changeMidiMapping(int chid,int idx)
qmpMainWindow::getInstance()->getPlayer()->setChannelOutput(chid,idx);
}
+bool qmpChannelsWindow::eventFilter(QObject *o,QEvent *e)
+{
+ if(e->type()==QEvent::KeyPress&&ui->twChannels->currentColumn()==4)
+ {
+ QKeyEvent *ke=static_cast<QKeyEvent*>(e);
+ if(ke->key()!=Qt::Key_Enter&&ke->key()!=Qt::Key_Return)return false;
+ showPresetWindow(ui->twChannels->currentRow(),4);
+ return true;
+ }
+ return false;
+}
+
qmpChannelFunc::qmpChannelFunc(qmpChannelsWindow *par)
{p=par;}
void qmpChannelFunc::show()
diff --git a/qmidiplayer-desktop/qmpchannelswindow.hpp b/qmidiplayer-desktop/qmpchannelswindow.hpp
index 9ff0cd0..cb7b791 100644
--- a/qmidiplayer-desktop/qmpchannelswindow.hpp
+++ b/qmidiplayer-desktop/qmpchannelswindow.hpp
@@ -90,6 +90,9 @@ class qmpChannelsWindow:public QWidget
void on_pbUnmute_clicked();
void on_pbUnsolo_clicked();
+ protected:
+ bool eventFilter(QObject *o,QEvent *e);
+
private:
Ui::qmpChannelsWindow *ui;
qmpPresetSelector *pselectw;
diff --git a/qmidiplayer-desktop/qmpmainwindow.cpp b/qmidiplayer-desktop/qmpmainwindow.cpp
index 335a3c5..baebe4f 100644
--- a/qmidiplayer-desktop/qmpmainwindow.cpp
+++ b/qmidiplayer-desktop/qmpmainwindow.cpp
@@ -177,8 +177,11 @@ void qmpMainWindow::closeEvent(QCloseEvent *event)
}
on_pbStop_clicked();fin=true;
for(auto i=mfunc.begin();i!=mfunc.end();++i)
- i->second.setAssignedControl((QReflectiveAction*)NULL),
- i->second.setAssignedControl((QReflectivePushButton*)NULL);
+ {
+ i->second.i()->close();
+ i->second.setAssignedControl((QReflectiveAction*)NULL),
+ i->second.setAssignedControl((QReflectivePushButton*)NULL);
+ }
efxw->close();chnlw->close();
plistw->close();infow->close();
settingsw->close();