diff options
author | Chris Xiong <chirs241097@gmail.com> | 2016-05-07 23:58:52 +0800 |
---|---|---|
committer | Chris Xiong <chirs241097@gmail.com> | 2016-05-07 23:58:52 +0800 |
commit | f0d2584fdad44703f3966eb0b1e695341a4ca01c (patch) | |
tree | 354a6f8a961a07a14a8b7f1887e66986e558d303 /qmidiplayer-desktop | |
parent | 909cfe195ae2f6058a03875123f1e80f2a3fa0fa (diff) | |
download | QMidiPlayer-f0d2584fdad44703f3966eb0b1e695341a4ca01c.tar.xz |
Added two new options.
Fixed several crashes related to options without a description.
Sanitise deinitialize order again.
Fixed several memory leaks.
Diffstat (limited to 'qmidiplayer-desktop')
-rw-r--r-- | qmidiplayer-desktop/qmpmainwindow.cpp | 15 | ||||
-rw-r--r-- | qmidiplayer-desktop/qmpsettingswindow.cpp | 12 |
2 files changed, 17 insertions, 10 deletions
diff --git a/qmidiplayer-desktop/qmpmainwindow.cpp b/qmidiplayer-desktop/qmpmainwindow.cpp index 3842757..c377010 100644 --- a/qmidiplayer-desktop/qmpmainwindow.cpp +++ b/qmidiplayer-desktop/qmpmainwindow.cpp @@ -62,7 +62,14 @@ qmpMainWindow::qmpMainWindow(QWidget *parent) : qmpMainWindow::~qmpMainWindow() { delete pmgr;if(player)delete player; - if(timer)delete timer;delete ui; + if(timer)delete timer; + delete helpw;helpw=NULL; + delete efxw;efxw=NULL; + delete chnlw;chnlw=NULL; + delete plistw;plistw=NULL; + delete infow;infow=NULL; + delete settingsw;settingsw=NULL; + delete ui; } void qmpMainWindow::init() @@ -183,12 +190,6 @@ void qmpMainWindow::closeEvent(QCloseEvent *event) efxw->close();chnlw->close(); plistw->close();infow->close(); settingsw->close(); - delete helpw;helpw=NULL; - delete efxw;efxw=NULL; - delete chnlw;chnlw=NULL; - delete plistw;plistw=NULL; - delete infow;infow=NULL; - delete settingsw;settingsw=NULL; event->accept(); } diff --git a/qmidiplayer-desktop/qmpsettingswindow.cpp b/qmidiplayer-desktop/qmpsettingswindow.cpp index 45f84c3..81ac364 100644 --- a/qmidiplayer-desktop/qmpsettingswindow.cpp +++ b/qmidiplayer-desktop/qmpsettingswindow.cpp @@ -330,24 +330,25 @@ void qmpSettingsWindow::updateCustomOptions() { case 0:case 1: { - QSpinBox* sb=(QSpinBox*)i->second.widget; + QSpinBox* sb=(QSpinBox*)i->second.widget;if(!i->second.widget)break; settings->setValue(QString(i->first.c_str()),sb->value()); break; } case 2: { + if(!i->second.widget)break; settings->setValue(QString(i->first.c_str()),((QCheckBox*)i->second.widget)->isChecked()?1:0); break; } case 3: { - QDoubleSpinBox* sb=(QDoubleSpinBox*)i->second.widget; + QDoubleSpinBox* sb=(QDoubleSpinBox*)i->second.widget;if(!i->second.widget)break; settings->setValue(QString(i->first.c_str()),sb->value()); break; } case 4: { - QLineEdit* te=(QLineEdit*)i->second.widget; + QLineEdit* te=(QLineEdit*)i->second.widget;if(!i->second.widget)break; settings->setValue(QString(i->first.c_str()),te->text()); } } @@ -393,6 +394,7 @@ int qmpSettingsWindow::getOptionInt(std::string key) void qmpSettingsWindow::setOptionInt(std::string key,int val) { settings->setValue(QString(key.c_str()),val); + if(customOptions[key].widget) ((QSpinBox*)customOptions[key].widget)->setValue(val); } @@ -436,6 +438,7 @@ unsigned qmpSettingsWindow::getOptionUint(std::string key) void qmpSettingsWindow::setOptionUint(std::string key,unsigned val) { settings->setValue(QString(key.c_str()),val); + if(customOptions[key].widget) ((QSpinBox*)customOptions[key].widget)->setValue(val); } @@ -472,6 +475,7 @@ bool qmpSettingsWindow::getOptionBool(std::string key) void qmpSettingsWindow::setOptionBool(std::string key,bool val) { settings->setValue(QString(key.c_str()),val?1:0); + if(customOptions[key].widget) ((QCheckBox*)customOptions[key].widget)->setChecked(val); } @@ -515,6 +519,7 @@ double qmpSettingsWindow::getOptionDouble(std::string key) void qmpSettingsWindow::setOptionDouble(std::string key,double val) { settings->setValue(QString(key.c_str()),val); + if(customOptions[key].widget) ((QDoubleSpinBox*)customOptions[key].widget)->setValue(val); } @@ -554,5 +559,6 @@ std::string qmpSettingsWindow::getOptionString(std::string key) void qmpSettingsWindow::setOptionString(std::string key,std::string val) { settings->setValue(QString(key.c_str()),QString(val.c_str())); + if(customOptions[key].widget) ((QLineEdit*)customOptions[key].widget)->setText(val.c_str()); } |