ui: Added option for hiding dock widge title bars to view menu
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
QToolTip {
|
||||
background-color: #E0E0E0;
|
||||
color: black;
|
||||
font-size: <setting:font_size>pt;
|
||||
}
|
||||
@@ -79,6 +79,7 @@ bool MouseReleaseFilter::eventFilter(QObject* obj, QEvent* event)
|
||||
}
|
||||
|
||||
QtMainWindow::QtMainWindow()
|
||||
: m_showDockWidgetTitleBars(true)
|
||||
{
|
||||
setObjectName("QtMainWindow");
|
||||
setCentralWidget(nullptr);
|
||||
@@ -126,8 +127,13 @@ void QtMainWindow::addView(View* view)
|
||||
QDockWidget* dock = new QDockWidget(tr(view->getName().c_str()), this);
|
||||
dock->setWidget(QtViewWidgetWrapper::getWidgetOfView(view));
|
||||
dock->setObjectName(QString::fromStdString("Dock" + view->getName()));
|
||||
//dock->setFeatures(QDockWidget::NoDockWidgetFeatures);
|
||||
//dock->setTitleBarWidget(new QWidget());
|
||||
|
||||
if (!m_showDockWidgetTitleBars)
|
||||
{
|
||||
dock->setFeatures(QDockWidget::NoDockWidgetFeatures);
|
||||
dock->setTitleBarWidget(new QWidget());
|
||||
}
|
||||
|
||||
addDockWidget(Qt::TopDockWidgetArea, dock);
|
||||
|
||||
QtViewToggle* toggle = new QtViewToggle(view, this);
|
||||
@@ -181,6 +187,7 @@ void QtMainWindow::loadLayout()
|
||||
{
|
||||
showMaximized();
|
||||
}
|
||||
setShowDockWidgetTitleBars(settings.value("showTitleBars", true).toBool());
|
||||
settings.endGroup();
|
||||
|
||||
this->restoreState(settings.value("DOCK_LOCATIONS").toByteArray());
|
||||
@@ -202,6 +209,7 @@ void QtMainWindow::saveLayout()
|
||||
settings.setValue("size", size());
|
||||
settings.setValue("position", pos());
|
||||
}
|
||||
settings.setValue("showTitleBars", m_showDockWidgetTitleBars);
|
||||
settings.endGroup();
|
||||
|
||||
settings.setValue("DOCK_LOCATIONS", this->saveState());
|
||||
@@ -401,22 +409,22 @@ void QtMainWindow::saveAsProject()
|
||||
|
||||
void QtMainWindow::undo()
|
||||
{
|
||||
MessageUndo().dispatch();
|
||||
MessageUndo().dispatch();
|
||||
}
|
||||
|
||||
void QtMainWindow::redo()
|
||||
{
|
||||
MessageRedo().dispatch();
|
||||
MessageRedo().dispatch();
|
||||
}
|
||||
|
||||
void QtMainWindow::zoomIn()
|
||||
{
|
||||
MessageZoom(true).dispatch();
|
||||
MessageZoom(true).dispatch();
|
||||
}
|
||||
|
||||
void QtMainWindow::zoomOut()
|
||||
{
|
||||
MessageZoom(false).dispatch();
|
||||
MessageZoom(false).dispatch();
|
||||
}
|
||||
|
||||
void QtMainWindow::switchColorScheme()
|
||||
@@ -473,13 +481,13 @@ void QtMainWindow::setupProjectMenu()
|
||||
|
||||
for (int i = 0; i < ApplicationSettings::MaximalAmountOfRecentProjects; ++i)
|
||||
{
|
||||
m_recentProjectAction[i] = new QAction(this);
|
||||
m_recentProjectAction[i]->setVisible(false);
|
||||
connect(m_recentProjectAction[i], SIGNAL(triggered()),
|
||||
this, SLOT(openRecentProject()));
|
||||
recentProjectMenu->addAction(m_recentProjectAction[i]);
|
||||
}
|
||||
updateRecentProjectMenu();
|
||||
m_recentProjectAction[i] = new QAction(this);
|
||||
m_recentProjectAction[i]->setVisible(false);
|
||||
connect(m_recentProjectAction[i], SIGNAL(triggered()),
|
||||
this, SLOT(openRecentProject()));
|
||||
recentProjectMenu->addAction(m_recentProjectAction[i]);
|
||||
}
|
||||
updateRecentProjectMenu();
|
||||
|
||||
menu->addMenu(recentProjectMenu);
|
||||
|
||||
@@ -491,10 +499,10 @@ void QtMainWindow::setupProjectMenu()
|
||||
void QtMainWindow::openRecentProject()
|
||||
{
|
||||
QAction *action = qobject_cast<QAction *>(sender());
|
||||
if (action)
|
||||
{
|
||||
openProject(action->data().toString());
|
||||
}
|
||||
if (action)
|
||||
{
|
||||
openProject(action->data().toString());
|
||||
}
|
||||
}
|
||||
|
||||
void QtMainWindow::updateRecentProjectMenu()
|
||||
@@ -521,6 +529,11 @@ void QtMainWindow::setWindowSettingsPath(const std::string& windowSettingsPath)
|
||||
m_windowSettingsPath = windowSettingsPath;
|
||||
}
|
||||
|
||||
void QtMainWindow::toggleShowDockWidgetTitleBars()
|
||||
{
|
||||
setShowDockWidgetTitleBars(!m_showDockWidgetTitleBars);
|
||||
}
|
||||
|
||||
void QtMainWindow::setupEditMenu()
|
||||
{
|
||||
QMenu *menu = new QMenu(tr("&Edit"), this);
|
||||
@@ -551,6 +564,14 @@ void QtMainWindow::setupViewMenu()
|
||||
QMenu *menu = new QMenu(tr("&View"), this);
|
||||
menuBar()->addMenu(menu);
|
||||
|
||||
m_showTitleBarsAction = new QAction("Show Title Bars", this);
|
||||
m_showTitleBarsAction->setCheckable(true);
|
||||
m_showTitleBarsAction->setChecked(m_showDockWidgetTitleBars);
|
||||
connect(m_showTitleBarsAction, SIGNAL(triggered()), this, SLOT(toggleShowDockWidgetTitleBars()));
|
||||
menu->addAction(m_showTitleBarsAction);
|
||||
|
||||
menu->addSeparator();
|
||||
|
||||
m_viewSeparator = menu->addSeparator();
|
||||
|
||||
menu->addAction(tr("Larger font"), this, SLOT(zoomIn()), QKeySequence::ZoomIn);
|
||||
@@ -606,3 +627,27 @@ QtMainWindow::DockWidget* QtMainWindow::getDockWidgetForView(View* view)
|
||||
LOG_ERROR("DockWidget was not found for view.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void QtMainWindow::setShowDockWidgetTitleBars(bool showTitleBars)
|
||||
{
|
||||
m_showDockWidgetTitleBars = showTitleBars;
|
||||
|
||||
if (m_showTitleBarsAction)
|
||||
{
|
||||
m_showTitleBarsAction->setChecked(showTitleBars);
|
||||
}
|
||||
|
||||
for (DockWidget& dock : m_dockWidgets)
|
||||
{
|
||||
if (showTitleBars)
|
||||
{
|
||||
dock.widget->setFeatures(QDockWidget::AllDockWidgetFeatures);
|
||||
dock.widget->setTitleBarWidget(nullptr);
|
||||
}
|
||||
else
|
||||
{
|
||||
dock.widget->setFeatures(QDockWidget::NoDockWidgetFeatures);
|
||||
dock.widget->setTitleBarWidget(new QWidget());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,6 +113,9 @@ public slots:
|
||||
|
||||
static void setWindowSettingsPath(const std::string& windowSettingsPath);
|
||||
|
||||
private slots:
|
||||
void toggleShowDockWidgetTitleBars();
|
||||
|
||||
private:
|
||||
struct DockWidget
|
||||
{
|
||||
@@ -132,10 +135,14 @@ private:
|
||||
|
||||
DockWidget* getDockWidgetForView(View* view);
|
||||
|
||||
void setShowDockWidgetTitleBars(bool showTitleBars);
|
||||
|
||||
std::vector<DockWidget> m_dockWidgets;
|
||||
QMenu* m_viewMenu;
|
||||
QAction* m_viewSeparator;
|
||||
QAction** m_recentProjectAction;
|
||||
QAction* m_showTitleBarsAction;
|
||||
bool m_showDockWidgetTitleBars;
|
||||
|
||||
std::shared_ptr<QtApplicationSettingsScreen> m_applicationSettingsScreen;
|
||||
std::shared_ptr<QtStartScreen> m_startScreen;
|
||||
|
||||
Reference in New Issue
Block a user