mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-22 18:53:28 +01:00
Qt: make dockwidget title bars optional
This commit is contained in:
parent
0236b994e4
commit
1b2e512179
@ -1,4 +1,4 @@
|
||||
#include "rpcs3_app.h"
|
||||
#include "rpcs3_app.h"
|
||||
|
||||
#include "rpcs3qt/qt_utils.h"
|
||||
|
||||
@ -385,7 +385,7 @@ void rpcs3_app::OnChangeStyleSheetRequest(const QString& path)
|
||||
|
||||
// dock widget
|
||||
"QDockWidget{ background: transparent; color: black; }"
|
||||
"[floating = \"true\"]{ background: white; }"
|
||||
"[floating=\"true\"]{ background: white; }"
|
||||
"QDockWidget::title{ background: #e3e3e3; border: none; padding-top: 0.2em; padding-left: 0.2em; }"
|
||||
"QDockWidget::close-button, QDockWidget::float-button{ background-color: #e3e3e3; }"
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#pragma once
|
||||
#pragma once
|
||||
|
||||
#include <QDockWidget>
|
||||
#include <QStyleOption>
|
||||
@ -6,16 +6,46 @@
|
||||
|
||||
class custom_dock_widget : public QDockWidget
|
||||
{
|
||||
private:
|
||||
std::shared_ptr<QWidget> m_title_bar_widget;
|
||||
bool m_is_title_bar_visible = true;
|
||||
|
||||
public:
|
||||
explicit custom_dock_widget(const QString &title, QWidget *parent = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags())
|
||||
: QDockWidget(title, parent, flags)
|
||||
{
|
||||
m_title_bar_widget.reset(titleBarWidget());
|
||||
|
||||
connect(this, &QDockWidget::topLevelChanged, [this](bool/* topLevel*/)
|
||||
{
|
||||
SetTitleBarVisible(m_is_title_bar_visible);
|
||||
style()->unpolish(this);
|
||||
style()->polish(this);
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
void SetTitleBarVisible(bool visible)
|
||||
{
|
||||
if (visible || isFloating())
|
||||
{
|
||||
if (m_title_bar_widget.get() != titleBarWidget())
|
||||
{
|
||||
setTitleBarWidget(m_title_bar_widget.get());
|
||||
QMargins margins = widget()->contentsMargins();
|
||||
margins.setTop(0);
|
||||
widget()->setContentsMargins(margins);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
setTitleBarWidget(new QWidget());
|
||||
QMargins margins = widget()->contentsMargins();
|
||||
margins.setTop(1);
|
||||
widget()->setContentsMargins(margins);
|
||||
}
|
||||
|
||||
m_is_title_bar_visible = visible;
|
||||
}
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent* event) override
|
||||
|
@ -153,6 +153,7 @@ namespace gui
|
||||
const gui_save mw_logger = gui_save(main_window, "loggerVisible", true);
|
||||
const gui_save mw_gamelist = gui_save(main_window, "gamelistVisible", true);
|
||||
const gui_save mw_toolBarVisible = gui_save(main_window, "toolBarVisible", true);
|
||||
const gui_save mw_titleBarsVisible = gui_save(main_window, "titleBarsVisible", true);
|
||||
const gui_save mw_geometry = gui_save(main_window, "geometry", QByteArray());
|
||||
const gui_save mw_windowState = gui_save(main_window, "windowState", QByteArray());
|
||||
const gui_save mw_mwState = gui_save(main_window, "wwState", QByteArray());
|
||||
|
@ -1145,6 +1145,13 @@ void main_window::RepaintGui()
|
||||
Q_EMIT RequestTrophyManagerRepaint();
|
||||
}
|
||||
|
||||
void main_window::ShowTitleBars(bool show)
|
||||
{
|
||||
m_gameListFrame->SetTitleBarVisible(show);
|
||||
m_debuggerFrame->SetTitleBarVisible(show);
|
||||
m_logFrame->SetTitleBarVisible(show);
|
||||
}
|
||||
|
||||
void main_window::CreateActions()
|
||||
{
|
||||
ui->exitAct->setShortcuts(QKeySequence::Quit);
|
||||
@ -1371,6 +1378,12 @@ void main_window::CreateConnects()
|
||||
guiSettings->SetValue(gui::mw_gamelist, checked);
|
||||
});
|
||||
|
||||
connect(ui->showTitleBarsAct, &QAction::triggered, [=](bool checked)
|
||||
{
|
||||
ShowTitleBars(checked);
|
||||
guiSettings->SetValue(gui::mw_titleBarsVisible, checked);
|
||||
});
|
||||
|
||||
connect(ui->showToolBarAct, &QAction::triggered, [=](bool checked)
|
||||
{
|
||||
ui->toolBar->setVisible(checked);
|
||||
@ -1606,12 +1619,15 @@ void main_window::ConfigureGuiFromSettings(bool configure_all)
|
||||
ui->showGameListAct->setChecked(guiSettings->GetValue(gui::mw_gamelist).toBool());
|
||||
ui->showDebuggerAct->setChecked(guiSettings->GetValue(gui::mw_debugger).toBool());
|
||||
ui->showToolBarAct->setChecked(guiSettings->GetValue(gui::mw_toolBarVisible).toBool());
|
||||
ui->showTitleBarsAct->setChecked(guiSettings->GetValue(gui::mw_titleBarsVisible).toBool());
|
||||
|
||||
m_debuggerFrame->setVisible(ui->showDebuggerAct->isChecked());
|
||||
m_logFrame->setVisible(ui->showLogAct->isChecked());
|
||||
m_gameListFrame->setVisible(ui->showGameListAct->isChecked());
|
||||
ui->toolBar->setVisible(ui->showToolBarAct->isChecked());
|
||||
|
||||
ShowTitleBars(ui->showTitleBarsAct->isChecked());
|
||||
|
||||
ui->showHiddenEntriesAct->setChecked(guiSettings->GetValue(gui::gl_show_hidden).toBool());
|
||||
m_gameListFrame->SetShowHidden(ui->showHiddenEntriesAct->isChecked()); // prevent GetValue in m_gameListFrame->LoadSettings
|
||||
|
||||
|
@ -116,6 +116,7 @@ private:
|
||||
void CreateConnects();
|
||||
void CreateDockWindows();
|
||||
void EnableMenus(bool enabled);
|
||||
void ShowTitleBars(bool show);
|
||||
void InstallPkg(const QString& dropPath = "", bool is_bulk = false);
|
||||
void InstallPup(const QString& dropPath = "");
|
||||
|
||||
|
@ -263,6 +263,7 @@
|
||||
<addaction name="showDebuggerAct"/>
|
||||
<addaction name="showLogAct"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="showTitleBarsAct"/>
|
||||
<addaction name="showToolBarAct"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="showGameListAct"/>
|
||||
@ -956,6 +957,14 @@
|
||||
<string>Add Games</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="showTitleBarsAct">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Show Title Bars</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<resources>
|
||||
|
Loading…
Reference in New Issue
Block a user