hide dock btns option

This commit is contained in:
Zira project 2020-03-04 17:35:29 +05:00
parent 9153fb48c2
commit d17d080005
7 changed files with 90 additions and 0 deletions

View File

@ -26,6 +26,7 @@ INCLUDEPATH += include
SOURCES += \
main.cpp \
src/docktitlebar.cpp \
src/fileiconprovider.cpp \
src/mainwindow.cpp \
src/helper.cpp \
@ -76,6 +77,7 @@ SOURCES += \
src/welcome.cpp
HEADERS += \
include/docktitlebar.h \
include/fileiconprovider.h \
include/mainwindow.h \
include/helper.h \

18
include/docktitlebar.h Normal file
View File

@ -0,0 +1,18 @@
#ifndef DOCKTITLEBAR_H
#define DOCKTITLEBAR_H
#include <QWidget>
class DockTitleBar : public QWidget
{
Q_OBJECT
public:
explicit DockTitleBar(QWidget *parent = nullptr);
QSize sizeHint() const override;
QSize minimumSizeHint() const override;
signals:
public slots:
};
#endif // DOCKTITLEBAR_H

View File

@ -138,6 +138,7 @@ private slots:
void on_actionShowHideSidebar_triggered();
void on_actionShowHideToolbar_triggered();
void on_actionShowHideOutput_triggered();
void on_actionDisplayDockButtons_triggered();
void on_actionQuickAccess_triggered();
void on_actionSettings_triggered();
void on_actionHelpShortcuts_triggered();

19
src/docktitlebar.cpp Normal file
View File

@ -0,0 +1,19 @@
#include "docktitlebar.h"
#include "helper.h"
const int DOCK_TITLE_BAR_SIZE = 5;
DockTitleBar::DockTitleBar(QWidget *parent) : QWidget(parent)
{
}
QSize DockTitleBar::sizeHint() const
{
return QSize(DOCK_TITLE_BAR_SIZE, DOCK_TITLE_BAR_SIZE);
}
QSize DockTitleBar::minimumSizeHint() const
{
return QSize(DOCK_TITLE_BAR_SIZE, DOCK_TITLE_BAR_SIZE);
}

View File

@ -30,6 +30,7 @@
#include "servers.h"
#include "settingsdialog.h"
#include "helpdialog.h"
#include "docktitlebar.h"
const int OUTPUT_TAB_MESSAGES_INDEX = 0;
const int OUTPUT_TAB_HELP_INDEX = 1;
@ -384,6 +385,15 @@ MainWindow::MainWindow(QWidget *parent) :
}
connect(ui->sidebarDockWidget, SIGNAL(dockLocationChanged(Qt::DockWidgetArea)), this, SLOT(sidebarDockLocationChanged(Qt::DockWidgetArea)));
bool showDockButtons = false;
if (settings->get("show_dock_buttons") == "yes") showDockButtons = true;
if (!showDockButtons) {
QWidget * sidebarTitleBarWidget = new DockTitleBar();
ui->sidebarDockWidget->setTitleBarWidget(sidebarTitleBarWidget);
QWidget * outputTitleBarWidget = new DockTitleBar();
ui->outputDockWidget->setTitleBarWidget(outputTitleBarWidget);
}
searchResultsColor = QColor(QString::fromStdString(settings->get("search_results_color")));
outputColor = QColor(QString::fromStdString(settings->get("output_color")));
outputBgColor = QColor(QString::fromStdString(settings->get("output_bg_color")));
@ -588,6 +598,10 @@ void MainWindow::menuViewOnShow()
} else if (action->objectName() == "actionShowHideOutput") {
if (ui->outputDockWidget->isVisible()) action->setChecked(true);
else action->setChecked(false);
} else if (action->objectName() == "actionDisplayDockButtons") {
bool showDockButtons = false;
if (settings->get("show_dock_buttons") == "yes") showDockButtons = true;
action->setChecked(showDockButtons);
}
}
}
@ -1000,6 +1014,31 @@ void MainWindow::on_actionShowHideOutput_triggered()
}
}
void MainWindow::on_actionDisplayDockButtons_triggered()
{
QWidget * oldSidebarTitleBarWidget = ui->sidebarDockWidget->titleBarWidget();
QWidget * oldOutputTitleBarWidget = ui->outputDockWidget->titleBarWidget();
bool showDockButtons = false;
if (settings->get("show_dock_buttons") == "yes") showDockButtons = true;
std::unordered_map<std::string, std::string> data;
if (showDockButtons) {
QWidget * sidebarTitleBarWidget = new DockTitleBar();
ui->sidebarDockWidget->setTitleBarWidget(sidebarTitleBarWidget);
QWidget * outputTitleBarWidget = new DockTitleBar();
ui->outputDockWidget->setTitleBarWidget(outputTitleBarWidget);
data["show_dock_buttons"] = "no";
} else {
ui->sidebarDockWidget->setTitleBarWidget(nullptr);
ui->outputDockWidget->setTitleBarWidget(nullptr);
data["show_dock_buttons"] = "yes";
}
settings->change(data);
if (oldSidebarTitleBarWidget != nullptr) oldSidebarTitleBarWidget->deleteLater();
if (oldOutputTitleBarWidget != nullptr) oldOutputTitleBarWidget->deleteLater();
}
void MainWindow::on_actionQuickAccess_triggered()
{
if (!qa->isVisible()) showQAPanel();

View File

@ -102,6 +102,7 @@ Settings::Settings(QObject * parent) : QObject(parent)
{"shortcut_close_app", "Ctrl+Alt+Q"},
{"experimental_mode_enabled", "yes"},
{"spellchecker_enabled", "yes"},
{"show_dock_buttons", "yes"},
{"color_scheme", COLOR_SCHEME_DARK.toStdString()},
{"theme", THEME_DARK.toStdString()},
{"custom_themes_path", ""},

View File

@ -187,6 +187,8 @@
<addaction name="actionShowHideToolbar"/>
<addaction name="actionShowHideOutput"/>
<addaction name="separator"/>
<addaction name="actionDisplayDockButtons"/>
<addaction name="separator"/>
<addaction name="actionQuickAccess"/>
</widget>
<widget class="QMenu" name="menuHelp">
@ -1127,6 +1129,14 @@
<string>Cancel last commit</string>
</property>
</action>
<action name="actionDisplayDockButtons">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>Display Dock Buttons</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>