GUI: fix some more weirdness with saving/restoring tab order
This commit is contained in:
parent
a2e6ccb39a
commit
dfa6cef3b5
|
@ -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)
|
||||
|
|
|
@ -262,6 +262,7 @@ private:
|
|||
};
|
||||
|
||||
QList<WidgetInfo> mWidgetList;
|
||||
QList<WidgetInfo> mPluginWidgetList;
|
||||
|
||||
protected:
|
||||
void dragEnterEvent(QDragEnterEvent* pEvent);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue