Added: menu to hide toolbar buttons, Name Editor button and missing icons

This commit is contained in:
justburner 2022-08-22 04:02:43 +01:00 committed by manongjohn
parent fac71c59d7
commit 7354a9d4b1
6 changed files with 187 additions and 8 deletions

View file

@ -4,6 +4,7 @@
#define PALETTEVIEWER_H
#include "paletteviewergui.h"
#include "saveloadqsettings.h"
#include "toonz/tpalettehandle.h"
#include "toonz/tapplication.h"
@ -41,7 +42,7 @@ class TXsheetHandle;
// PaletteViewer
//-----------------------------------------------------------------------------
class DVAPI PaletteViewer final : public QFrame {
class DVAPI PaletteViewer final : public QFrame, public SaveLoadQSettings {
Q_OBJECT
public:
@ -50,7 +51,16 @@ public:
bool hasPasteColors = true);
~PaletteViewer();
const TPaletteHandle *getPaletteHandle() const { return m_paletteHandle; }
enum ToolbarButtons : int //! Toolbar buttons to display
{
TBVisKeyframe,
TBVisNewStylePage,
TBVisPaletteGizmo,
TBVisNameEditor,
TBVisTotal
};
TPaletteHandle *getPaletteHandle() const { return m_paletteHandle; }
void setPaletteHandle(TPaletteHandle *paletteHandle);
const TFrameHandle *getFrameHandle() const { return m_frameHandle; }
@ -86,6 +96,10 @@ public:
int geCurrentPageIndex() { return m_currentIndexPage; }
// SaveLoadQSettings
virtual void save(QSettings &settings) const override;
virtual void load(QSettings &settings) override;
protected:
TPaletteHandle *m_paletteHandle;
TFrameHandle *m_frameHandle;
@ -123,6 +137,16 @@ protected:
TApplication *m_app;
StyleNameEditor *m_styleNameEditor;
QAction *m_sharedGizmoAction;
int m_toolbarVisibleOtherParts;
QMultiMap<int, QAction *> m_toolbarParts;
QAction *m_visibleKeysAction;
// QAction *m_visibleNewAction;
QAction *m_visibleGizmoAction;
QAction *m_visibleNameAction;
protected:
void createTabBar();
@ -157,6 +181,8 @@ protected:
void clearStyleSelection();
void applyToolbarPartVisibility(int part, bool visible);
protected slots:
void setPageView(int currentIndexPage);
@ -186,6 +212,10 @@ protected slots:
void onSwitchToPage(int pageIndex);
void onShowNewStyleButtonToggled();
void toggleKeyframeVisibility(bool);
// void toggleNewStylePageVisibility(bool);
void togglePaletteGizmoVisibility(bool);
void toggleNameEditorVisibility(bool);
signals:
void frozenChanged(bool frozen);

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16" height="16" clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
<rect width="20" height="20" fill-opacity="0"/>
<g transform="translate(-2,-2)">
<path d="m4.5 16c-0.398 0-0.779-0.158-1.061-0.439-0.281-0.282-0.439-0.663-0.439-1.061v-9c0-0.828 0.672-1.5 1.5-1.5h3c0.828 0 1.5 0.672 1.5 1.5v1.5h6.5c0.828 0 1.5 0.672 1.5 1.5v6c0 0.398-0.158 0.779-0.439 1.061-0.282 0.281-0.663 0.439-1.061 0.439zm3.5-8v-2.5c0-0.276-0.224-0.5-0.5-0.5h-3c-0.276 0-0.5 0.224-0.5 0.5v9c0 0.133 0.053 0.26 0.146 0.354 0.094 0.093 0.221 0.146 0.354 0.146h11c0.276 0 0.5-0.224 0.5-0.5v-6c0-0.276-0.224-0.5-0.5-0.5z"/>
</g>
<rect x="10" y="2.5" width="1" height="3"/>
<path d="m 13.5,2 c 0.398,0 0.779,0.158 1.061,0.439 C 14.842,2.721 15,3.102 15,3.5 V 7 H 14 V 3.5 C 14,3.367 13.947,3.24 13.854,3.146 13.76,3.053 13.633,3 13.5,3 H 5 V 2 Z"/>
</svg>

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16" height="16" clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
<rect width="20" height="20" fill-opacity="0"/>
<g transform="translate(-2,-2)">
<path d="m7.421 16c-0.269 0-0.528-0.107-0.719-0.298l-3.41-3.41c-0.187-0.187-0.292-0.44-0.292-0.705v-6.087c0-0.828 0.672-1.5 1.5-1.5h11c0.828 0 1.5 0.672 1.5 1.5v9c0 0.398-0.158 0.779-0.439 1.061-0.282 0.281-0.663 0.439-1.061 0.439zm8.579-10.5c0-0.276-0.224-0.5-0.5-0.5h-11c-0.276 0-0.5 0.224-0.5 0.5v5.5h2.972c0.568 0 1.028 0.46 1.028 1.028v2.972h7.5c0.276 0 0.5-0.224 0.5-0.5z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 739 B

View file

@ -474,6 +474,8 @@
<file>icons/dark/actions/16/palette_tab.svg</file>
<file>icons/dark/actions/20/dragpalette.svg</file>
<file>icons/dark/actions/16/palettegizmo.svg</file>
<file>icons/dark/actions/16/new_style.svg</file>
<file>icons/dark/actions/16/new_page.svg</file>
<!-- Titlebars -->
<file>icons/dark/actions/20/pane_table.svg</file>

View file

@ -10,6 +10,7 @@
#include "toonzqt/dvscrollwidget.h"
#include "toonzqt/studiopaletteviewer.h"
#include "toonzqt/styleselection.h"
#include "toonzqt/stylenameeditor.h"
#include "palettedata.h"
// TnzLib includes
@ -106,6 +107,7 @@ PaletteViewer::PaletteViewer(QWidget *parent, PaletteViewType viewType,
, m_frozen(false)
, m_freezePaletteToolButton(0)
, m_lockPaletteToolButton(0)
, m_styleNameEditor(nullptr)
, m_app(0) {
setObjectName("OnePixelMarginFrame");
setFrameStyle(QFrame::StyledPanel);
@ -308,6 +310,38 @@ void PaletteViewer::updateView() {
//-----------------------------------------------------------------------------
void PaletteViewer::save(QSettings &settings) const {
int visibleParts = m_toolbarVisibleOtherParts;
if (m_visibleKeysAction->isChecked()) visibleParts |= 0x01;
// if (m_visibleNewAction->isChecked()) visibleParts |= 0x02;
if (m_visibleGizmoAction->isChecked()) visibleParts |= 0x04;
if (m_visibleNameAction->isChecked()) visibleParts |= 0x08;
settings.setValue("toolbarVisibleMsk", visibleParts);
}
void PaletteViewer::load(QSettings &settings) {
int visibleParts;
QVariant visibleVar = settings.value("toolbarVisibleMsk");
if (visibleVar.canConvert(QVariant::Int)) {
visibleParts = visibleVar.toInt();
} else {
visibleParts = 3; // Show keyframes and new style/page
}
m_visibleKeysAction->setChecked(visibleParts & 0x01);
// m_visibleNewAction->setChecked(visibleParts & 0x02);
m_visibleGizmoAction->setChecked(visibleParts & 0x04);
m_visibleNameAction->setChecked(visibleParts & 0x08);
m_toolbarVisibleOtherParts = visibleParts & ~0x0F; // Reserve
applyToolbarPartVisibility(TBVisKeyframe, visibleParts & 0x01);
// applyToolbarPartVisibility(TBVisNewStylePage, visibleParts & 0x02);
applyToolbarPartVisibility(TBVisPaletteGizmo, visibleParts & 0x04);
applyToolbarPartVisibility(TBVisNameEditor, visibleParts & 0x08);
}
//-----------------------------------------------------------------------------
void PaletteViewer::enableSaveAction(bool enable) {
if (!m_savePaletteToolBar) return;
QList<QAction *> actions;
@ -327,6 +361,33 @@ void PaletteViewer::enableSaveAction(bool enable) {
}
}
//-----------------------------------------------------------------------------
void PaletteViewer::applyToolbarPartVisibility(int part, bool visible) {
assert(m_toolbarParts.contains(part));
for (QAction *action : m_toolbarParts.values(part)) {
action->setVisible(visible);
}
}
//-----------------------------------------------------------------------------
void PaletteViewer::toggleKeyframeVisibility(bool checked) {
applyToolbarPartVisibility(TBVisKeyframe, checked);
}
//void PaletteViewer::toggleNewStylePageVisibility(bool checked) {
// applyToolbarPartVisibility(TBVisNewStylePage, checked);
//}
void PaletteViewer::togglePaletteGizmoVisibility(bool checked) {
applyToolbarPartVisibility(TBVisPaletteGizmo, checked);
}
void PaletteViewer::toggleNameEditorVisibility(bool checked) {
applyToolbarPartVisibility(TBVisNameEditor, checked);
}
//-----------------------------------------------------------------------------
/*! Create tab bar to select palette page.
*/
@ -350,6 +411,9 @@ void PaletteViewer::createPaletteToolBar() {
m_paletteToolBar->setIconSize(QSize(20, 20));
m_paletteToolBar->setLayoutDirection(Qt::LeftToRight);
m_toolbarParts.clear();
// m_toolbarParts.insert(TBVisNewStylePage, addPage);
// QIcon newColorIcon = createQIcon("newstyle");
// QAction* addColor =
// new QAction(newColorIcon, tr("&New Style"), m_paletteToolBar);
@ -358,12 +422,14 @@ void PaletteViewer::createPaletteToolBar() {
// m_paletteToolBar->addAction(addColor);
// m_paletteToolBar->addSeparator();
// m_toolbarParts.insert(TBVisNewStylePage, addColor);
// m_toolbarParts.insert(TBVisNewStylePage, m_paletteToolBar->addSeparator());
// KeyFrame button
if (m_viewType != CLEANUP_PALETTE) {
m_keyFrameButton = new PaletteKeyframeNavigator(m_paletteToolBar);
m_paletteToolBar->addWidget(m_keyFrameButton);
m_paletteToolBar->addSeparator();
m_toolbarParts.insert(TBVisKeyframe, m_paletteToolBar->addWidget(m_keyFrameButton));
m_toolbarParts.insert(TBVisKeyframe, m_paletteToolBar->addSeparator());
m_keyFrameButton->setSelection(m_pageViewer->getSelection());
}
@ -395,8 +461,15 @@ void PaletteViewer::createPaletteToolBar() {
m_paletteToolBar->addSeparator();
CommandManager *cmd = CommandManager::instance();
QAction *gizmo = cmd->getAction("MI_OpenPltGizmo");
m_paletteToolBar->addAction(gizmo);
m_sharedGizmoAction = cmd->getAction("MI_OpenPltGizmo");
// Clone palette gizmo action so visibility can be control
QAction *palGizmo = new DVAction(m_sharedGizmoAction->icon(),
m_sharedGizmoAction->text(), this);
connect(palGizmo, &QAction::triggered,
[&]() { m_sharedGizmoAction->trigger(); });
m_paletteToolBar->addAction(palGizmo);
m_toolbarParts.insert(TBVisPaletteGizmo, palGizmo);
} else if (m_viewType == STUDIO_PALETTE) {
QToolButton *toolButton = new QToolButton(this);
toolButton->setPopupMode(QToolButton::InstantPopup);
@ -420,8 +493,23 @@ void PaletteViewer::createPaletteToolBar() {
SLOT(setChecked(bool)));
m_paletteToolBar->addWidget(toolButton);
m_paletteToolBar->addSeparator();
}
QAction *openStyleNameEditorAct = new QAction(tr("Name Editor"));
openStyleNameEditorAct->setIcon(createQIcon("rename", false, true));
connect(openStyleNameEditorAct, &QAction::triggered, [&]() {
if (!m_styleNameEditor) {
m_styleNameEditor = new StyleNameEditor(this);
m_styleNameEditor->setPaletteHandle(getPaletteHandle());
}
m_styleNameEditor->show();
m_styleNameEditor->raise();
m_styleNameEditor->activateWindow();
});
m_paletteToolBar->addAction(openStyleNameEditorAct);
m_toolbarParts.insert(TBVisNameEditor, openStyleNameEditorAct);
updatePaletteToolBar();
}
@ -510,6 +598,42 @@ void PaletteViewer::createSavePaletteToolBar() {
});
m_viewMode->addAction(m_showStyleIndex);
m_viewMode->addSeparator();
// Add ability to show or hide buttons
QMenu *visibleButtons = new QMenu(tr("Visible Toolbar Buttons"));
m_visibleKeysAction = new QAction(tr("KeyFrame"));
m_visibleKeysAction->setCheckable(true);
m_visibleKeysAction->setChecked(true);
visibleButtons->addAction(m_visibleKeysAction);
// m_visibleNewAction = new QAction(tr("New Style/Page"));
// m_visibleNewAction->setCheckable(true);
// m_visibleNewAction->setChecked(true);
// visibleButtons->addAction(m_visibleNewAction);
m_visibleGizmoAction = new QAction(tr("Palette Gizmo"));
m_visibleGizmoAction->setCheckable(true);
m_visibleGizmoAction->setChecked(true);
visibleButtons->addAction(m_visibleGizmoAction);
m_visibleNameAction = new QAction(tr("Name Editor"));
m_visibleNameAction->setCheckable(true);
m_visibleNameAction->setChecked(true);
visibleButtons->addAction(m_visibleNameAction);
m_viewMode->addMenu(visibleButtons);
if (m_viewType == CLEANUP_PALETTE) m_visibleKeysAction->setVisible(false);
if (m_viewType != LEVEL_PALETTE) m_visibleGizmoAction->setVisible(false);
connect(m_visibleKeysAction, SIGNAL(toggled(bool)), this,
SLOT(toggleKeyframeVisibility(bool)));
// connect(m_visibleNewAction, SIGNAL(toggled(bool)), this,
// SLOT(toggleNewStylePageVisibility(bool)));
connect(m_visibleGizmoAction, SIGNAL(toggled(bool)), this,
SLOT(togglePaletteGizmoVisibility(bool)));
connect(m_visibleNameAction, SIGNAL(toggled(bool)), this,
SLOT(toggleNameEditorVisibility(bool)));
if (m_viewType == STUDIO_PALETTE) {
QIcon savePaletteIcon = createQIcon("save");
QAction *savePalette =

View file

@ -1185,6 +1185,7 @@ void PageViewer::contextMenuEvent(QContextMenuEvent *event) {
QAction *openStyleControlAct = cmd->getAction("MI_OpenStyleControl");
menu.addAction(openStyleControlAct);
QAction *openStyleNameEditorAct = menu.addAction(tr("Name Editor"));
openStyleNameEditorAct->setIcon(createQIcon("rename", false, true));
connect(openStyleNameEditorAct, &QAction::triggered, [&]() {
if (!m_styleNameEditor) {
m_styleNameEditor = new StyleNameEditor(this);
@ -1238,9 +1239,11 @@ void PageViewer::contextMenuEvent(QContextMenuEvent *event) {
if (m_page) {
menu.addSeparator();
QAction *newStyle = menu.addAction(tr("New Style"));
QIcon newStyleIco = createQIcon("new_style", false, true);
QAction *newStyle = menu.addAction(newStyleIco, tr("New Style"));
connect(newStyle, SIGNAL(triggered()), SLOT(addNewColor()));
QAction *newPage = menu.addAction(tr("New Page"));
QIcon newPageIco = createQIcon("new_page", false, true);
QAction *newPage = menu.addAction(newPageIco, tr("New Page"));
connect(newPage, SIGNAL(triggered()), SLOT(addNewPage()));
}