Hide Panel Titlebars (#41)

* Hide Titlebars

* All panels (except viewers)
This commit is contained in:
Jeremy Bullock 2020-06-04 00:29:27 -06:00 committed by GitHub
parent a65128fbb7
commit 1d744ad16d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 158 additions and 9 deletions

View file

@ -71,6 +71,7 @@ RoomTabWidget::RoomTabWidget(QWidget *parent)
, m_isLocked(LockRoomTabToggle != 0) {
m_renameTextField->hide();
DockingCheck::instance()->setIsEnabled(LockRoomTabToggle != 0);
TApp::instance()->setShowTitleBars(LockRoomTabToggle == 0);
connect(m_renameTextField, SIGNAL(editingFinished()), this,
SLOT(updateTabName()));
}
@ -95,6 +96,19 @@ void RoomTabWidget::swapIndex(int firstIndex, int secondIndex) {
void RoomTabWidget::mousePressEvent(QMouseEvent *event) {
m_renameTextField->hide();
if (event->button() == Qt::LeftButton) {
if (event->modifiers() == (Qt::ControlModifier | Qt::AltModifier)) {
TApp::instance()->setCanHideTitleBars(
!TApp::instance()->getCanHideTitleBars());
bool canHide = TApp::instance()->getCanHideTitleBars();
if (m_isLocked && !canHide) {
TApp::instance()->sendShowTitleBars(true, true);
} else if (m_isLocked && canHide) {
TApp::instance()->sendShowTitleBars(false, true);
} else if (!m_isLocked) {
TApp::instance()->sendShowTitleBars(true, true);
}
return;
}
m_clickedTabIndex = tabAt(event->pos());
if (m_clickedTabIndex < 0) return;
setCurrentIndex(m_clickedTabIndex);
@ -207,6 +221,11 @@ void RoomTabWidget::setIsLocked(bool lock) {
m_isLocked = lock;
LockRoomTabToggle = (lock) ? 1 : 0;
DockingCheck::instance()->setIsEnabled(lock);
if (m_isLocked) {
TApp::instance()->sendShowTitleBars(false);
} else {
TApp::instance()->sendShowTitleBars(true, true);
}
}
//-----------------------------------------------------------------------------

View file

@ -104,6 +104,10 @@ void TPanel::paintEvent(QPaintEvent *e) {
painter.drawRect(dockRect);
}
if (m_floating && !m_panelTitleBar->isVisible()) {
m_panelTitleBar->showTitleBar(true);
}
painter.end();
}
@ -127,6 +131,9 @@ void TPanel::onCloseButtonPressed() {
void TPanel::enterEvent(QEvent *event) {
// Only when Toonz application is active
QWidget *w = qApp->activeWindow();
// if (m_floating) {
// m_panelTitleBar->showTitleBar(true);
//}
if (w) {
// grab the focus, unless a line-edit is focused currently
bool shouldSetFocus = true;
@ -243,10 +250,9 @@ void TPanelTitleBarButton::setPressed(bool pressed) {
void TPanelTitleBarButton::paintEvent(QPaintEvent *event) {
QPainter painter(this);
painter.drawPixmap(0, 0,
m_pressed
? m_pressedPixmap
: m_rollover ? m_rolloverPixmap : m_standardPixmap);
painter.drawPixmap(
0, 0, m_pressed ? m_pressedPixmap : m_rollover ? m_rolloverPixmap
: m_standardPixmap);
painter.end();
}

View file

@ -162,6 +162,9 @@ signals:
void closeButtonPressed();
void doubleClick(QMouseEvent *me);
public slots:
void showTitleBar(bool on) { setVisible(on); }
};
//-----------------------------------------------------------------------------
@ -260,7 +263,8 @@ signals:
//-----------------------------------------------------------------------------
class TPanelFactory {
class TPanelFactory : public QObject {
Q_OBJECT
QString m_panelType;
static QMap<QString, TPanelFactory *> &tableInstance();

View file

@ -2,6 +2,8 @@
#include "tapp.h"
#include "tenv.h"
// Tnz6 includes
#include "cleanupsettingspopup.h"
#include "iocommand.h"
@ -84,6 +86,9 @@ std::pair<double, double> getCurrentDpi() {
} // namespace
TEnv::IntVar ShowTitleBarsWhenLocked("ShowTitleBarsWhenLocked", 0);
TEnv::IntVar CanHideTitleBarsWhenLocked("CanHideTitleBarsWhenLocked", 1);
//=============================================================================
// TApp
//-----------------------------------------------------------------------------
@ -103,7 +108,9 @@ TApp::TApp()
, m_autosaveTimer(0)
, m_autosaveSuspended(false)
, m_isStarting(false)
, m_isPenCloseToTablet(false) {
, m_isPenCloseToTablet(false)
, m_canHideTitleBars(CanHideTitleBarsWhenLocked == 1 ? true : false)
, m_showTitleBars(ShowTitleBarsWhenLocked == 1 ? true : false) {
m_currentScene = new TSceneHandle();
m_currentXsheet = new TXsheetHandle();
m_currentFrame = new TFrameHandle();
@ -207,6 +214,8 @@ TApp::TApp()
UnitParameters::setCurrentDpiGetter(getCurrentDpi);
assert(ret);
if (!m_canHideTitleBars) m_showTitleBars = true;
}
//-----------------------------------------------------------------------------
@ -733,3 +742,36 @@ QString TApp::getCurrentRoomName() const {
//-----------------------------------------------------------------------------
void TApp::showMessage(QString message) { emit(sendMessage(message)); }
//-----------------------------------------------------------------------------
void TApp::sendShowTitleBars(bool on, bool force) {
if (m_canHideTitleBars || force) {
m_showTitleBars = on;
ShowTitleBarsWhenLocked = on ? 1 : 0;
emit(showTitleBars(on));
} else if (!m_canHideTitleBars) {
m_showTitleBars = true;
ShowTitleBarsWhenLocked = 1;
emit(showTitleBars(true));
}
}
//-----------------------------------------------------------------------------
void TApp::setShowTitleBars(bool on) {
if (m_canHideTitleBars) {
m_showTitleBars = on;
ShowTitleBarsWhenLocked = on ? 1 : 0;
} else {
m_showTitleBars = true;
ShowTitleBarsWhenLocked = 1;
}
}
//-----------------------------------------------------------------------------
void TApp::setCanHideTitleBars(bool on) {
m_canHideTitleBars = on;
CanHideTitleBarsWhenLocked = on ? 1 : 0;
}

View file

@ -206,9 +206,16 @@ public:
XsheetViewer *getCurrentXsheetViewer() const { return m_xsheetViewer; }
void showMessage(QString message);
void sendShowTitleBars(bool on, bool force = false);
bool getShowTitleBars() { return m_showTitleBars; }
void setShowTitleBars(bool on);
bool getCanHideTitleBars() { return m_canHideTitleBars; }
void setCanHideTitleBars(bool on);
protected:
bool eventFilter(QObject *obj, QEvent *event) override;
bool m_showTitleBars = true;
bool m_canHideTitleBars = false;
private:
void updateXshLevel();
@ -249,6 +256,7 @@ signals:
// QTBUG-53628.
void tabletLeft();
void sendMessage(QString);
void showTitleBars(bool);
void
activeViewerChanged(); // TODO: put widgets-related stuffs in some new handle

View file

@ -96,6 +96,9 @@ public:
void initialize(TPanel *panel) override {
panel->setWidget(new XsheetViewer(panel));
panel->resize(500, 300);
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
}
} xsheetViewerFactory;
@ -111,6 +114,9 @@ public:
XsheetViewer *xsh = (XsheetViewer *)panel->widget();
xsh->flipOrientation();
panel->resize(500, 300);
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
}
} timelineViewerFactory;
@ -122,7 +128,7 @@ public:
// SchematicSceneViewerFactory
//---------------------------------------------------------
class SchematicSceneViewerFactory final : public QObject, public TPanelFactory {
class SchematicSceneViewerFactory : public TPanelFactory {
public:
SchematicSceneViewerFactory() : TPanelFactory("Schematic") {}
@ -131,6 +137,9 @@ public:
panel->setObjectName(getPanelType());
panel->setWindowTitle(QObject::tr("Schematic"));
panel->setMinimumSize(230, 200);
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
return panel;
}
@ -575,7 +584,9 @@ public:
PaletteViewerPanel *panel = new PaletteViewerPanel(parent);
panel->setObjectName(getPanelType());
panel->setWindowTitle(QObject::tr(("Level Palette")));
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
return panel;
}
@ -648,7 +659,9 @@ public:
StudioPaletteViewerPanel *panel = new StudioPaletteViewerPanel(parent);
panel->setObjectName(getPanelType());
panel->setWindowTitle(QObject::tr("Studio Palette"));
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
return panel;
}
@ -840,6 +853,9 @@ public:
StyleEditorPanel *panel = new StyleEditorPanel(parent);
panel->setObjectName(getPanelType());
panel->setWindowTitle(QObject::tr("Style Editor"));
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
return panel;
}
@ -863,6 +879,9 @@ public:
panel->setFixedWidth(45); // 35
toolbar->setFixedWidth(35);
panel->setWindowTitle(QString(""));
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
}
} toolbarFactory;
@ -885,6 +904,9 @@ public:
TPanel *createPanel(QWidget *parent) override {
TPanel *panel = new CommandBarPanel(parent);
panel->setObjectName(getPanelType());
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
return panel;
}
void initialize(TPanel *panel) override {}
@ -923,6 +945,9 @@ public:
panel->setObjectName(getPanelType());
panel->setWindowTitle(getPanelType());
panel->resize(600, panel->height());
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
return panel;
}
void initialize(TPanel *panel) override { assert(0); }
@ -1036,6 +1061,9 @@ public:
void initialize(TPanel *panel) override {
panel->setWindowTitle(QObject::tr("Tasks"));
panel->setWidget(new TasksViewer(panel));
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
}
} tasksViewerFactory;
@ -1045,6 +1073,9 @@ public:
void initialize(TPanel *panel) override {
panel->setWindowTitle(QObject::tr("Batch Servers"));
panel->setWidget(new BatchServersViewer(panel));
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
}
} batchServersViewerFactory;
@ -1055,6 +1086,9 @@ public:
FileBrowser *browser = new FileBrowser(panel, 0, false, true);
panel->setWidget(browser);
panel->setWindowTitle(QObject::tr("File Browser"));
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
TFilePath currentProjectFolder =
TProjectManager::instance()->getCurrentProjectPath().getParentDir();
browser->setFolder(currentProjectFolder, true);
@ -1072,6 +1106,9 @@ public:
void initialize(TPanel *panel) override {
panel->setWidget(new CastBrowser(panel));
panel->setWindowTitle(QObject::tr("Scene Cast"));
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
}
} castViewerFactory;
@ -1086,6 +1123,9 @@ public:
Filmstrip *filmstrip = new Filmstrip(panel);
panel->setWidget(filmstrip);
panel->setIsMaximizable(false);
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
}
} filmStripFactory;
//=============================================================================
@ -1100,6 +1140,9 @@ public:
ExportPanel *panel = new ExportPanel(parent);
panel->setObjectName(getPanelType());
panel->setWindowTitle(QObject::tr("Export"));
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
return panel;
}
@ -1119,6 +1162,9 @@ public:
void initialize(TPanel *panel) override {
panel->setWidget(new ColorModelViewer(panel));
panel->resize(400, 300);
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
}
} colorModelViewerFactory;
@ -1134,6 +1180,9 @@ public:
FunctionViewerPanel *panel = new FunctionViewerPanel(parent);
panel->setObjectName(getPanelType());
panel->setWindowTitle(QObject::tr("Function Editor"));
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
return panel;
}
@ -1156,6 +1205,9 @@ public:
panel->setWindowTitle(QObject::tr("Message Center"));
panel->setWidget(new TMessageViewer(panel));
panel->setMinimumHeight(80);
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
}
} TMessageViewerFactory;
@ -1173,6 +1225,9 @@ public:
TPanel *createPanel(QWidget *parent) override {
ScriptConsolePanel *panel = new ScriptConsolePanel(parent);
panel->setObjectName(getPanelType());
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
// panel->setWindowTitle(QObject::tr("Function Editor"));
// panel->setMinimumSize(220, 200);
@ -1289,6 +1344,9 @@ public:
void initialize(TPanel *panel) override {
panel->setWidget(new CleanupSettingsPane(panel));
panel->setIsMaximizable(false);
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
}
} cleanupSettingsFactory;
@ -1312,6 +1370,9 @@ public:
panel->setWidget(historyPane);
panel->setWindowTitle(QObject::tr("History"));
panel->setIsMaximizable(false);
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
}
} historyPanelFactory;
@ -1335,6 +1396,9 @@ public:
panel->setWidget(stopMotionController);
panel->setWindowTitle(QObject::tr("Stop Motion Controller"));
panel->setIsMaximizable(false);
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
}
} stopMotionPanelFactory;
@ -1402,6 +1466,9 @@ public:
panel->setWindowTitle(QObject::tr("Fx Settings"));
panel->setMinimumSize(390, 85);
panel->allowMultipleInstances(false);
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
return panel;
}
@ -1437,6 +1504,9 @@ public:
panel->setObjectName(getPanelType());
panel->setWindowTitle(QObject::tr("Vector Guided Drawing Controls"));
panel->setMinimumSize(387, 265);
panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars());
connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(),
SLOT(showTitleBar(bool)));
return panel;
}