From 964909a31ea9dcff3a4c7d51315168caf29a690e Mon Sep 17 00:00:00 2001 From: Roy Qu Date: Fri, 20 May 2022 18:43:01 +0800 Subject: [PATCH] - change: panels can be relocated --- NEWS.md | 1 + RedPandaIDE/mainwindow.cpp | 226 +-- RedPandaIDE/mainwindow.h | 14 +- RedPandaIDE/mainwindow.ui | 3010 ++++++++++++++++++------------------ 4 files changed, 1615 insertions(+), 1636 deletions(-) diff --git a/NEWS.md b/NEWS.md index 8a73d459..e0a41343 100644 --- a/NEWS.md +++ b/NEWS.md @@ -4,6 +4,7 @@ Red Panda C++ Version 1.0.9 - fix: input with ime in column mode not correctly handled - fix: copy & paste in column mode not correctly handled - fix: crash when project name is selected in the project view and try create new project file + - change: panels can be relocated Red Panda C++ Version 1.0.8 - enhancement: auto complete '#undef' diff --git a/RedPandaIDE/mainwindow.cpp b/RedPandaIDE/mainwindow.cpp index 798898f1..174431ae 100644 --- a/RedPandaIDE/mainwindow.cpp +++ b/RedPandaIDE/mainwindow.cpp @@ -103,8 +103,6 @@ MainWindow::MainWindow(QWidget *parent) mSearchDialog(nullptr), mQuitting(false), mCheckSyntaxInBack(false), - mOpenClosingBottomPanel(false), - mOpenClosingLeftPanel(false), mShouldRemoveAllSettings(false), mClosing(false), mOpenningFiles(false), @@ -327,9 +325,6 @@ MainWindow::MainWindow(QWidget *parent) mHeaderCompletionPopup = std::make_shared(); mFunctionTip = std::make_shared(); - mBottomPanelHeight = 0; - mLeftPanelWidth = 0; - mClassBrowserModel.setColors(mStatementColors); connect(&mAutoSaveTimer, &QTimer::timeout, @@ -779,8 +774,6 @@ void MainWindow::updateDPI(int oldDPI, int newDPI) //applySettings(); if (oldDPI<1) oldDPI = 1; - mBottomPanelHeight = mBottomPanelHeight * newDPI / oldDPI ; - mLeftPanelWidth = mLeftPanelWidth * newDPI / oldDPI ; } void MainWindow::onFileSaved(const QString &path, bool inProject) @@ -1874,72 +1867,74 @@ void MainWindow::showCPUInfoDialog() void MainWindow::openCloseBottomPanel(bool open) { + ui->dockMessages->setVisible(open); // if Assigned(fReportToolWindow) then // Exit; - if (mOpenClosingBottomPanel) - return; - mOpenClosingBottomPanel = true; - auto action = finally([this]{ - mOpenClosingBottomPanel = false; - }); - // Switch between open and close - if (open) { - QList sizes = ui->splitterMessages->sizes(); - int tabHeight = ui->tabMessages->tabBar()->height(); - ui->tabMessages->setMinimumHeight(tabHeight+5); - if ( mBottomPanelHeight < ui->tabMessages->tabBar()->height() + 5) - mBottomPanelHeight = ui->tabMessages->tabBar()->height() + 5; - int totalSize = sizes[0] + sizes[1]; - sizes[1] = mBottomPanelHeight; - sizes[0] = std::max(1,totalSize - sizes[1]); - ui->splitterMessages->setSizes(sizes); - } else { - QList sizes = ui->splitterMessages->sizes(); - mBottomPanelHeight = sizes[1]; - int totalSize = sizes[0] + sizes[1]; - int tabHeight = ui->tabMessages->tabBar()->height(); - ui->tabMessages->setMinimumHeight(tabHeight); - sizes[1] = tabHeight; - sizes[0] = std::max(1,totalSize - sizes[1]); - ui->splitterMessages->setSizes(sizes); - } - mBottomPanelOpenned = open; - QSplitterHandle* handle = ui->splitterMessages->handle(1); - handle->setEnabled(mBottomPanelOpenned); +// if (mOpenClosingBottomPanel) +// return; +// mOpenClosingBottomPanel = true; +// auto action = finally([this]{ +// mOpenClosingBottomPanel = false; +// }); +// // Switch between open and close +// if (open) { +// QList sizes = ui->splitterMessages->sizes(); +// int tabHeight = ui->tabMessages->tabBar()->height(); +// ui->tabMessages->setMinimumHeight(tabHeight+5); +// if ( mBottomPanelHeight < ui->tabMessages->tabBar()->height() + 5) +// mBottomPanelHeight = ui->tabMessages->tabBar()->height() + 5; +// int totalSize = sizes[0] + sizes[1]; +// sizes[1] = mBottomPanelHeight; +// sizes[0] = std::max(1,totalSize - sizes[1]); +// ui->splitterMessages->setSizes(sizes); +// } else { +// QList sizes = ui->splitterMessages->sizes(); +// mBottomPanelHeight = sizes[1]; +// int totalSize = sizes[0] + sizes[1]; +// int tabHeight = ui->tabMessages->tabBar()->height(); +// ui->tabMessages->setMinimumHeight(tabHeight); +// sizes[1] = tabHeight; +// sizes[0] = std::max(1,totalSize - sizes[1]); +// ui->splitterMessages->setSizes(sizes); +// } +// mBottomPanelOpenned = open; +// QSplitterHandle* handle = ui->splitterMessages->handle(1); +// handle->setEnabled(mBottomPanelOpenned); } void MainWindow::openCloseLeftPanel(bool open) { - if (mOpenClosingLeftPanel) - return; - mOpenClosingLeftPanel = true; - auto action = finally([this]{ - mOpenClosingLeftPanel = false; - }); - // Switch between open and close - if (open ) { - QList sizes = ui->splitterInfos->sizes(); - int tabWidth = ui->tabInfos->tabBar()->width(); - ui->tabInfos->setMinimumWidth(tabWidth+5); - if (mLeftPanelWidth < ui->tabInfos->tabBar()->width() + 5) - mLeftPanelWidth = ui->tabInfos->tabBar()->width() + 5; - int totalSize = sizes[0] + sizes[1]; - sizes[0] = mLeftPanelWidth; - sizes[1] = std::max(1,totalSize - sizes[0]); - ui->splitterInfos->setSizes(sizes); - } else { - QList sizes = ui->splitterInfos->sizes(); - mLeftPanelWidth = sizes[0]; - int totalSize = sizes[0] + sizes[1]; - int tabWidth = ui->tabInfos->tabBar()->width(); - ui->tabInfos->setMinimumWidth(tabWidth); - sizes[0] = tabWidth; - sizes[1] = std::max(1,totalSize - sizes[0]); - ui->splitterInfos->setSizes(sizes); - } - mLeftPanelOpenned = open; - QSplitterHandle* handle = ui->splitterInfos->handle(1); - handle->setEnabled(mLeftPanelOpenned); + ui->dockFiles->setVisible(open); +// if (mOpenClosingLeftPanel) +// return; +// mOpenClosingLeftPanel = true; +// auto action = finally([this]{ +// mOpenClosingLeftPanel = false; +// }); +// // Switch between open and close +// if (open ) { +// QList sizes = ui->splitterInfos->sizes(); +// int tabWidth = ui->tabInfos->tabBar()->width(); +// ui->tabInfos->setMinimumWidth(tabWidth+5); +// if (mLeftPanelWidth < ui->tabInfos->tabBar()->width() + 5) +// mLeftPanelWidth = ui->tabInfos->tabBar()->width() + 5; +// int totalSize = sizes[0] + sizes[1]; +// sizes[0] = mLeftPanelWidth; +// sizes[1] = std::max(1,totalSize - sizes[0]); +// ui->splitterInfos->setSizes(sizes); +// } else { +// QList sizes = ui->splitterInfos->sizes(); +// mLeftPanelWidth = sizes[0]; +// int totalSize = sizes[0] + sizes[1]; +// int tabWidth = ui->tabInfos->tabBar()->width(); +// ui->tabInfos->setMinimumWidth(tabWidth); +// sizes[0] = tabWidth; +// sizes[1] = std::max(1,totalSize - sizes[0]); +// ui->splitterInfos->setSizes(sizes); +// } +// mLeftPanelOpenned = open; +// QSplitterHandle* handle = ui->splitterInfos->handle(1); +// handle->setEnabled(mLeftPanelOpenned); } void MainWindow::prepareDebugger() @@ -2717,7 +2712,7 @@ void MainWindow::buildEncodingMenu() void MainWindow::maximizeEditor() { - if (mLeftPanelOpenned || mBottomPanelOpenned) { + if (ui->dockFiles->isVisible() || ui->dockMessages->isVisible()) { openCloseBottomPanel(false); openCloseLeftPanel(false); } else { @@ -4311,12 +4306,8 @@ void MainWindow::closeEvent(QCloseEvent *event) { Settings::UI& settings = pSettings->ui(); settings.setMainWindowState(saveState()); settings.setMainWindowGeometry(saveGeometry()); - settings.setBottomPanelHeight(mBottomPanelHeight); settings.setBottomPanelIndex(ui->tabMessages->currentIndex()); - settings.setBottomPanelOpenned(mBottomPanelOpenned); - settings.setLeftPanelWidth(mLeftPanelWidth); settings.setLeftPanelIndex(ui->tabInfos->currentIndex()); - settings.setLeftPanelOpenned(mLeftPanelOpenned); settings.setShowStatusBar(ui->actionStatus_Bar->isChecked()); settings.setShowToolWindowBars(ui->actionTool_Window_Bars->isChecked()); @@ -4413,44 +4404,20 @@ void MainWindow::showEvent(QShowEvent *) applySettings(); const Settings::UI& settings = pSettings->ui(); ui->tabMessages->setCurrentIndex(settings.bottomPanelIndex()); - if (settings.bottomPanelOpenned()) { - mBottomPanelHeight = settings.bottomPanelHeight(); - openCloseBottomPanel(true); - } else { - openCloseBottomPanel(false); - mBottomPanelHeight = settings.bottomPanelHeight(); - } ui->tabInfos->setCurrentIndex(settings.leftPanelIndex()); - if (settings.leftPanelOpenned()) { - mLeftPanelWidth = settings.leftPanelWidth(); - openCloseLeftPanel(true); - } else { - openCloseLeftPanel(false); - mLeftPanelWidth = settings.leftPanelWidth(); - } } void MainWindow::hideEvent(QHideEvent *) { Settings::UI& settings = pSettings->ui(); settings.setBottomPanelIndex(ui->tabMessages->currentIndex()); - settings.setBottomPanelOpenned(mBottomPanelOpenned); - settings.setBottomPanelHeight(mBottomPanelHeight); settings.setLeftPanelIndex(ui->tabInfos->currentIndex()); - settings.setLeftPanelOpenned(mLeftPanelOpenned); - settings.setLeftPanelWidth(mLeftPanelWidth); } bool MainWindow::event(QEvent *event) { if (event->type()==DPI_CHANGED_EVENT) { applySettings(); - int saveHeight = mBottomPanelHeight ; - int saveWidth = mLeftPanelWidth; - openCloseBottomPanel(mBottomPanelOpenned); - openCloseLeftPanel(mLeftPanelOpenned); - mBottomPanelHeight = saveHeight; - mLeftPanelWidth = saveWidth; event->accept(); return true; } @@ -4965,7 +4932,7 @@ void MainWindow::on_actionConvert_to_UTF_8_triggered() void MainWindow::on_tabMessages_tabBarClicked(int index) { if (index == ui->tabMessages->currentIndex()) { - openCloseBottomPanel(!mBottomPanelOpenned); +// openCloseBottomPanel(!mBottomPanelOpenned); } } @@ -5397,25 +5364,11 @@ void MainWindow::on_actionForward_triggered() void MainWindow::on_tabInfos_tabBarClicked(int index) { if (index == ui->tabInfos->currentIndex()) { - openCloseLeftPanel(!mLeftPanelOpenned); +// openCloseLeftPanel(!mLeftPanelOpenned); } } -void MainWindow::on_splitterInfos_splitterMoved(int, int) -{ - QList sizes = ui->splitterInfos->sizes(); - mLeftPanelWidth = sizes[0]; -} - - -void MainWindow::on_splitterMessages_splitterMoved(int, int) -{ - QList sizes = ui->splitterMessages->sizes(); - mBottomPanelHeight = sizes[1]; -} - - void MainWindow::on_EditorTabsLeft_tabBarDoubleClicked(int) { maximizeEditor(); @@ -7713,3 +7666,52 @@ void MainWindow::on_actionCompiler_Options_triggered() ); } + +void MainWindow::on_dockFiles_dockLocationChanged(const Qt::DockWidgetArea &area) +{ + switch(area) { + case Qt::DockWidgetArea::BottomDockWidgetArea: + case Qt::DockWidgetArea::TopDockWidgetArea: + ui->tabInfos->setTabPosition(QTabWidget::TabPosition::South); + break; + case Qt::DockWidgetArea::LeftDockWidgetArea: + ui->tabInfos->setTabPosition(QTabWidget::TabPosition::West); + break; + case Qt::DockWidgetArea::RightDockWidgetArea: + ui->tabInfos->setTabPosition(QTabWidget::TabPosition::East); + break; + default: + break; + } +} + + +void MainWindow::on_dockMessages_dockLocationChanged(const Qt::DockWidgetArea &area) +{ + switch(area) { + case Qt::DockWidgetArea::BottomDockWidgetArea: + case Qt::DockWidgetArea::TopDockWidgetArea: + ui->splitterDebug->setOrientation(Qt::Orientation::Horizontal); + ui->splitterProblem->setOrientation(Qt::Orientation::Horizontal); + break; + default: + ui->splitterDebug->setOrientation(Qt::Orientation::Vertical); + ui->splitterProblem->setOrientation(Qt::Orientation::Vertical); + } + switch(area) { + case Qt::DockWidgetArea::BottomDockWidgetArea: + case Qt::DockWidgetArea::TopDockWidgetArea: + ui->tabMessages->setTabPosition(QTabWidget::TabPosition::South); + break; + case Qt::DockWidgetArea::LeftDockWidgetArea: + ui->tabMessages->setTabPosition(QTabWidget::TabPosition::West); + break; + case Qt::DockWidgetArea::RightDockWidgetArea: + ui->tabMessages->setTabPosition(QTabWidget::TabPosition::East); + break; + default: + break; + } + +} + diff --git a/RedPandaIDE/mainwindow.h b/RedPandaIDE/mainwindow.h index 9526f586..803f1d58 100644 --- a/RedPandaIDE/mainwindow.h +++ b/RedPandaIDE/mainwindow.h @@ -442,10 +442,6 @@ private slots: void on_tabInfos_tabBarClicked(int index); - void on_splitterInfos_splitterMoved(int pos, int index); - - void on_splitterMessages_splitterMoved(int pos, int index); - void on_EditorTabsLeft_tabBarDoubleClicked(int index); void on_EditorTabsRight_tabBarDoubleClicked(int index); @@ -674,6 +670,10 @@ private slots: void on_actionCompiler_Options_triggered(); + void on_dockFiles_dockLocationChanged(const Qt::DockWidgetArea &area); + + void on_dockMessages_dockLocationChanged(const Qt::DockWidgetArea &area); + private: Ui::MainWindow *ui; EditorList *mEditorList; @@ -720,12 +720,6 @@ private: int mOJProblemSetNameCounter; bool mCheckSyntaxInBack; - bool mOpenClosingBottomPanel; - int mBottomPanelHeight; - bool mBottomPanelOpenned; - bool mOpenClosingLeftPanel; - int mLeftPanelWidth; - bool mLeftPanelOpenned; bool mShouldRemoveAllSettings; PCompileSuccessionTask mCompileSuccessionTask; diff --git a/RedPandaIDE/mainwindow.ui b/RedPandaIDE/mainwindow.ui index b5a460fb..025f8746 100644 --- a/RedPandaIDE/mainwindow.ui +++ b/RedPandaIDE/mainwindow.ui @@ -33,1527 +33,80 @@ 0 - - - Qt::Vertical + + + + 1 + 0 + - - 1 - - - false - - - - - 0 - 1 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Qt::Horizontal - - - 1 - - - false - - - - - 0 - 0 - - - - QTabWidget::West - - - 2 - - - true - - - - - :/icons/images/newlook24/018-copy.png:/icons/images/newlook24/018-copy.png - - - Files - - - - 2 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 2 - - - 0 - - - 0 - - - 2 - - - 0 - - - - - true - - - QComboBox::InsertAtTop - - - - - - - - - - QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked - - - true - - - QAbstractItemView::DragDrop - - - Qt::CopyAction - - - QAbstractItemView::ExtendedSelection - - - false - - - - - - - - - :/icons/images/newlook24/049-newproj.png:/icons/images/newlook24/049-newproj.png - - - Project - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked - - - true - - - QAbstractItemView::InternalMove - - - Qt::MoveAction - - - QAbstractItemView::ExtendedSelection - - - QAbstractItemView::SelectRows - - - 500 - - - false - - - - - - - - - :/icons/images/newlook24/088-watch.png:/icons/images/newlook24/088-watch.png - - - Watch - - - - 2 - - - 2 - - - 2 - - - 2 - - - - - QAbstractItemView::DoubleClicked - - - QAbstractItemView::ExtendedSelection - - - Qt::ElideNone - - - false - - - 100 - - - - - - - - - :/icons/images/newlook24/087-update.png:/icons/images/newlook24/087-update.png - - - Structure - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Qt::ScrollBarAlwaysOn - - - true - - - false - - - - - - - - - :/icons/images/newlook24/014-compopt.png:/icons/images/newlook24/014-compopt.png - - - Problem Set - - - - 3 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - QFrame::Panel - - - QFrame::Plain - - - Problem Set - - - 5 - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - New Problem Set - - - New Problem Set - - - - :/icons/images/newlook24/050-newsrc.png:/icons/images/newlook24/050-newsrc.png - - - - - - - Add Problem - - - Add Problem - - - - :/icons/images/newlook24/002-add.png:/icons/images/newlook24/002-add.png - - - - - - - Remove Problem - - - Remove Problem - - - - :/icons/images/newlook24/008-close.png:/icons/images/newlook24/008-close.png - - - - - - - Save Problem Set - - - Save Problem Set - - - - :/icons/images/newlook24/072-saveas.png:/icons/images/newlook24/072-saveas.png - - - - - - - Load Problem Set - - - Load Problem Set - - - - :/icons/images/newlook24/053-open.png:/icons/images/newlook24/053-open.png - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - true - - - QAbstractItemView::SelectRows - - - - - - - - - - 1 - 0 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - 0 - - - - Qt::Horizontal - - - 1 - - - - - 0 - 0 - - - - -1 - - - true - - - true - - - true - - - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - 0 - 0 - - - - QTabWidget::South - - + + 0 - - - 16 - 16 - + + 0 - - - - :/icons/images/newlook24/013-compile.png - - - - Issues - - - - 5 + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + - - 5 + + Qt::Horizontal - - 5 + + 1 - - 5 - - - - - - 50 - false - - - - QAbstractItemView::NoEditTriggers - - - false - - - false - - - true - - - QAbstractItemView::SingleSelection - - - QAbstractItemView::SelectRows - - - true - - - - - - - - - :/icons/images/newlook24/015-compres.png - - - - Tools Output - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - false - - - QPlainTextEdit::NoWrap - - - true - - - false - - - - - - - - - :/icons/images/newlook24/020-debug.png - - - - Debug - - - - 7 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Qt::Horizontal - - - 3 - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - 11 - - - 11 - - - 11 - - - 11 - - - - - Evaluate: - - - - - - - - 0 - 0 - - - - true - - - QComboBox::InsertAtTop - - - - - - - false - - - true - - - - - - - - QTabWidget::North - - - 4 - - - - Debug Console - - - - 2 - - - 2 - - - 2 - - - 2 - - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - - - - - Call Stack - - - - 2 - - - 2 - - - 2 - - - 0 - - - - - true - - - QAbstractItemView::SingleSelection - - - QAbstractItemView::SelectRows - - - Qt::ElideNone - - - true - - - - - - - - Breakpoints - - - - 2 - - - 2 - - - 2 - - - 0 - - - - - true - - - QAbstractItemView::SingleSelection - - - QAbstractItemView::SelectRows - - - Qt::ElideNone - - - true - - - - - - - - Locals - - - - 2 - - - 2 - - - 2 - - - 0 - - - - - false - - - true - - - - - - - - Memory - - - - - - Address Expression: - - - - - - - false - - - - - - - - 0 - 0 - - - - true - - - QComboBox::InsertAtTop - - - - - - - - - - - - - - :/icons/images/newlook24/074-search.png - - - - Search - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - 0 - - - - History: - - - - - - - - 0 - 0 - - - - - 150 - 0 - - - - QComboBox::AdjustToContents - - - - - - - false - - - - 0 - 0 - - - - Search Again - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Replace with: - - - - - - - - 150 - 0 - - - - true - - - QComboBox::InsertAtTop - - - QComboBox::AdjustToContents - - - - - - - Replace - - - - - - - Cancel - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - false - - - - - - - - - :/icons/images/newlook24/047-makefl.png:/icons/images/newlook24/047-makefl.png - - - TODO - - - - - - true - - - - - - - - - :/icons/images/newlook24/039-gobook.png:/icons/images/newlook24/039-gobook.png - - - Bookmark - - - - - - true - - - QAbstractItemView::SingleSelection - - - QAbstractItemView::SelectRows - - - true - - - - - - - - - :/icons/images/newlook24/015-compres.png:/icons/images/newlook24/015-compres.png - - - Problem - - - - 11 - - - 11 - - - 11 - - - 11 - - - - - Qt::Horizontal - - - - - 3 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - QFrame::Box - - - Problem - - - 5 - - - true - - - - - - - - 0 - 0 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Add Probem Case - - - Add Probem Case - - - - :/icons/images/newlook24/002-add.png:/icons/images/newlook24/002-add.png - - - - - - - Remove Problem Case - - - Remove Problem Case - - - - :/icons/images/newlook24/008-close.png:/icons/images/newlook24/008-close.png - - - - - - - Open Anwser Source File - - - Open Anwser Source File - - - - :/icons/images/newlook24/091-openproblemanswer.png:/icons/images/newlook24/091-openproblemanswer.png - - - - - - - Qt::Vertical - - - - - - - Run All Cases - - - Run All Cases - - - - :/icons/images/newlook24/092-runallproblemcases.png:/icons/images/newlook24/092-runallproblemcases.png - - - - - - - Problem Cases Validation Options - - - - :/icons/images/newlook24/083-toolbar.png:/icons/images/newlook24/083-toolbar.png - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 0 - 0 - - - - 0 - - - 0 - - - %v/%m - - - - - - - - - - true - - - QAbstractItemView::SingleSelection - - - QAbstractItemView::SelectRows - - - 200 - - - true - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - QPlainTextEdit::NoWrap - - - true - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - false - - - true - - - - - - - Input - - - - - - - Choose Input File - - - Choose Input File - - - - :/icons/images/newlook24/053-open.png:/icons/images/newlook24/053-open.png - - - - - - - Clear - - - - :/icons/images/newlook24/008-close.png:/icons/images/newlook24/008-close.png - - - - - - - - - - Output - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Expected - - - - - - - false - - - true - - - - - - - Clear - - - Clear - - - - :/icons/images/newlook24/008-close.png:/icons/images/newlook24/008-close.png - - - - - - - ... - - - - :/icons/images/newlook24/053-open.png:/icons/images/newlook24/053-open.png - - - - - - - - - - QPlainTextEdit::NoWrap - - - - - - - QPlainTextEdit::NoWrap - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + 0 + 0 + + + + -1 + + + true + + + true + + + true + + + + + true + + + true + + + true + + + true + + + + + @@ -1880,6 +433,1435 @@ + + + QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetMovable + + + Qt::BottomDockWidgetArea|Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea + + + Infos + + + 1 + + + + + 0 + 0 + + + + QTabWidget::West + + + 0 + + + true + + + + + :/icons/images/newlook24/018-copy.png:/icons/images/newlook24/018-copy.png + + + Files + + + + 2 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 2 + + + 0 + + + 0 + + + 2 + + + 0 + + + + + true + + + QComboBox::InsertAtTop + + + + + + + + + + QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked + + + true + + + QAbstractItemView::DragDrop + + + Qt::CopyAction + + + QAbstractItemView::ExtendedSelection + + + false + + + + + + + + + :/icons/images/newlook24/049-newproj.png:/icons/images/newlook24/049-newproj.png + + + Project + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked + + + true + + + QAbstractItemView::InternalMove + + + Qt::MoveAction + + + QAbstractItemView::ExtendedSelection + + + QAbstractItemView::SelectRows + + + 500 + + + false + + + + + + + + + :/icons/images/newlook24/088-watch.png:/icons/images/newlook24/088-watch.png + + + Watch + + + + 2 + + + 2 + + + 2 + + + 2 + + + + + QAbstractItemView::DoubleClicked + + + QAbstractItemView::ExtendedSelection + + + Qt::ElideNone + + + false + + + 100 + + + + + + + + + :/icons/images/newlook24/087-update.png:/icons/images/newlook24/087-update.png + + + Structure + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::ScrollBarAlwaysOn + + + true + + + false + + + + + + + + + :/icons/images/newlook24/014-compopt.png:/icons/images/newlook24/014-compopt.png + + + Problem Set + + + + 3 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QFrame::Panel + + + QFrame::Plain + + + Problem Set + + + 5 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + New Problem Set + + + New Problem Set + + + + :/icons/images/newlook24/050-newsrc.png:/icons/images/newlook24/050-newsrc.png + + + + + + + Add Problem + + + Add Problem + + + + :/icons/images/newlook24/002-add.png:/icons/images/newlook24/002-add.png + + + + + + + Remove Problem + + + Remove Problem + + + + :/icons/images/newlook24/008-close.png:/icons/images/newlook24/008-close.png + + + + + + + Save Problem Set + + + Save Problem Set + + + + :/icons/images/newlook24/072-saveas.png:/icons/images/newlook24/072-saveas.png + + + + + + + Load Problem Set + + + Load Problem Set + + + + :/icons/images/newlook24/053-open.png:/icons/images/newlook24/053-open.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + true + + + QAbstractItemView::SelectRows + + + + + + + + + + QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetMovable + + + Qt::BottomDockWidgetArea|Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea + + + Messages + + + 8 + + + + + 0 + 0 + + + + QTabWidget::South + + + 6 + + + + 16 + 16 + + + + + + :/icons/images/newlook24/013-compile.png + + + + Issues + + + + 5 + + + 5 + + + 5 + + + 5 + + + + + + 50 + false + + + + QAbstractItemView::NoEditTriggers + + + false + + + false + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + true + + + + + + + + + :/icons/images/newlook24/015-compres.png + + + + Tools Output + + + + 5 + + + 5 + + + 5 + + + 5 + + + + + false + + + QPlainTextEdit::NoWrap + + + true + + + false + + + + + + + + + :/icons/images/newlook24/020-debug.png + + + + Debug + + + + 7 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + 3 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 11 + + + 11 + + + 11 + + + 11 + + + + + Evaluate: + + + + + + + + 0 + 0 + + + + true + + + QComboBox::InsertAtTop + + + + + + + false + + + true + + + + + + + + QTabWidget::North + + + 4 + + + + Debug Console + + + + 2 + + + 2 + + + 2 + + + 2 + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + + Call Stack + + + + 2 + + + 2 + + + 2 + + + 0 + + + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + Qt::ElideNone + + + true + + + + + + + + Breakpoints + + + + 2 + + + 2 + + + 2 + + + 0 + + + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + Qt::ElideNone + + + true + + + + + + + + Locals + + + + 2 + + + 2 + + + 2 + + + 0 + + + + + false + + + true + + + + + + + + Memory + + + + + + Address Expression: + + + + + + + false + + + + + + + + 0 + 0 + + + + true + + + QComboBox::InsertAtTop + + + + + + + + + + + + + + :/icons/images/newlook24/074-search.png + + + + Search + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + History: + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + QComboBox::AdjustToContents + + + + + + + false + + + + 0 + 0 + + + + Search Again + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Replace with: + + + + + + + + 150 + 0 + + + + true + + + QComboBox::InsertAtTop + + + QComboBox::AdjustToContents + + + + + + + Replace + + + + + + + Cancel + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + false + + + + + + + + + :/icons/images/newlook24/047-makefl.png:/icons/images/newlook24/047-makefl.png + + + TODO + + + + + + true + + + + + + + + + :/icons/images/newlook24/039-gobook.png:/icons/images/newlook24/039-gobook.png + + + Bookmark + + + + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + true + + + + + + + + + :/icons/images/newlook24/015-compres.png:/icons/images/newlook24/015-compres.png + + + Problem + + + + 11 + + + 11 + + + 11 + + + 11 + + + + + Qt::Horizontal + + + + + 3 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QFrame::Box + + + Problem + + + 5 + + + true + + + + + + + + 0 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Add Probem Case + + + Add Probem Case + + + + :/icons/images/newlook24/002-add.png:/icons/images/newlook24/002-add.png + + + + + + + Remove Problem Case + + + Remove Problem Case + + + + :/icons/images/newlook24/008-close.png:/icons/images/newlook24/008-close.png + + + + + + + Open Anwser Source File + + + Open Anwser Source File + + + + :/icons/images/newlook24/091-openproblemanswer.png:/icons/images/newlook24/091-openproblemanswer.png + + + + + + + Qt::Vertical + + + + + + + Run All Cases + + + Run All Cases + + + + :/icons/images/newlook24/092-runallproblemcases.png:/icons/images/newlook24/092-runallproblemcases.png + + + + + + + Problem Cases Validation Options + + + + :/icons/images/newlook24/083-toolbar.png:/icons/images/newlook24/083-toolbar.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + 0 + + + 0 + + + %v/%m + + + + + + + + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + 200 + + + true + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QPlainTextEdit::NoWrap + + + true + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + false + + + true + + + + + + + Input + + + + + + + Choose Input File + + + Choose Input File + + + + :/icons/images/newlook24/053-open.png:/icons/images/newlook24/053-open.png + + + + + + + Clear + + + + :/icons/images/newlook24/008-close.png:/icons/images/newlook24/008-close.png + + + + + + + + + + Output + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Expected + + + + + + + false + + + true + + + + + + + Clear + + + Clear + + + + :/icons/images/newlook24/008-close.png:/icons/images/newlook24/008-close.png + + + + + + + ... + + + + :/icons/images/newlook24/053-open.png:/icons/images/newlook24/053-open.png + + + + + + + + + + QPlainTextEdit::NoWrap + + + + + + + QPlainTextEdit::NoWrap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +