diff --git a/src/gui/Src/Gui/MainWindow.cpp b/src/gui/Src/Gui/MainWindow.cpp index 17503de0..f3474325 100644 --- a/src/gui/Src/Gui/MainWindow.cpp +++ b/src/gui/Src/Gui/MainWindow.cpp @@ -75,7 +75,7 @@ MainWindow::MainWindow(QWidget* parent) // Log view mLogView = new LogView(); - mLogView->setWindowTitle("Log"); + mLogView->setWindowTitle(tr("Log")); mLogView->setWindowIcon(QIcon(":/icons/images/log.png")); mLogView->hide(); @@ -162,18 +162,31 @@ MainWindow::MainWindow(QWidget* parent) // Add all widgets to the list mWidgetList.push_back(mCpuWidget); + mWidgetNativeNameList.push_back("CPUTab"); mWidgetList.push_back(mLogView); + mWidgetNativeNameList.push_back("LogTab"); mWidgetList.push_back(mNotesManager); + mWidgetNativeNameList.push_back("NotesTab"); mWidgetList.push_back(mBreakpointsView); + mWidgetNativeNameList.push_back("BreakpointsTab"); mWidgetList.push_back(mMemMapView); + mWidgetNativeNameList.push_back("MemoryMapTab"); mWidgetList.push_back(mCallStackView); + mWidgetNativeNameList.push_back("CallStackTab"); mWidgetList.push_back(mSEHChainView); + mWidgetNativeNameList.push_back("SEHTab"); mWidgetList.push_back(mScriptView); + mWidgetNativeNameList.push_back("ScriptTab"); mWidgetList.push_back(mSymbolView); + mWidgetNativeNameList.push_back("SymbolsTab"); mWidgetList.push_back(mSourceViewManager); + mWidgetNativeNameList.push_back("SourceTab"); mWidgetList.push_back(mReferenceManager); + mWidgetNativeNameList.push_back("ReferencesTab"); mWidgetList.push_back(mThreadView); + mWidgetNativeNameList.push_back("ThreadsTab"); mWidgetList.push_back(mSnowmanView); + mWidgetNativeNameList.push_back("SnowmanTab"); // If LoadSaveTabOrder disabled, load tabs in default order if(!ConfigBool("Miscellaneous", "LoadSaveTabOrder")) @@ -345,28 +358,28 @@ void MainWindow::loadTabDefaultOrder() clearTabWidget(); // Setup tabs + //TODO for(int i = 0; i < mWidgetList.size(); i++) - addQWidgetTab(mWidgetList[i]); + addQWidgetTab(mWidgetList[i], mWidgetNativeNameList[i]); } void MainWindow::loadTabSavedOrder() { clearTabWidget(); - QMap tabIndexToWidget; + QMap > tabIndexToWidget; // Get tabIndex for each widget and add them to tabIndexToWidget for(int i = 0; i < mWidgetList.size(); i++) { - QString tabName = mWidgetList[i]->windowTitle(); - tabName = tabName.replace(" ", "") + "Tab"; + QString tabName = mWidgetNativeNameList[i]; duint tabIndex = Config()->getUint("TabOrder", tabName); - tabIndexToWidget.insert(tabIndex, mWidgetList[i]); + tabIndexToWidget.insert(tabIndex, std::make_pair(mWidgetList[i], tabName)); } // Setup tabs for(auto & widget : tabIndexToWidget) - addQWidgetTab(widget); + addQWidgetTab(widget.first, widget.second); } void MainWindow::clearTabWidget() @@ -1178,7 +1191,7 @@ void MainWindow::changeCommandLine() void MainWindow::displayManual() { // Open the Windows CHM in the upper directory - QDesktopServices::openUrl(QUrl("..\\x64dbg.chm")); + QDesktopServices::openUrl(QUrl(QString("%1\\..\\x64dbg.chm").arg(QCoreApplication::applicationDirPath()))); } void MainWindow::decompileAt(dsint start, dsint end) @@ -1192,9 +1205,9 @@ void MainWindow::canClose() close(); } -void MainWindow::addQWidgetTab(QWidget* qWidget) +void MainWindow::addQWidgetTab(QWidget* qWidget, QString nativeName) { - mTabWidget->addTab(qWidget, qWidget->windowIcon(), qWidget->windowTitle()); + mTabWidget->addTabEx(qWidget, qWidget->windowIcon(), qWidget->windowTitle(), nativeName); } void MainWindow::showQWidgetTab(QWidget* qWidget) @@ -1226,7 +1239,8 @@ void MainWindow::tabMovedSlot(int from, int to) for(int i = 0; i < mTabWidget->count(); i++) { // Remove space in widget name and append Tab to get config settings (CPUTab, MemoryMapTab, etc...) - QString tabName = mTabWidget->tabText(i).replace(" ", "") + "Tab"; + //QString tabName = mTabWidget->tabText(i).replace(" ", "") + "Tab"; + QString tabName = mTabWidget->getNativeName(i); Config()->setUint("TabOrder", tabName, i); } }