[graphics/krita] libs/ui: Popup Palette: Add bottom bar toggle
Dmitry Kazakov
null at kde.org
Tue Jul 6 09:44:48 BST 2021
Git commit 3831838599266c95f136645851672ff2d0f3a65f by Dmitry Kazakov, on behalf of Alan North.
Committed on 05/07/2021 at 07:20.
Pushed by dkazakov into branch 'master'.
Popup Palette: Add bottom bar toggle
GUI:
M +10 -0 libs/ui/kis_config.cc
M +3 -0 libs/ui/kis_config.h
M +24 -3 libs/ui/kis_popup_palette.cpp
M +4 -2 libs/ui/kis_popup_palette.h
https://invent.kde.org/graphics/krita/commit/3831838599266c95f136645851672ff2d0f3a65f
diff --git a/libs/ui/kis_config.cc b/libs/ui/kis_config.cc
index 4e9f6cb638..55882d2ba3 100644
--- a/libs/ui/kis_config.cc
+++ b/libs/ui/kis_config.cc
@@ -2136,6 +2136,16 @@ void KisConfig::setShowBrushHud(bool value)
m_cfg.writeEntry("showBrushHud", value);
}
+bool KisConfig::showPaletteBottomBar(bool defaultValue) const
+{
+ return defaultValue ? true : m_cfg.readEntry("showPaletteBottomBar", true);
+}
+
+void KisConfig::setShowPaletteBottomBar(bool value)
+{
+ m_cfg.writeEntry("showPaletteBottomBar", value);
+}
+
QString KisConfig::brushHudSetting(bool defaultValue) const
{
QString defaultDoc = "<!DOCTYPE hud_properties>\n<hud_properties>\n <version value=\"1\" type=\"value\"/>\n <paintbrush>\n <properties_list type=\"array\">\n <item_0 value=\"size\" type=\"value\"/>\n <item_1 value=\"opacity\" type=\"value\"/>\n <item_2 value=\"angle\" type=\"value\"/>\n </properties_list>\n </paintbrush>\n <colorsmudge>\n <properties_list type=\"array\">\n <item_0 value=\"size\" type=\"value\"/>\n <item_1 value=\"opacity\" type=\"value\"/>\n <item_2 value=\"smudge_mode\" type=\"value\"/>\n <item_3 value=\"smudge_length\" type=\"value\"/>\n <item_4 value=\"smudge_color_rate\" type=\"value\"/>\n </properties_list>\n </colorsmudge>\n <sketchbrush>\n <properties_list type=\"array\">\n <item_0 value=\"opacity\" type=\"value\"/>\n <item_1 value=\"size\" type=\"value\"/>\n </properties_list>\n </sketchbrush>\n <hairybrush>\n <properties_list type=\"array\">\n <item_0 value=\"size\" type=\"value\"/>\n <item_1 value=\"opacity\" type=\"value\"/>\n </properties_list>\n </hairybrush>\n <experimentbrush>\n <properties_list type=\"array\">\n <item_0 value=\"opacity\" type=\"value\"/>\n <item_1 value=\"shape_windingfill\" type=\"value\"/>\n </properties_list>\n </experimentbrush>\n <spraybrush>\n <properties_list type=\"array\">\n <item_0 value=\"size\" type=\"value\"/>\n <item_1 value=\"opacity\" type=\"value\"/>\n <item_2 value=\"spray_particlecount\" type=\"value\"/>\n <item_3 value=\"spray_density\" type=\"value\"/>\n </properties_list>\n </spraybrush>\n <hatchingbrush>\n <properties_list type=\"array\">\n <item_0 value=\"size\" type=\"value\"/>\n <item_1 value=\"opacity\" type=\"value\"/>\n <item_2 value=\"hatching_angle\" type=\"value\"/>\n <item_3 value=\"hatching_thickness\" type=\"value\"/>\n <item_4 value=\"hatching_separation\" type=\"value\"/>\n </properties_list>\n </hatchingbrush>\n <gridbrush>\n <properties_list type=\"array\">\n <item_0 value=\"size\" type=\"value\"/>\n <item_1 value=\"opacity\" type=\"value\"/>\n <item_2 value=\"grid_divisionlevel\" type=\"value\"/>\n </properties_list>\n </gridbrush>\n <curvebrush>\n <properties_list type=\"array\">\n <item_0 value=\"opacity\" type=\"value\"/>\n <item_1 value=\"curve_historysize\" type=\"value\"/>\n <item_2 value=\"curve_linewidth\" type=\"value\"/>\n <item_3 value=\"curve_lineopacity\" type=\"value\"/>\n <item_4 value=\"curve_connectionline\" type=\"value\"/>\n </properties_list>\n </curvebrush>\n <dynabrush>\n <properties_list type=\"array\">\n <item_0 value=\"dyna_diameter\" type=\"value\"/>\n <item_1 value=\"opacity\" type=\"value\"/>\n <item_2 value=\"dyna_mass\" type=\"value\"/>\n <item_3 value=\"dyna_drag\" type=\"value\"/>\n </properties_list>\n </dynabrush>\n <particlebrush>\n <properties_list type=\"array\">\n <item_0 value=\"opacity\" type=\"value\"/>\n <item_1 value=\"particle_particles\" type=\"value\"/>\n <item_2 value=\"particle_opecityweight\" type=\"value\"/>\n <item_3 value=\"particle_iterations\" type=\"value\"/>\n </properties_list>\n </particlebrush>\n <duplicate>\n <properties_list type=\"array\">\n <item_0 value=\"size\" type=\"value\"/>\n <item_1 value=\"opacity\" type=\"value\"/>\n <item_2 value=\"clone_healing\" type=\"value\"/>\n <item_3 value=\"clone_movesource\" type=\"value\"/>\n </properties_list>\n </duplicate>\n <deformbrush>\n <properties_list type=\"array\">\n <item_0 value=\"size\" type=\"value\"/>\n <item_1 value=\"opacity\" type=\"value\"/>\n <item_2 value=\"deform_amount\" type=\"value\"/>\n <item_3 value=\"deform_mode\" type=\"value\"/>\n </properties_list>\n </deformbrush>\n <tangentnormal>\n <properties_list type=\"array\">\n <item_0 value=\"size\" type=\"value\"/>\n <item_1 value=\"opacity\" type=\"value\"/>\n </properties_list>\n </tangentnormal>\n <filter>\n <properties_list type=\"array\">\n <item_0 value=\"size\" type=\"value\"/>\n <item_1 value=\"opacity\" type=\"value\"/>\n </properties_list>\n </filter>\n <roundmarker>\n <properties_list type=\"array\">\n <item_0 value=\"opacity\" type=\"value\"/>\n <item_1 value=\"size\" type=\"value\"/>\n </properties_list>\n </roundmarker>\n</hud_properties>\n";
diff --git a/libs/ui/kis_config.h b/libs/ui/kis_config.h
index efd5e5e2d9..f38cd3a63d 100644
--- a/libs/ui/kis_config.h
+++ b/libs/ui/kis_config.h
@@ -591,6 +591,9 @@ public:
bool showBrushHud(bool defaultValue = false) const;
void setShowBrushHud(bool value);
+
+ bool showPaletteBottomBar(bool defaultValue = false) const;
+ void setShowPaletteBottomBar(bool value);
QString brushHudSetting(bool defaultValue = false) const;
void setBrushHudSetting(const QString &value) const;
diff --git a/libs/ui/kis_popup_palette.cpp b/libs/ui/kis_popup_palette.cpp
index bbd75eae27..d66b132227 100644
--- a/libs/ui/kis_popup_palette.cpp
+++ b/libs/ui/kis_popup_palette.cpp
@@ -135,6 +135,12 @@ KisPopupPalette::KisPopupPalette(KisViewManager* viewManager, KisCoordinatesConv
connect(m_brushHudButton, SIGNAL(toggled(bool)), SLOT(showHudWidget(bool)));
+ m_bottomBarWidget = new QWidget(this);
+
+ m_bottomBarButton = new KisRoundHudButton(this);
+ m_bottomBarButton->setCheckable(true);
+
+ connect( m_bottomBarButton, SIGNAL(toggled(bool)), SLOT(showBottomBarWidget(bool)));
// add some stuff below the pop-up palette that will make it easier to use for tablet people
@@ -146,10 +152,10 @@ KisPopupPalette::KisPopupPalette(KisViewManager* viewManager, KisCoordinatesConv
gLayout->addItem(m_mainArea, 0, 0); // this should push the box to the bottom
gLayout->setColumnMinimumWidth(1, BRUSH_HUD_MARGIN);
gLayout->addWidget(m_brushHud, 0, 2);
+ gLayout->addWidget(m_bottomBarWidget, 2, 0);
- QHBoxLayout* hLayout = new QHBoxLayout();
- gLayout->addItem(hLayout, 1, 0);
-
+ QHBoxLayout* hLayout = new QHBoxLayout(m_bottomBarWidget);
+
mirrorMode = new KisHighlightedToolButton(this);
mirrorMode->setFixedSize(35, 35);
@@ -225,6 +231,7 @@ KisPopupPalette::KisPopupPalette(KisViewManager* viewManager, KisCoordinatesConv
// Load configuration..
KisConfig cfg(true);
m_brushHudButton->setChecked(cfg.showBrushHud());
+ m_bottomBarButton->setChecked(cfg.showPaletteBottomBar());
}
void KisPopupPalette::slotConfigurationChanged()
@@ -294,6 +301,8 @@ void KisPopupPalette::reconfigure()
m_brushHud->setFixedHeight(int(m_popupPaletteSize));
+ m_bottomBarButton->setGeometry(m_popupPaletteSize - 3.4 * auxButtonSize, m_popupPaletteSize - auxButtonSize,
+ auxButtonSize, auxButtonSize);
m_tagsButton->setGeometry(m_popupPaletteSize - 2.2 * auxButtonSize, m_popupPaletteSize - auxButtonSize,
auxButtonSize, auxButtonSize);
m_brushHudButton->setGeometry(m_popupPaletteSize - 1.0 * auxButtonSize, m_popupPaletteSize - auxButtonSize,
@@ -385,6 +394,7 @@ void KisPopupPalette::slotUpdateIcons()
zoomToOneHundredPercentButton->setIcon(m_actionCollection->action("zoom_to_100pct")->icon());
m_brushHud->updateIcons();
m_tagsButton->setIcon(KisIconUtils::loadIcon("tag"));
+ m_bottomBarButton->setOnOffIcons(KisIconUtils::loadIcon("arrow-up"), KisIconUtils::loadIcon("arrow-down"));
m_brushHudButton->setOnOffIcons(KisIconUtils::loadIcon("arrow-left"), KisIconUtils::loadIcon("arrow-right"));
}
@@ -402,6 +412,16 @@ void KisPopupPalette::showHudWidget(bool visible)
cfg.setShowBrushHud(visible);
}
+void KisPopupPalette::showBottomBarWidget(bool visible)
+{
+ const bool reallyVisible = visible && m_bottomBarButton->isChecked();
+
+ m_bottomBarWidget->setVisible(reallyVisible);
+
+ KisConfig cfg(false);
+ cfg.setShowPaletteBottomBar(visible);
+}
+
void KisPopupPalette::setParent(QWidget *parent) {
QWidget::setParent(parent);
}
@@ -826,6 +846,7 @@ void KisPopupPalette::showEvent(QShowEvent *event)
}
m_brushHud->setVisible(m_brushHudButton->isChecked());
+ m_bottomBarWidget->setVisible(m_bottomBarButton->isChecked());
QWidget::showEvent(event);
}
diff --git a/libs/ui/kis_popup_palette.h b/libs/ui/kis_popup_palette.h
index a30dc1b317..35817a4cb9 100644
--- a/libs/ui/kis_popup_palette.h
+++ b/libs/ui/kis_popup_palette.h
@@ -116,6 +116,7 @@ private:
QSpacerItem *m_mainArea {0};
KisBrushHud *m_brushHud {0};
+ QWidget* m_bottomBarWidget {0};
float m_popupPaletteSize {385.0};
float m_colorHistoryInnerRadius {72.0};
qreal m_colorHistoryOuterRadius {92.0};
@@ -125,14 +126,14 @@ private:
qreal m_presetRingMargin {3.0};
KisRoundHudButton *m_tagsButton {0};
+ KisRoundHudButton *m_bottomBarButton {0};
KisRoundHudButton *m_brushHudButton {0};
QRectF m_canvasRotationIndicatorRect;
QRectF m_resetCanvasRotationIndicatorRect;
bool m_isOverCanvasRotationIndicator {false};
bool m_isRotatingCanvasIndicator {false};
bool m_isZoomingCanvas {false};
-
-
+
KisHighlightedToolButton *mirrorMode {0};
KisHighlightedToolButton *canvasOnlyButton {0};
QPushButton *zoomToOneHundredPercentButton {0};
@@ -171,6 +172,7 @@ private Q_SLOTS:
void slotHide() { setVisible(false); }
void slotShowTagsPopup();
void showHudWidget(bool visible);
+ void showBottomBarWidget(bool visible);
void slotZoomToOneHundredPercentClicked();
void slotZoomSliderChanged(int zoom);
More information about the kde-doc-english
mailing list