Krita Source Code Documentation
Loading...
Searching...
No Matches
KisToolBar::Private Class Reference

Classes

class  IntSetting
 
struct  ToolBarsStateUpdater
 

Public Member Functions

void adjustSeparatorVisibility ()
 
void applyCurrentSettings ()
 
QMenu * contextMenu (const QPoint &globalPos)
 
void customizeButtonPalette (QToolButton *button, bool checked)
 
QAction * findAction (const QString &actionName, KisKXMLGUIClient **client=0) const
 
QString getPositionAsString () const
 
void init (bool readConfig=true, bool isMainToolBar=false)
 
void loadKDESettings ()
 
 Private (KisToolBar *qq)
 
void setLocked (bool locked)
 
void slotAppearanceChanged ()
 
void slotContextAboutToHide ()
 
void slotContextAboutToShow ()
 
void slotContextBottom ()
 
void slotContextIcons ()
 
void slotContextIconSize ()
 
void slotContextLeft ()
 
void slotContextRight ()
 
void slotContextShowText ()
 
void slotContextText ()
 
void slotContextTextRight ()
 
void slotContextTextUnder ()
 
void slotContextTop ()
 
void slotLockToolBars (bool lock)
 
void slotToolButtonToggled (bool checked)
 

Static Public Member Functions

static Qt::ToolBarArea positionFromString (const QString &position)
 
static Qt::ToolButtonStyle toolButtonStyleFromString (const QString &style)
 
static Qt::ToolButtonStyle toolButtonStyleSetting ()
 
static QString toolButtonStyleToString (Qt::ToolButtonStyle)
 

Public Attributes

QList< QAction * > actionsBeingDragged
 
QMenu * context
 
QAction * contextBottom
 
QAction * contextButtonAction
 
QAction * contextButtonTitle
 
QAction * contextIcons
 
QMap< QAction *, int > contextIconSizes
 
QAction * contextLeft
 
KToggleAction * contextLockAction
 
QMenu * contextMode
 
QMenu * contextOrient
 
QAction * contextRight
 
QAction * contextShowText
 
QMenu * contextSize
 
QAction * contextText
 
QAction * contextTextRight
 
QAction * contextTextUnder
 
QAction * contextTop
 
QAction * dragAction
 
QPoint dragStartPosition
 
QAction * dropIndicatorAction
 
IntSetting iconSizeSettings
 
bool isMainToolBar: 1
 
KisToolBarq
 
IntSetting toolButtonStyleSettings
 
bool unlockedMovable: 1
 
QSet< KisKXMLGUIClient * > xmlguiClients
 

Static Public Attributes

static bool s_editable = false
 
static ToolBarsStateUpdater s_toolBarsStateUpdater = {}
 

Detailed Description

Definition at line 87 of file ktoolbar.cpp.

Constructor & Destructor Documentation

◆ Private()

KisToolBar::Private::Private ( KisToolBar * qq)
inline

Definition at line 90 of file ktoolbar.cpp.

91 : q(qq),
92 isMainToolBar(false),
93 unlockedMovable(true),
95 contextMode(0),
96 contextSize(0),
100 contextTop(0),
101 contextLeft(0),
102 contextRight(0),
103 contextBottom(0),
104 contextIcons(0),
106 contextText(0),
110 context(0),
111 dragAction(0)
112 {
113 }
QAction * contextBottom
Definition ktoolbar.cpp:165
QAction * contextLeft
Definition ktoolbar.cpp:163
QAction * contextIcons
Definition ktoolbar.cpp:166
QAction * contextTextUnder
Definition ktoolbar.cpp:169
QAction * contextButtonTitle
Definition ktoolbar.cpp:159
QAction * contextText
Definition ktoolbar.cpp:168
QAction * contextButtonAction
Definition ktoolbar.cpp:161
KToggleAction * contextLockAction
Definition ktoolbar.cpp:170
QAction * contextShowText
Definition ktoolbar.cpp:160
QAction * contextTextRight
Definition ktoolbar.cpp:167
QAction * dropIndicatorAction
Definition ktoolbar.cpp:223
QAction * contextRight
Definition ktoolbar.cpp:164

Member Function Documentation

◆ adjustSeparatorVisibility()

void KisToolBar::Private::adjustSeparatorVisibility ( )

Definition at line 443 of file ktoolbar.cpp.

