- change: panels can be relocated

This commit is contained in:
Roy Qu 2022-05-20 18:43:01 +08:00
parent c3db151c2c
commit 964909a31e
4 changed files with 1615 additions and 1636 deletions

View File

@ -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'

View File

@ -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<HeaderCompletionPopup>();
mFunctionTip = std::make_shared<FunctionTooltipWidget>();
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<int> 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<int> 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<int> 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<int> 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<int> 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<int> 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<int> 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<int> 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<int> sizes = ui->splitterInfos->sizes();
mLeftPanelWidth = sizes[0];
}
void MainWindow::on_splitterMessages_splitterMoved(int, int)
{
QList<int> 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;
}
}

View File

@ -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;

View File

@ -33,24 +33,17 @@
<number>0</number>
</property>
<item>
<widget class="QSplitter" name="splitterMessages">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="handleWidth">
<number>1</number>
</property>
<property name="childrenCollapsible">
<bool>false</bool>
</property>
<widget class="QWidget" name="widget" native="true">
<widget class="QWidget" name="EditorPanel" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>1</verstretch>
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
@ -64,19 +57,398 @@
<number>0</number>
</property>
<item>
<widget class="QSplitter" name="splitterInfos">
<widget class="QSplitter" name="splitterEditorPanel">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="handleWidth">
<number>1</number>
</property>
<property name="childrenCollapsible">
<bool>false</bool>
<widget class="EditorsTabWidget" name="EditorTabsLeft">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="currentIndex">
<number>-1</number>
</property>
<property name="documentMode">
<bool>true</bool>
</property>
<property name="tabsClosable">
<bool>true</bool>
</property>
<property name="movable">
<bool>true</bool>
</property>
</widget>
<widget class="EditorsTabWidget" name="EditorTabsRight">
<property name="enabled">
<bool>true</bool>
</property>
<property name="documentMode">
<bool>true</bool>
</property>
<property name="tabsClosable">
<bool>true</bool>
</property>
<property name="movable">
<bool>true</bool>
</property>
</widget>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1114</width>
<height>26</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
<property name="title">
<string>File</string>
</property>
<addaction name="actionOpen"/>
<addaction name="actionOpen_Folder"/>
<addaction name="separator"/>
<addaction name="actionSave"/>
<addaction name="actionSaveAs"/>
<addaction name="actionSaveAll"/>
<addaction name="separator"/>
<addaction name="actionClose"/>
<addaction name="actionClose_Project"/>
<addaction name="actionClose_All"/>
<addaction name="separator"/>
<addaction name="actionPrint"/>
<addaction name="separator"/>
<addaction name="actionExit"/>
</widget>
<widget class="QMenu" name="menuTools">
<property name="title">
<string>Tools</string>
</property>
<addaction name="actionOptions"/>
</widget>
<widget class="QMenu" name="menuExecute">
<property name="title">
<string>Execute</string>
</property>
<addaction name="actionCompile"/>
<addaction name="actionRun"/>
<addaction name="actionCompile_Run"/>
<addaction name="actionRebuild"/>
<addaction name="separator"/>
<addaction name="actionRun_Parameters"/>
<addaction name="actionCompiler_Options"/>
<addaction name="separator"/>
<addaction name="actionDebug"/>
<addaction name="actionInterrupt"/>
<addaction name="actionStep_Over"/>
<addaction name="actionStep_Into"/>
<addaction name="actionStep_Out"/>
<addaction name="actionRun_To_Cursor"/>
<addaction name="actionContinue"/>
<addaction name="actionStop_Execution"/>
<addaction name="separator"/>
<addaction name="actionAdd_Watch"/>
<addaction name="actionView_CPU_Window"/>
</widget>
<widget class="QMenu" name="menuEdit">
<property name="title">
<string>Edit</string>
</property>
<addaction name="actionUndo"/>
<addaction name="actionRedo"/>
<addaction name="separator"/>
<addaction name="actionCut"/>
<addaction name="actionCopy"/>
<addaction name="actionPaste"/>
<addaction name="actionSelectAll"/>
<addaction name="separator"/>
<addaction name="actionIndent"/>
<addaction name="actionUnIndent"/>
<addaction name="separator"/>
<addaction name="actionToggleComment"/>
<addaction name="actionToggle_Block_Comment"/>
<addaction name="separator"/>
<addaction name="actionFoldAll"/>
<addaction name="actionUnfoldAll"/>
<addaction name="separator"/>
<addaction name="actionMove_Selection_Up"/>
<addaction name="actionMove_Selection_Down"/>
<addaction name="actionDelete_Line"/>
<addaction name="actionDuplicate_Line"/>
<addaction name="actionDelete_Word"/>
<addaction name="actionDelete_Last_Word"/>
<addaction name="actionDelete_to_Word_End"/>
<addaction name="actionDelete_to_BOL"/>
<addaction name="actionDelete_to_EOL"/>
</widget>
<widget class="QMenu" name="menuSearch">
<property name="title">
<string>Search</string>
</property>
<addaction name="actionFind"/>
<addaction name="actionFind_in_files"/>
<addaction name="actionReplace"/>
<addaction name="separator"/>
<addaction name="actionFind_Next"/>
<addaction name="actionFind_Previous"/>
</widget>
<widget class="QMenu" name="menuCode">
<property name="title">
<string>Code</string>
</property>
<addaction name="separator"/>
<addaction name="actionBack"/>
<addaction name="actionForward"/>
<addaction name="separator"/>
<addaction name="actionMatch_Bracket"/>
<addaction name="separator"/>
<addaction name="actionAdd_bookmark"/>
<addaction name="actionRemove_Bookmark"/>
<addaction name="actionModify_Bookmark_Description"/>
<addaction name="separator"/>
<addaction name="actionReformat_Code"/>
</widget>
<widget class="QMenu" name="menuWindow">
<property name="title">
<string>Window</string>
</property>
<addaction name="actionClose_All"/>
<addaction name="actionMaximize_Editor"/>
<addaction name="separator"/>
<addaction name="actionNext_Editor"/>
<addaction name="actionPrevious_Editor"/>
</widget>
<widget class="QMenu" name="menuProject">
<property name="title">
<string>Project</string>
</property>
<addaction name="actionProject_New_File"/>
<addaction name="actionNew_Class"/>
<addaction name="actionNew_Header"/>
<addaction name="actionAdd_to_project"/>
<addaction name="actionRemove_from_project"/>
<addaction name="separator"/>
<addaction name="actionProject_Open_Folder_In_Explorer"/>
<addaction name="actionProject_Open_In_Terminal"/>
<addaction name="separator"/>
<addaction name="separator"/>
<addaction name="actionView_Makefile"/>
<addaction name="actionMakeClean"/>
<addaction name="separator"/>
<addaction name="actionProject_options"/>
</widget>
<widget class="QMenu" name="menuHelp">
<property name="title">
<string>Help</string>
</property>
<addaction name="actionWebsite"/>
<addaction name="actionC_Reference"/>
<addaction name="actionC_C_Reference"/>
<addaction name="actionEGE_Manual"/>
<addaction name="actionAbout"/>
</widget>
<widget class="QMenu" name="menuRefactor">
<property name="title">
<string>Refactor</string>
</property>
<addaction name="actionRename_Symbol"/>
</widget>
<widget class="QMenu" name="menuView">
<property name="title">
<string>View</string>
</property>
<widget class="QMenu" name="menuTool_Windows">
<property name="title">
<string>Tool Panels</string>
</property>
<addaction name="actionProject"/>
<addaction name="actionWatch"/>
<addaction name="actionStructure"/>
<addaction name="actionFiles"/>
<addaction name="actionProblem_Set"/>
<addaction name="separator"/>
<addaction name="actionIssues"/>
<addaction name="actionTools_Output"/>
<addaction name="actionDebug_Window"/>
<addaction name="actionSearch"/>
<addaction name="actionTODO"/>
<addaction name="actionBookmark"/>
<addaction name="actionProblem"/>
</widget>
<addaction name="actionTool_Window_Bars"/>
<addaction name="menuTool_Windows"/>
<addaction name="actionStatus_Bar"/>
</widget>
<widget class="QMenu" name="menuGit">
<property name="title">
<string>Git</string>
</property>
<addaction name="actionGit_Create_Repository"/>
<addaction name="separator"/>
<addaction name="actionGit_Pull"/>
<addaction name="actionGit_Push"/>
<addaction name="actionGit_Fetch"/>
<addaction name="actionGit_Remotes"/>
<addaction name="separator"/>
<addaction name="actionGit_Log"/>
<addaction name="actionGit_Branch"/>
<addaction name="actionGit_Merge"/>
<addaction name="separator"/>
<addaction name="actionGit_Commit"/>
<addaction name="actionGit_Restore"/>
</widget>
<addaction name="menuFile"/>
<addaction name="menuEdit"/>
<addaction name="menuView"/>
<addaction name="menuSearch"/>
<addaction name="menuCode"/>
<addaction name="menuRefactor"/>
<addaction name="menuProject"/>
<addaction name="menuExecute"/>
<addaction name="menuGit"/>
<addaction name="menuTools"/>
<addaction name="menuWindow"/>
<addaction name="menuHelp"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<widget class="QToolBar" name="toolbarMain">
<property name="windowTitle">
<string>Main</string>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
<addaction name="actionNew"/>
<addaction name="actionOpen"/>
<addaction name="actionSave"/>
<addaction name="actionSaveAll"/>
</widget>
<widget class="QToolBar" name="toolbarCode">
<property name="windowTitle">
<string>Code</string>
</property>
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
<addaction name="actionBack"/>
<addaction name="actionForward"/>
<addaction name="separator"/>
<addaction name="actionReformat_Code"/>
</widget>
<widget class="QToolBar" name="toolbarCompile">
<property name="windowTitle">
<string>Compile</string>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
<addaction name="actionCompile"/>
<addaction name="actionRun"/>
<addaction name="actionCompile_Run"/>
<addaction name="actionRebuild"/>
<addaction name="separator"/>
<addaction name="actionRun_Parameters"/>
</widget>
<widget class="QToolBar" name="toolbarDebug">
<property name="windowTitle">
<string>Debug</string>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
<addaction name="actionDebug"/>
<addaction name="actionInterrupt"/>
<addaction name="actionStep_Over"/>
<addaction name="actionStep_Into"/>
<addaction name="actionStep_Out"/>
<addaction name="actionContinue"/>
<addaction name="actionStop_Execution"/>
<addaction name="separator"/>
<addaction name="actionAdd_Watch"/>
</widget>
<widget class="QToolBar" name="toolbarCompilerSet">
<property name="windowTitle">
<string>Compiler Set</string>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
<addaction name="actionCompiler_Options"/>
</widget>
<widget class="QDockWidget" name="dockFiles">
<property name="features">
<set>QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetMovable</set>
</property>
<property name="allowedAreas">
<set>Qt::BottomDockWidgetArea|Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set>
</property>
<property name="windowTitle">
<string>Infos</string>
</property>
<attribute name="dockWidgetArea">
<number>1</number>
</attribute>
<widget class="QTabWidget" name="tabInfos">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@ -85,7 +457,7 @@
<enum>QTabWidget::West</enum>
</property>
<property name="currentIndex">
<number>2</number>
<number>0</number>
</property>
<property name="usesScrollButtons">
<bool>true</bool>
@ -455,88 +827,23 @@
</layout>
</widget>
</widget>
<widget class="QWidget" name="EditorPanel" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QSplitter" name="splitterEditorPanel">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="handleWidth">
<number>1</number>
</property>
<widget class="EditorsTabWidget" name="EditorTabsLeft">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="currentIndex">
<number>-1</number>
</property>
<property name="documentMode">
<bool>true</bool>
</property>
<property name="tabsClosable">
<bool>true</bool>
</property>
<property name="movable">
<bool>true</bool>
</property>
</widget>
<widget class="EditorsTabWidget" name="EditorTabsRight">
<property name="enabled">
<bool>true</bool>
<widget class="QDockWidget" name="dockMessages">
<property name="features">
<set>QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetMovable</set>
</property>
<property name="documentMode">
<bool>true</bool>
<property name="allowedAreas">
<set>Qt::BottomDockWidgetArea|Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set>
</property>
<property name="tabsClosable">
<bool>true</bool>
<property name="windowTitle">
<string>Messages</string>
</property>
<property name="movable">
<bool>true</bool>
</property>
</widget>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<attribute name="dockWidgetArea">
<number>8</number>
</attribute>
<widget class="QTabWidget" name="tabMessages">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@ -545,7 +852,7 @@
<enum>QTabWidget::South</enum>
</property>
<property name="currentIndex">
<number>0</number>
<number>6</number>
</property>
<property name="iconSize">
<size>
@ -674,7 +981,7 @@
<number>0</number>
</property>
<item>
<widget class="QSplitter" name="splitter">
<widget class="QSplitter" name="splitterDebug">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@ -1155,7 +1462,7 @@
<number>11</number>
</property>
<item>
<widget class="QSplitter" name="splitter_2">
<widget class="QSplitter" name="splitterProblem">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@ -1555,331 +1862,6 @@
</widget>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1114</width>
<height>26</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
<property name="title">
<string>File</string>
</property>
<addaction name="actionOpen"/>
<addaction name="actionOpen_Folder"/>
<addaction name="separator"/>
<addaction name="actionSave"/>
<addaction name="actionSaveAs"/>
<addaction name="actionSaveAll"/>
<addaction name="separator"/>
<addaction name="actionClose"/>
<addaction name="actionClose_Project"/>
<addaction name="actionClose_All"/>
<addaction name="separator"/>
<addaction name="actionPrint"/>
<addaction name="separator"/>
<addaction name="actionExit"/>
</widget>
<widget class="QMenu" name="menuTools">
<property name="title">
<string>Tools</string>
</property>
<addaction name="actionOptions"/>
</widget>
<widget class="QMenu" name="menuExecute">
<property name="title">
<string>Execute</string>
</property>
<addaction name="actionCompile"/>
<addaction name="actionRun"/>
<addaction name="actionCompile_Run"/>
<addaction name="actionRebuild"/>
<addaction name="separator"/>
<addaction name="actionRun_Parameters"/>
<addaction name="actionCompiler_Options"/>
<addaction name="separator"/>
<addaction name="actionDebug"/>
<addaction name="actionInterrupt"/>
<addaction name="actionStep_Over"/>
<addaction name="actionStep_Into"/>
<addaction name="actionStep_Out"/>
<addaction name="actionRun_To_Cursor"/>
<addaction name="actionContinue"/>
<addaction name="actionStop_Execution"/>
<addaction name="separator"/>
<addaction name="actionAdd_Watch"/>
<addaction name="actionView_CPU_Window"/>
</widget>
<widget class="QMenu" name="menuEdit">
<property name="title">
<string>Edit</string>
</property>
<addaction name="actionUndo"/>
<addaction name="actionRedo"/>
<addaction name="separator"/>
<addaction name="actionCut"/>
<addaction name="actionCopy"/>
<addaction name="actionPaste"/>
<addaction name="actionSelectAll"/>
<addaction name="separator"/>
<addaction name="actionIndent"/>
<addaction name="actionUnIndent"/>
<addaction name="separator"/>
<addaction name="actionToggleComment"/>
<addaction name="actionToggle_Block_Comment"/>
<addaction name="separator"/>
<addaction name="actionFoldAll"/>
<addaction name="actionUnfoldAll"/>
<addaction name="separator"/>
<addaction name="actionMove_Selection_Up"/>
<addaction name="actionMove_Selection_Down"/>
<addaction name="actionDelete_Line"/>
<addaction name="actionDuplicate_Line"/>
<addaction name="actionDelete_Word"/>
<addaction name="actionDelete_Last_Word"/>
<addaction name="actionDelete_to_Word_End"/>
<addaction name="actionDelete_to_BOL"/>
<addaction name="actionDelete_to_EOL"/>
</widget>
<widget class="QMenu" name="menuSearch">
<property name="title">
<string>Search</string>
</property>
<addaction name="actionFind"/>
<addaction name="actionFind_in_files"/>
<addaction name="actionReplace"/>
<addaction name="separator"/>
<addaction name="actionFind_Next"/>
<addaction name="actionFind_Previous"/>
</widget>
<widget class="QMenu" name="menuCode">
<property name="title">
<string>Code</string>
</property>
<addaction name="separator"/>
<addaction name="actionBack"/>
<addaction name="actionForward"/>
<addaction name="separator"/>
<addaction name="actionMatch_Bracket"/>
<addaction name="separator"/>
<addaction name="actionAdd_bookmark"/>
<addaction name="actionRemove_Bookmark"/>
<addaction name="actionModify_Bookmark_Description"/>
<addaction name="separator"/>
<addaction name="actionReformat_Code"/>
</widget>
<widget class="QMenu" name="menuWindow">
<property name="title">
<string>Window</string>
</property>
<addaction name="actionClose_All"/>
<addaction name="actionMaximize_Editor"/>
<addaction name="separator"/>
<addaction name="actionNext_Editor"/>
<addaction name="actionPrevious_Editor"/>
</widget>
<widget class="QMenu" name="menuProject">
<property name="title">
<string>Project</string>
</property>
<addaction name="actionProject_New_File"/>
<addaction name="actionNew_Class"/>
<addaction name="actionNew_Header"/>
<addaction name="actionAdd_to_project"/>
<addaction name="actionRemove_from_project"/>
<addaction name="separator"/>
<addaction name="actionProject_Open_Folder_In_Explorer"/>
<addaction name="actionProject_Open_In_Terminal"/>
<addaction name="separator"/>
<addaction name="separator"/>
<addaction name="actionView_Makefile"/>
<addaction name="actionMakeClean"/>
<addaction name="separator"/>
<addaction name="actionProject_options"/>
</widget>
<widget class="QMenu" name="menuHelp">
<property name="title">
<string>Help</string>
</property>
<addaction name="actionWebsite"/>
<addaction name="actionC_Reference"/>
<addaction name="actionC_C_Reference"/>
<addaction name="actionEGE_Manual"/>
<addaction name="actionAbout"/>
</widget>
<widget class="QMenu" name="menuRefactor">
<property name="title">
<string>Refactor</string>
</property>
<addaction name="actionRename_Symbol"/>
</widget>
<widget class="QMenu" name="menuView">
<property name="title">
<string>View</string>
</property>
<widget class="QMenu" name="menuTool_Windows">
<property name="title">
<string>Tool Panels</string>
</property>
<addaction name="actionProject"/>
<addaction name="actionWatch"/>
<addaction name="actionStructure"/>
<addaction name="actionFiles"/>
<addaction name="actionProblem_Set"/>
<addaction name="separator"/>
<addaction name="actionIssues"/>
<addaction name="actionTools_Output"/>
<addaction name="actionDebug_Window"/>
<addaction name="actionSearch"/>
<addaction name="actionTODO"/>
<addaction name="actionBookmark"/>
<addaction name="actionProblem"/>
</widget>
<addaction name="actionTool_Window_Bars"/>
<addaction name="menuTool_Windows"/>
<addaction name="actionStatus_Bar"/>
</widget>
<widget class="QMenu" name="menuGit">
<property name="title">
<string>Git</string>
</property>
<addaction name="actionGit_Create_Repository"/>
<addaction name="separator"/>
<addaction name="actionGit_Pull"/>
<addaction name="actionGit_Push"/>
<addaction name="actionGit_Fetch"/>
<addaction name="actionGit_Remotes"/>
<addaction name="separator"/>
<addaction name="actionGit_Log"/>
<addaction name="actionGit_Branch"/>
<addaction name="actionGit_Merge"/>
<addaction name="separator"/>
<addaction name="actionGit_Commit"/>
<addaction name="actionGit_Restore"/>
</widget>
<addaction name="menuFile"/>
<addaction name="menuEdit"/>
<addaction name="menuView"/>
<addaction name="menuSearch"/>
<addaction name="menuCode"/>
<addaction name="menuRefactor"/>
<addaction name="menuProject"/>
<addaction name="menuExecute"/>
<addaction name="menuGit"/>
<addaction name="menuTools"/>
<addaction name="menuWindow"/>
<addaction name="menuHelp"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<widget class="QToolBar" name="toolbarMain">
<property name="windowTitle">
<string>Main</string>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
<addaction name="actionNew"/>
<addaction name="actionOpen"/>
<addaction name="actionSave"/>
<addaction name="actionSaveAll"/>
</widget>
<widget class="QToolBar" name="toolbarCode">
<property name="windowTitle">
<string>Code</string>
</property>
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
<addaction name="actionBack"/>
<addaction name="actionForward"/>
<addaction name="separator"/>
<addaction name="actionReformat_Code"/>
</widget>
<widget class="QToolBar" name="toolbarCompile">
<property name="windowTitle">
<string>Compile</string>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
<addaction name="actionCompile"/>
<addaction name="actionRun"/>
<addaction name="actionCompile_Run"/>
<addaction name="actionRebuild"/>
<addaction name="separator"/>
<addaction name="actionRun_Parameters"/>
</widget>
<widget class="QToolBar" name="toolbarDebug">
<property name="windowTitle">
<string>Debug</string>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
<addaction name="actionDebug"/>
<addaction name="actionInterrupt"/>
<addaction name="actionStep_Over"/>
<addaction name="actionStep_Into"/>
<addaction name="actionStep_Out"/>
<addaction name="actionContinue"/>
<addaction name="actionStop_Execution"/>
<addaction name="separator"/>
<addaction name="actionAdd_Watch"/>
</widget>
<widget class="QToolBar" name="toolbarCompilerSet">
<property name="windowTitle">
<string>Compiler Set</string>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
<addaction name="actionCompiler_Options"/>
</widget>
<action name="actionNew">
<property name="icon">
<iconset>