1
0
Fork 0

GUI: fix some more weirdness with saving/restoring tab order

This commit is contained in:
Duncan Ogilvie 2019-10-20 00:03:11 +02:00
parent a2e6ccb39a
commit dfa6cef3b5
No known key found for this signature in database
GPG Key ID: FC89E0AAA0C1AAD8
4 changed files with 27 additions and 6 deletions

View File

@ -559,6 +559,10 @@ void MainWindow::loadTabDefaultOrder()
//TODO
for(int i = 0; i < mWidgetList.size(); i++)
addQWidgetTab(mWidgetList[i].widget, mWidgetList[i].nativeName);
// Add plugin tabs to the end
for(const auto & widget : mPluginWidgetList)
addQWidgetTab(widget.widget, widget.nativeName);
}
void MainWindow::loadTabSavedOrder()
@ -592,6 +596,19 @@ void MainWindow::loadTabSavedOrder()
// Setup tabs
for(auto & widget : tabIndexToWidget)
addQWidgetTab(widget.first, widget.second);
// 'Restore' deleted tabs
for(int i = 0; i < mWidgetList.size(); i++)
{
duint isDeleted = 0;
BridgeSettingGetUint("Deleted Tabs", mWidgetList[i].nativeName.toUtf8().constData(), &isDeleted);
if(isDeleted)
mTabWidget->DeleteTab(mTabWidget->indexOf(mWidgetList[i].widget));
}
// Add plugin tabs to the end
for(const auto & widget : mPluginWidgetList)
addQWidgetTab(widget.widget, widget.nativeName);
}
void MainWindow::clearTabWidget()
@ -1009,10 +1026,10 @@ void MainWindow::hideTab()
void MainWindow::openSettings()
{
SettingsDialog* settings = new SettingsDialog(this);
connect(settings, SIGNAL(chkSaveLoadTabOrderStateChanged(bool)), this, SLOT(chkSaveloadTabSavedOrderStateChangedSlot(bool)));
settings->lastException = lastException;
settings->exec();
SettingsDialog settings(this);
connect(&settings, SIGNAL(chkSaveLoadTabOrderStateChanged(bool)), this, SLOT(chkSaveloadTabSavedOrderStateChangedSlot(bool)));
settings.lastException = lastException;
settings.exec();
}
void MainWindow::openAppearance()
@ -1634,7 +1651,9 @@ void MainWindow::addQWidgetTab(QWidget* qWidget, QString nativeName)
void MainWindow::addQWidgetTab(QWidget* qWidget)
{
addQWidgetTab(qWidget, qWidget->windowTitle());
WidgetInfo info(qWidget, qWidget->metaObject()->className());
addQWidgetTab(info.widget, info.nativeName);
mPluginWidgetList.append(info);
}
void MainWindow::showQWidgetTab(QWidget* qWidget)

View File

@ -262,6 +262,7 @@ private:
};
QList<WidgetInfo> mWidgetList;
QList<WidgetInfo> mPluginWidgetList;
protected:
void dragEnterEvent(QDragEnterEvent* pEvent);

View File

@ -82,6 +82,7 @@ void SettingsDialog::LoadSettings()
settings.disasmNoSourceLineAutoComments = false;
settings.disasmMaxModuleSize = -1;
settings.guiNoForegroundWindow = true;
settings.guiLoadSaveTabOrder = true;
settings.guiDisableAutoComplete = false;
settings.guiAsciiAddressDumpMode = false;

View File

@ -279,7 +279,7 @@ Configuration::Configuration() : QObject(), noMoreMsgbox(false)
guiBool.insert("NoCloseDialog", false);
guiBool.insert("PidInHex", true);
guiBool.insert("SidebarWatchLabels", true);
guiBool.insert("LoadSaveTabOrder", false);
guiBool.insert("LoadSaveTabOrder", true);
guiBool.insert("ShowGraphRva", false);
guiBool.insert("GraphZoomMode", false);
guiBool.insert("ShowExitConfirmation", true);