444{
445 bool visibleNonSeparator = false;
446 int separatorToShow = -1;
447
448 for (int index = 0; index < q->actions().count(); ++index) {
449 QAction *action = q->actions()[ index ];
450 if (action->isSeparator()) {
451 if (visibleNonSeparator) {
452 separatorToShow = index;
453 visibleNonSeparator = false;
454 } else {
455 action->setVisible(false);
456 }
457 } else if (!visibleNonSeparator) {
458 if (action->isVisible()) {
459 visibleNonSeparator = true;
460 if (separatorToShow != -1) {
461 q->actions()[ separatorToShow ]->setVisible(true);
462 separatorToShow = -1;
463 }
464 }
465 }
466 }
467
468 if (separatorToShow != -1) {
469 q->actions()[ separatorToShow ]->setVisible(false);
470 }
471}

◆ applyCurrentSettings()

void KisToolBar::Private::applyCurrentSettings ( )

Definition at line 544 of file ktoolbar.cpp.

545{
546 //qDebug() << q->objectName() << "iconSizeSettings:" << iconSizeSettings.toString() << "->" << iconSizeSettings.currentValue();
547 const int currentIconSize = iconSizeSettings.currentValue();
548 q->setIconSize(QSize(currentIconSize, currentIconSize));
549 //qDebug() << q->objectName() << "toolButtonStyleSettings:" << toolButtonStyleSettings.toString() << "->" << toolButtonStyleSettings.currentValue();
550 q->setToolButtonStyle(static_cast<Qt::ToolButtonStyle>(toolButtonStyleSettings.currentValue()));
551
552 // And remember to save the new look later
553 KisKMainWindow *kmw = q->mainWindow();
554 if (kmw) {
555 kmw->setSettingsDirty();
556 }
557}
KDE top level main window
Definition kmainwindow.h:89
void setSettingsDirty()
IntSetting toolButtonStyleSettings
Definition ktoolbar.cpp:220
IntSetting iconSizeSettings
Definition ktoolbar.cpp:219
KisKMainWindow * mainWindow() const

References KisKMainWindow::setSettingsDirty().

◆ contextMenu()

QMenu * KisToolBar::Private::contextMenu ( const QPoint & globalPos)

Definition at line 307 of file ktoolbar.cpp.

308{
309 if (!context) {
310 context = new QMenu(q);
311
312 contextButtonTitle = context->addSection(i18nc("@title:menu", "Show Text"));
313 contextShowText = context->addAction(QString(), q, SLOT(slotContextShowText()));
314
315 context->addSection(i18nc("@title:menu", "Toolbar Settings"));
316
317 contextOrient = new QMenu(i18nc("Toolbar orientation", "Orientation"), context);
318
319 contextTop = contextOrient->addAction(i18nc("toolbar position string", "Top"), q, SLOT(slotContextTop()));
320 contextTop->setChecked(true);
321 contextLeft = contextOrient->addAction(i18nc("toolbar position string", "Left"), q, SLOT(slotContextLeft()));
322 contextRight = contextOrient->addAction(i18nc("toolbar position string", "Right"), q, SLOT(slotContextRight()));
323 contextBottom = contextOrient->addAction(i18nc("toolbar position string", "Bottom"), q, SLOT(slotContextBottom()));
324
325 QActionGroup *positionGroup = new QActionGroup(contextOrient);
326 Q_FOREACH (QAction *action, contextOrient->actions()) {
327 action->setActionGroup(positionGroup);
328 action->setCheckable(true);
329 }
330
331 contextMode = new QMenu(i18n("Text Position"), context);
332
333 contextIcons = contextMode->addAction(i18n("Icons Only"), q, SLOT(slotContextIcons()));
334 contextText = contextMode->addAction(i18n("Text Only"), q, SLOT(slotContextText()));
335 contextTextRight = contextMode->addAction(i18n("Text Alongside Icons"), q, SLOT(slotContextTextRight()));
336 contextTextUnder = contextMode->addAction(i18n("Text Under Icons"), q, SLOT(slotContextTextUnder()));
337
338 QActionGroup *textGroup = new QActionGroup(contextMode);
339 Q_FOREACH (QAction *action, contextMode->actions()) {
340 action->setActionGroup(textGroup);
341 action->setCheckable(true);
342 }
343
344 contextSize = new QMenu(i18n("Icon Size"), context);
345
346 contextIconSizes.insert(contextSize->addAction(i18nc("@item:inmenu Icon size", "Default"), q, SLOT(slotContextIconSize())),
348
349 QList<int> avSizes;
350 avSizes << 16 << 22 << 24 << 32 << 48 << 64 << 128 << 256;
351
352 std::sort(avSizes.begin(), avSizes.end());
353
354 if (avSizes.count() < 10) {
355 // Fixed or threshold type icons
356 Q_FOREACH (int it, avSizes) {
357 QString text;
358 if (it < 19) {
359 text = i18n("Small (%1x%2)", it, it);
360 } else if (it < 25) {
361 text = i18n("Medium (%1x%2)", it, it);
362 } else if (it < 35) {
363 text = i18n("Large (%1x%2)", it, it);
364 } else {
365 text = i18n("Huge (%1x%2)", it, it);
366 }
367
368 // save the size in the contextIconSizes map
369 contextIconSizes.insert(contextSize->addAction(text, q, SLOT(slotContextIconSize())), it);
370 }
371 } else {
372 // Scalable icons.
373 const int progression[] = { 16, 22, 32, 48, 64, 96, 128, 192, 256 };
374
375 for (uint i = 0; i < 9; i++) {
376 Q_FOREACH (int it, avSizes) {
377 if (it >= progression[ i ]) {
378 QString text;
379 if (it < 19) {
380 text = i18n("Small (%1x%2)", it, it);
381 } else if (it < 25) {
382 text = i18n("Medium (%1x%2)", it, it);
383 } else if (it < 35) {
384 text = i18n("Large (%1x%2)", it, it);
385 } else {
386 text = i18n("Huge (%1x%2)", it, it);
387 }
388
389 // save the size in the contextIconSizes map
390 contextIconSizes.insert(contextSize->addAction(text, q, SLOT(slotContextIconSize())), it);
391 break;
392 }
393 }
394 }
395 }
396
397 QActionGroup *sizeGroup = new QActionGroup(contextSize);
398 Q_FOREACH (QAction *action, contextSize->actions()) {
399 action->setActionGroup(sizeGroup);
400 action->setCheckable(true);
401 }
402
403 if (!q->toolBarsLocked() && !q->isMovable()) {
404 unlockedMovable = false;
405 }
406
407 delete contextLockAction;
408 contextLockAction = new KToggleAction(KisIconUtils::loadIcon(QStringLiteral("system-lock-screen")), i18n("Lock Toolbar Positions"), q);
409 contextLockAction->setChecked(q->toolBarsLocked());
410 connect(contextLockAction, SIGNAL(toggled(bool)), q, SLOT(slotLockToolBars(bool)));
411
412 // Now add the actions to the menu
413 context->addMenu(contextMode);
414 context->addMenu(contextSize);
415 context->addMenu(contextOrient);
416 context->addSeparator();
417
418 connect(context, SIGNAL(aboutToShow()), q, SLOT(slotContextAboutToShow()));
419 }
420
421 contextButtonAction = q->actionAt(q->mapFromGlobal(globalPos));
423 contextShowText->setText(contextButtonAction->text());
424 contextShowText->setIcon(contextButtonAction->icon());
425 contextShowText->setCheckable(true);
426 }
427
428 contextOrient->menuAction()->setVisible(!q->toolBarsLocked());
429 // Unplugging a submenu from AboutToHide leads to the popupmenu floating around
430 // So better simply call that code from after exec() returns (DF)
431 //connect(context, SIGNAL(aboutToHide()), this, SLOT(slotContextAboutToHide()));
432
433 return context;
434}
unsigned int uint
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void slotContextTextUnder()
Definition ktoolbar.cpp:764
void slotLockToolBars(bool lock)
Definition ktoolbar.cpp:785
void slotContextAboutToShow()
Definition ktoolbar.cpp:582
QMap< QAction *, int > contextIconSizes
Definition ktoolbar.cpp:171
void slotContextTextRight()
Definition ktoolbar.cpp:770
static bool toolBarsLocked()
QIcon loadIcon(const QString &name)

References connect(), and KisIconUtils::loadIcon().

◆ customizeButtonPalette()

void KisToolBar::Private::customizeButtonPalette ( QToolButton * button,
bool checked )

Definition at line 560 of file ktoolbar.cpp.

561{
562 QPalette p = button->palette();
563 QColor color = q->palette().color(checked ? QPalette::Highlight : QPalette::Button);
564 p.setColor(QPalette::Button, color);
565 button->setPalette(p);
566}
const Params2D p
QString button(const QWheelEvent &ev)

References button(), and p.

◆ findAction()

QAction * KisToolBar::Private::findAction ( const QString & actionName,
KisKXMLGUIClient ** client = 0 ) const

Definition at line 568 of file ktoolbar.cpp.

569{
570 Q_FOREACH (KisKXMLGUIClient *client, xmlguiClients) {
571 QAction *action = client->actionCollection()->action(actionName);
572 if (action) {
573 if (clientOut) {
574 *clientOut = client;
575 }
576 return action;
577 }
578 }
579 return 0;
580}
QAction * action(int index) const
virtual KisKActionCollection * actionCollection() const
QSet< KisKXMLGUIClient * > xmlguiClients
Definition ktoolbar.cpp:153

References KisKActionCollection::action(), and KisKXMLGUIClient::actionCollection().

◆ getPositionAsString()

QString KisToolBar::Private::getPositionAsString ( ) const

Definition at line 291 of file ktoolbar.cpp.

292{
293 // get all of the stuff to save
294 switch (q->mainWindow()->toolBarArea(const_cast<KisToolBar *>(q))) {
295 case Qt::BottomToolBarArea:
296 return QStringLiteral("Bottom");
297 case Qt::LeftToolBarArea:
298 return QStringLiteral("Left");
299 case Qt::RightToolBarArea:
300 return QStringLiteral("Right");
301 case Qt::TopToolBarArea:
302 default:
303 return QStringLiteral("Top");
304 }
305}
Floatable toolbar with auto resize.
Definition ktoolbar.h:47

◆ init()

void KisToolBar::Private::init ( bool readConfig = true,
bool isMainToolBar = false )

Definition at line 253 of file ktoolbar.cpp.

254{
255 isMainToolBar = _isMainToolBar;
257
258 // also read in our configurable settings (for non-xmlgui toolbars)
259 if (readConfig) {
260 KConfigGroup cg(KSharedConfig::openConfig(), QString());
261 q->applySettings(cg);
262 }
263
264 if (q->mainWindow()) {
265 // Get notified when settings change
266 connect(q, SIGNAL(allowedAreasChanged(Qt::ToolBarAreas)),
267 q->mainWindow(), SLOT(setSettingsDirty()));
268 connect(q, SIGNAL(iconSizeChanged(QSize)),
269 q->mainWindow(), SLOT(setSettingsDirty()));
270 connect(q, SIGNAL(toolButtonStyleChanged(Qt::ToolButtonStyle)),
271 q->mainWindow(), SLOT(setSettingsDirty()));
272 connect(q, SIGNAL(movableChanged(bool)),
273 q->mainWindow(), SLOT(setSettingsDirty()));
274 connect(q, SIGNAL(orientationChanged(Qt::Orientation)),
275 q->mainWindow(), SLOT(setSettingsDirty()));
276 }
277
278 q->setMovable(!KisToolBar::toolBarsLocked());
279
280 connect(q, SIGNAL(movableChanged(bool)),
281 q, SLOT(slotMovableChanged(bool)));
282
283 q->setAcceptDrops(true);
284
285#ifdef HAVE_DBUS
286 QDBusConnection::sessionBus().connect(QString(), QStringLiteral("/KisToolBar"), QStringLiteral("org.kde.KisToolBar"),
287 QStringLiteral("styleChanged"), q, SLOT(slotAppearanceChanged()));
288#endif
289}
void slotAppearanceChanged()
Definition ktoolbar.cpp:516
void applySettings(const KConfigGroup &cg)
virtual void slotMovableChanged(bool movable)

References KisToolBar::applySettings(), connect(), isMainToolBar, loadKDESettings(), KisToolBar::mainWindow(), q, slotAppearanceChanged(), KisToolBar::slotMovableChanged(), and KisToolBar::toolBarsLocked().

◆ loadKDESettings()

void KisToolBar::Private::loadKDESettings ( )

Definition at line 529 of file ktoolbar.cpp.

530{
532
533 if (isMainToolBar) {
535 } else {
536 const QString fallBack = toolButtonStyleToString(Qt::ToolButtonTextBesideIcon);
537 KConfigGroup group(KSharedConfig::openConfig(), "Toolbar style");
538 const QString value = group.readEntry("ToolButtonStyleOtherToolbars", fallBack);
540 }
541}
float value(const T *src, size_t ch)
static QString toolButtonStyleToString(Qt::ToolButtonStyle)
Definition ktoolbar.cpp:487
static Qt::ToolButtonStyle toolButtonStyleFromString(const QString &style)
Definition ktoolbar.cpp:473
static Qt::ToolButtonStyle toolButtonStyleSetting()
Definition ktoolbar.cpp:522
int iconSizeDefault() const
@ Level_KDEDefault
Definition ktoolbar.cpp:82

References Level_KDEDefault, toolButtonStyleFromString(), and value().

◆ positionFromString()

Qt::ToolBarArea KisToolBar::Private::positionFromString ( const QString & position)
static

Definition at line 502 of file ktoolbar.cpp.

503{
504 Qt::ToolBarArea newposition = Qt::TopToolBarArea;
505 if (position == QStringLiteral("left")) {
506 newposition = Qt::LeftToolBarArea;
507 } else if (position == QStringLiteral("bottom")) {
508 newposition = Qt::BottomToolBarArea;
509 } else if (position == QStringLiteral("right")) {
510 newposition = Qt::RightToolBarArea;
511 }
512 return newposition;
513}

◆ setLocked()

void KisToolBar::Private::setLocked ( bool locked)

Definition at line 436 of file ktoolbar.cpp.

437{
438 if (unlockedMovable) {
439 q->setMovable(!locked);
440 }
441}

◆ slotAppearanceChanged()

void KisToolBar::Private::slotAppearanceChanged ( )

Definition at line 516 of file ktoolbar.cpp.

517{
520}
void applyCurrentSettings()
Definition ktoolbar.cpp:544

◆ slotContextAboutToHide()

void KisToolBar::Private::slotContextAboutToHide ( )

Definition at line 673 of file ktoolbar.cpp.

674{
675 // We have to unplug whatever slotContextAboutToShow plugged into the menu.
676 // Unplug the toolbar menu action
677 KXmlGuiWindow *kmw = qobject_cast<KXmlGuiWindow *>(q->mainWindow());
678 if (kmw && kmw->toolBarMenuAction()) {
679 if (kmw->toolBarMenuAction()->associatedWidgets().count() > 1) {
680 context->removeAction(kmw->toolBarMenuAction());
681 }
682 }
683
684 // Unplug the configure toolbars action too, since it's afterwards anyway
685 QAction *configureAction = 0;
686 const char *actionName;
688 configureAction = findAction(QLatin1String(actionName));
689
690 if (!configureAction && kmw) {
691 configureAction = kmw->actionCollection()->action(QLatin1String(actionName));
692 }
693
694 if (configureAction) {
695 context->removeAction(configureAction);
696 }
697
698 context->removeAction(contextLockAction);
699}
KDE top level main window with predefined action layout
QAction * toolBarMenuAction()
QAction * findAction(const QString &actionName, KisKXMLGUIClient **client=0) const
Definition ktoolbar.cpp:568
const char * name(StandardAction id)

References KisKActionCollection::action(), KisKXMLGUIClient::actionCollection(), KStandardAction::ConfigureToolbars, KStandardAction::name(), and KXmlGuiWindow::toolBarMenuAction().

◆ slotContextAboutToShow()

void KisToolBar::Private::slotContextAboutToShow ( )

The idea here is to reuse the "static" part of the menu to save time. But the "Toolbars" action is dynamic (can be a single action or a submenu) and ToolBarHandler::setupActions() deletes it, so better not keep it around. So we currently plug/unplug the last two actions of the menu. Another way would be to keep around the actions and plug them all into a (new each time) popupmenu.

Definition at line 582 of file ktoolbar.cpp.

583{
592 KXmlGuiWindow *kmw = qobject_cast<KXmlGuiWindow *>(q->mainWindow());
593
594 // try to find "configure toolbars" action
595 QAction *configureAction = 0;
596 const char *actionName;
598 configureAction = findAction(QLatin1String(actionName));
599
600 if (!configureAction && kmw) {
601 configureAction = kmw->actionCollection()->action(QLatin1String(actionName));
602 }
603
604 if (configureAction) {
605 context->addAction(configureAction);
606 }
607
608 context->addAction(contextLockAction);
609
610 if (kmw) {
612 // Only allow hiding a toolbar if the action is also plugged somewhere else (e.g. menubar)
613 QAction *tbAction = kmw->toolBarMenuAction();
614 if (!q->toolBarsLocked() && tbAction && tbAction->associatedWidgets().count() > 0) {
615 context->addAction(tbAction);
616 }
617 }
618
619 KisKEditToolBar::setGlobalDefaultToolBar(q->QObject::objectName().toLatin1().constData());
620
621 // Check the actions that should be checked
622 switch (q->toolButtonStyle()) {
623 case Qt::ToolButtonIconOnly:
624 default:
625 contextIcons->setChecked(true);
626 break;
627 case Qt::ToolButtonTextBesideIcon:
628 contextTextRight->setChecked(true);
629 break;
630 case Qt::ToolButtonTextOnly:
631 contextText->setChecked(true);
632 break;
633 case Qt::ToolButtonTextUnderIcon:
634 contextTextUnder->setChecked(true);
635 break;
636 }
637
638 QMapIterator< QAction *, int > it = contextIconSizes;
639 while (it.hasNext()) {
640 it.next();
641 if (it.value() == q->iconSize().width()) {
642 it.key()->setChecked(true);
643 break;
644 }
645 }
646
647 switch (q->mainWindow()->toolBarArea(q)) {
648 case Qt::BottomToolBarArea:
649 contextBottom->setChecked(true);
650 break;
651 case Qt::LeftToolBarArea:
652 contextLeft->setChecked(true);
653 break;
654 case Qt::RightToolBarArea:
655 contextRight->setChecked(true);
656 break;
657 default:
658 case Qt::TopToolBarArea:
659 contextTop->setChecked(true);
660 break;
661 }
662
663 const bool showButtonSettings = contextButtonAction
664 && !contextShowText->text().isEmpty()
665 && contextTextRight->isChecked();
666 contextButtonTitle->setVisible(showButtonSettings);
667 contextShowText->setVisible(showButtonSettings);
668 if (showButtonSettings) {
669 contextShowText->setChecked(contextButtonAction->priority() >= QAction::NormalPriority);
670 }
671}
void setupToolbarMenuActions()
static void setGlobalDefaultToolBar(const char *toolBarName)

References KisKActionCollection::action(), KisKXMLGUIClient::actionCollection(), KStandardAction::ConfigureToolbars, KStandardAction::name(), KisKEditToolBar::setGlobalDefaultToolBar(), KXmlGuiWindow::setupToolbarMenuActions(), and KXmlGuiWindow::toolBarMenuAction().

◆ slotContextBottom()

void KisToolBar::Private::slotContextBottom ( )

Definition at line 747 of file ktoolbar.cpp.

748{
749 q->mainWindow()->addToolBar(Qt::BottomToolBarArea, q);
750}

◆ slotContextIcons()

void KisToolBar::Private::slotContextIcons ( )

Definition at line 752 of file ktoolbar.cpp.

753{
754 q->setToolButtonStyle(Qt::ToolButtonIconOnly);
755 toolButtonStyleSettings[Level_UserSettings] = q->toolButtonStyle();
756}
@ Level_UserSettings
Definition ktoolbar.cpp:82

References Level_UserSettings.

◆ slotContextIconSize()

void KisToolBar::Private::slotContextIconSize ( )

Definition at line 776 of file ktoolbar.cpp.

777{
778 QAction *action = qobject_cast<QAction *>(q->sender());
779 if (action && contextIconSizes.contains(action)) {
780 const int iconSize = contextIconSizes.value(action);
782 }
783}
int iconSize(qreal width, qreal height)
void setIconDimensions(int size)

References iconSize().

◆ slotContextLeft()

void KisToolBar::Private::slotContextLeft ( )

Definition at line 701 of file ktoolbar.cpp.

702{
703 q->mainWindow()->addToolBar(Qt::LeftToolBarArea, q);
704}

◆ slotContextRight()

void KisToolBar::Private::slotContextRight ( )

Definition at line 706 of file ktoolbar.cpp.

707{
708 q->mainWindow()->addToolBar(Qt::RightToolBarArea, q);
709}

◆ slotContextShowText()

void KisToolBar::Private::slotContextShowText ( )

Definition at line 711 of file ktoolbar.cpp.

712{
713 Q_ASSERT(contextButtonAction);
714 const QAction::Priority priority = contextShowText->isChecked()
715 ? QAction::NormalPriority : QAction::LowPriority;
716 contextButtonAction->setPriority(priority);
717
718 // Find to which xml file and componentData the action belongs to
719 QString componentName;
720 QString filename;
721 KisKXMLGUIClient *client;
722 if (findAction(contextButtonAction->objectName(), &client)) {
723 componentName = client->componentName();
724 filename = client->xmlFile();
725 }
726 if (filename.isEmpty()) {
727 componentName = QCoreApplication::applicationName();
728 filename = componentName + QStringLiteral("ui.xmlgui");
729 }
730
731 // Save the priority state of the action
732 const QString configFile = KisKXMLGUIFactory::readConfigFile(filename, componentName);
733
734 QDomDocument document;
735 document.setContent(configFile);
736 QDomElement elem = KisKXMLGUIFactory::actionPropertiesElement(document);
737 QDomElement actionElem = KisKXMLGUIFactory::findActionByName(elem, contextButtonAction->objectName(), true);
738 actionElem.setAttribute(QStringLiteral("priority"), priority);
739 KisKXMLGUIFactory::saveConfigFile(document, filename, componentName);
740}
virtual QString xmlFile() const
virtual QString componentName() const
static QDomElement actionPropertiesElement(QDomDocument &doc)
static bool saveConfigFile(const QDomDocument &doc, const QString &filename, const QString &componentName=QString())
static QString readConfigFile(const QString &filename, const QString &componentName=QString())
static QDomElement findActionByName(QDomElement &elem, const QString &sName, bool create)

References KisKXMLGUIFactory::actionPropertiesElement(), KisKXMLGUIClient::componentName(), KisKXMLGUIFactory::findActionByName(), KisKXMLGUIFactory::readConfigFile(), KisKXMLGUIFactory::saveConfigFile(), and KisKXMLGUIClient::xmlFile().

◆ slotContextText()

void KisToolBar::Private::slotContextText ( )

Definition at line 758 of file ktoolbar.cpp.

759{
760 q->setToolButtonStyle(Qt::ToolButtonTextOnly);
761 toolButtonStyleSettings[Level_UserSettings] = q->toolButtonStyle();
762}

References Level_UserSettings.

◆ slotContextTextRight()

void KisToolBar::Private::slotContextTextRight ( )

Definition at line 770 of file ktoolbar.cpp.

771{
772 q->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
773 toolButtonStyleSettings[Level_UserSettings] = q->toolButtonStyle();
774}

References Level_UserSettings.

◆ slotContextTextUnder()

void KisToolBar::Private::slotContextTextUnder ( )

Definition at line 764 of file ktoolbar.cpp.

765{
766 q->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
767 toolButtonStyleSettings[Level_UserSettings] = q->toolButtonStyle();
768}

References Level_UserSettings.

◆ slotContextTop()

void KisToolBar::Private::slotContextTop ( )

Definition at line 742 of file ktoolbar.cpp.

743{
744 q->mainWindow()->addToolBar(Qt::TopToolBarArea, q);
745}

◆ slotLockToolBars()

void KisToolBar::Private::slotLockToolBars ( bool lock)

Definition at line 785 of file ktoolbar.cpp.

786{
787 q->setToolBarsLocked(lock);
788}
static void setToolBarsLocked(bool locked)

◆ slotToolButtonToggled()

void KisToolBar::Private::slotToolButtonToggled ( bool checked)

Definition at line 791 of file ktoolbar.cpp.

792{
793 QToolButton *tb = qobject_cast<QToolButton *>(q->sender());
794 if (tb) {
795 customizeButtonPalette(tb, checked);
796 }
797}
void customizeButtonPalette(QToolButton *button, bool checked)
Definition ktoolbar.cpp:560

◆ toolButtonStyleFromString()

Qt::ToolButtonStyle KisToolBar::Private::toolButtonStyleFromString ( const QString & style)
static

Definition at line 473 of file ktoolbar.cpp.

474{
475 QString style = _style.toLower();
476 if (style == QStringLiteral("textbesideicon") || style == QLatin1String("icontextright")) {
477 return Qt::ToolButtonTextBesideIcon;
478 } else if (style == QStringLiteral("textundericon") || style == QLatin1String("icontextbottom")) {
479 return Qt::ToolButtonTextUnderIcon;
480 } else if (style == QStringLiteral("textonly")) {
481 return Qt::ToolButtonTextOnly;
482 } else {
483 return Qt::ToolButtonIconOnly;
484 }
485}

◆ toolButtonStyleSetting()

Qt::ToolButtonStyle KisToolBar::Private::toolButtonStyleSetting ( )
static

Definition at line 522 of file ktoolbar.cpp.

523{
524 KConfigGroup group(KSharedConfig::openConfig(), "Toolbar style");
525 const QString fallback = KisToolBar::Private::toolButtonStyleToString(Qt::ToolButtonTextBesideIcon);
526 return KisToolBar::Private::toolButtonStyleFromString(group.readEntry("ToolButtonStyle", fallback));
527}

References toolButtonStyleFromString(), and toolButtonStyleToString().

◆ toolButtonStyleToString()

QString KisToolBar::Private::toolButtonStyleToString ( Qt::ToolButtonStyle style)
static

Definition at line 487 of file ktoolbar.cpp.

488{
489 switch (style) {
490 case Qt::ToolButtonIconOnly:
491 default:
492 return QStringLiteral("IconOnly");
493 case Qt::ToolButtonTextBesideIcon:
494 return QStringLiteral("TextBesideIcon");
495 case Qt::ToolButtonTextOnly:
496 return QStringLiteral("TextOnly");
497 case Qt::ToolButtonTextUnderIcon:
498 return QStringLiteral("TextUnderIcon");
499 }
500}

Member Data Documentation

◆ actionsBeingDragged

QList<QAction *> KisToolBar::Private::actionsBeingDragged

Definition at line 222 of file ktoolbar.cpp.

◆ context

QMenu* KisToolBar::Private::context

Definition at line 225 of file ktoolbar.cpp.

◆ contextBottom

QAction* KisToolBar::Private::contextBottom

Definition at line 165 of file ktoolbar.cpp.

◆ contextButtonAction

QAction* KisToolBar::Private::contextButtonAction

Definition at line 161 of file ktoolbar.cpp.

◆ contextButtonTitle

QAction* KisToolBar::Private::contextButtonTitle

Definition at line 159 of file ktoolbar.cpp.

◆ contextIcons

QAction* KisToolBar::Private::contextIcons

Definition at line 166 of file ktoolbar.cpp.

◆ contextIconSizes

QMap<QAction *, int> KisToolBar::Private::contextIconSizes

Definition at line 171 of file ktoolbar.cpp.

◆ contextLeft

QAction* KisToolBar::Private::contextLeft

Definition at line 163 of file ktoolbar.cpp.

◆ contextLockAction

KToggleAction* KisToolBar::Private::contextLockAction

Definition at line 170 of file ktoolbar.cpp.

◆ contextMode

QMenu* KisToolBar::Private::contextMode

Definition at line 156 of file ktoolbar.cpp.

◆ contextOrient

QMenu* KisToolBar::Private::contextOrient

Definition at line 155 of file ktoolbar.cpp.

◆ contextRight

QAction* KisToolBar::Private::contextRight

Definition at line 164 of file ktoolbar.cpp.

◆ contextShowText

QAction* KisToolBar::Private::contextShowText

Definition at line 160 of file ktoolbar.cpp.

◆ contextSize

QMenu* KisToolBar::Private::contextSize

Definition at line 157 of file ktoolbar.cpp.

◆ contextText

QAction* KisToolBar::Private::contextText

Definition at line 168 of file ktoolbar.cpp.

◆ contextTextRight

QAction* KisToolBar::Private::contextTextRight

Definition at line 167 of file ktoolbar.cpp.

◆ contextTextUnder

QAction* KisToolBar::Private::contextTextUnder

Definition at line 169 of file ktoolbar.cpp.

◆ contextTop

QAction* KisToolBar::Private::contextTop

Definition at line 162 of file ktoolbar.cpp.

◆ dragAction

QAction* KisToolBar::Private::dragAction

Definition at line 226 of file ktoolbar.cpp.

◆ dragStartPosition

QPoint KisToolBar::Private::dragStartPosition

Definition at line 227 of file ktoolbar.cpp.

◆ dropIndicatorAction

QAction* KisToolBar::Private::dropIndicatorAction

Definition at line 223 of file ktoolbar.cpp.

◆ iconSizeSettings

IntSetting KisToolBar::Private::iconSizeSettings

Definition at line 219 of file ktoolbar.cpp.

◆ isMainToolBar

bool KisToolBar::Private::isMainToolBar

Definition at line 149 of file ktoolbar.cpp.

◆ q

KisToolBar* KisToolBar::Private::q

Definition at line 148 of file ktoolbar.cpp.

◆ s_editable

bool KisToolBar::Private::s_editable = false
static

Definition at line 151 of file ktoolbar.cpp.

◆ s_toolBarsStateUpdater

KisToolBar::Private::ToolBarsStateUpdater KisToolBar::Private::s_toolBarsStateUpdater = {}
static

Definition at line 251 of file ktoolbar.cpp.

251{};

◆ toolButtonStyleSettings

IntSetting KisToolBar::Private::toolButtonStyleSettings

Definition at line 220 of file ktoolbar.cpp.

◆ unlockedMovable

bool KisToolBar::Private::unlockedMovable

Definition at line 150 of file ktoolbar.cpp.

◆ xmlguiClients

QSet<KisKXMLGUIClient *> KisToolBar::Private::xmlguiClients

Definition at line 153 of file ktoolbar.cpp.


The documentation for this class was generated from the following file: