Krita Source Code Documentation
Loading...
Searching...
No Matches
KDEPrivate::KisKEditToolBarWidgetPrivate Class Reference

Public Member Functions

void dump () const
 
QDomElement findElementForToolBarItem (const ToolBarItem *item) const
 
void initFromFactory (KisKXMLGUIFactory *factory, const QString &defaultToolbar)
 
void initOldStyle (const QString &file, bool global, const QString &defaultToolbar)
 
void insertActive (ToolBarItem *item, ToolBarItem *before, bool prepend=false)
 
 KisKEditToolBarWidgetPrivate (KisKEditToolBarWidget *widget, const QString &cName, KisKActionCollection *collection)
 
void loadActions (const QDomElement &elem)
 
void loadToolBarCombo (const QString &defaultToolbar)
 
QString loadXMLFile (const QString &_xml_file)
 
void moveActive (ToolBarItem *item, ToolBarItem *before)
 
void removeActive (ToolBarItem *item)
 
void selectActiveItem (const QString &)
 
void setupLayout ()
 
void slotActiveSelectionChanged ()
 
void slotChangeIconButton ()
 
void slotDownButton ()
 
void slotDropped (ToolBarListWidget *list, int index, ToolBarItem *item, bool sourceIsActiveList)
 
void slotInactiveSelectionChanged ()
 
void slotInsertButton ()
 
void slotRemoveButton ()
 
void slotToolBarSelected (int index)
 
void slotUpButton ()
 
void updateLocal (QDomElement &elem)
 
QString xmlFile (const QString &xml_file) const
 
 ~KisKEditToolBarWidgetPrivate ()
 

Public Attributes

ToolBarListWidgetm_activeList {nullptr}
 
ToolBarList m_barList
 
QToolButton * m_changeIconAction {nullptr}
 
KisKActionCollectionm_collection {nullptr}
 
QLabel * m_comboLabel {nullptr}
 
KSeparator * m_comboSeparator {nullptr}
 
QString m_componentName
 
QDomElement m_currentToolBarElem
 
XmlDatam_currentXmlData {nullptr}
 
QToolButton * m_downAction {nullptr}
 
QPixmap m_emptyIcon
 
KisKXMLGUIFactorym_factory {nullptr}
 
QString m_globalFile
 
QLabel * m_helpArea {nullptr}
 
ToolBarListWidgetm_inactiveList {nullptr}
 
QToolButton * m_insertAction {nullptr}
 
bool m_loadedOnce {false}
 
QDomDocument m_localDoc
 
QString m_rcFile
 
QToolButton * m_removeAction {nullptr}
 
QComboBox * m_toolbarCombo {nullptr}
 
QToolButton * m_upAction {nullptr}
 
KisKEditToolBarWidgetm_widget {nullptr}
 
QString m_xmlFile
 
QList< XmlDatam_xmlFiles
 

Detailed Description

Definition at line 417 of file kedittoolbar.cpp.

Constructor & Destructor Documentation

◆ KisKEditToolBarWidgetPrivate()

KDEPrivate::KisKEditToolBarWidgetPrivate::KisKEditToolBarWidgetPrivate ( KisKEditToolBarWidget * widget,
const QString & cName,
KisKActionCollection * collection )
inline
Parameters
collectionIn the old-style constructor, this is the collection passed to the KisKEditToolBar constructor. In the xmlguifactory-based constructor, we let KisKXMLGUIClient create a dummy one, but it probably isn't used.

Definition at line 427 of file kedittoolbar.cpp.

429 : m_collection(collection),
430 m_widget(widget),
431 m_factory(0),
432 m_loadedOnce(false)
433 {
434 m_componentName = cName;
435 m_helpArea = 0L;
436 // We want items with an icon to align with items without icon
437 // So we use an empty QPixmap for that
438 const int iconSize = widget->style()->pixelMetric(QStyle::PM_SmallIconSize);
439 m_emptyIcon = QPixmap(iconSize, iconSize);
440 m_emptyIcon.fill(Qt::transparent);
441 }
int iconSize(qreal width, qreal height)

References iconSize(), m_componentName, m_emptyIcon, and m_helpArea.

◆ ~KisKEditToolBarWidgetPrivate()

KDEPrivate::KisKEditToolBarWidgetPrivate::~KisKEditToolBarWidgetPrivate ( )
inline

Definition at line 442 of file kedittoolbar.cpp.

443 {
444 }

Member Function Documentation

◆ dump()

void KDEPrivate::KisKEditToolBarWidgetPrivate::dump ( ) const
inline

Definition at line 516 of file kedittoolbar.cpp.

517 {
519 for (; xit != m_xmlFiles.end(); ++xit) {
520 (*xit).dump();
521 }
522 }

References m_xmlFiles.

◆ findElementForToolBarItem()

QDomElement KDEPrivate::KisKEditToolBarWidgetPrivate::findElementForToolBarItem ( const ToolBarItem * item) const
inline

Look for a given item in the current toolbar

Definition at line 496 of file kedittoolbar.cpp.

497 {
498 //qDebug(240) << "looking for name=" << item->internalName() << "and tag=" << item->internalTag();
499 for (QDomNode n = m_currentToolBarElem.firstChild(); !n.isNull(); n = n.nextSibling()) {
500 QDomElement elem = n.toElement();
501 if ((elem.attribute(QStringLiteral("name")) == item->internalName()) &&
502 (elem.tagName() == item->internalTag())) {
503 return elem;
504 }
505 }
506 //qDebug(240) << "no item found in the DOM with name=" << item->internalName() << "and tag=" << item->internalTag();
507 return QDomElement();
508 }
QString internalName() const
QString internalTag() const

References KDEPrivate::ToolBarItem::internalName(), KDEPrivate::ToolBarItem::internalTag(), and m_currentToolBarElem.

◆ initFromFactory()

void KisKEditToolBarWidgetPrivate::initFromFactory ( KisKXMLGUIFactory * factory,
const QString & defaultToolbar )

Definition at line 854 of file kedittoolbar.cpp.

856{
857 qDebug() << "initFromFactory";
858 //TODO: make sure we can call this multiple times?
859 if (m_loadedOnce) {
860 return;
861 }
862
863 m_loadedOnce = true;
864
865 m_factory = factory;
866
867 // add all of the client data
868 bool first = true;
869 foreach (KisKXMLGUIClient *client, factory->clients()) {
870 if (client->xmlFile().isEmpty()) {
871 continue;
872 }
873
875 if (first) {
876 type = XmlData::Shell;
877 first = false;
878 Q_ASSERT(!client->localXMLFile().isEmpty()); // where would we save changes??
879 }
880
881 XmlData data(type, client->localXMLFile(), client->actionCollection());
882 QDomDocument domDoc = client->domDocument();
883 data.setDomDocument(domDoc);
884 m_xmlFiles.append(data);
885
886 //d->m_actionList += client->actionCollection()->actions();
887 }
888
889#ifndef NDEBUG
890 //d->dump();
891#endif
892
893 // now load in our toolbar combo box
894 loadToolBarCombo(defaultToolBar);
895 m_widget->adjustSize();
896 m_widget->setMinimumSize(m_widget->sizeHint());
897
899 foreach (QAction *action, m_widget->actionCollection()->actions()) {
900 action->setShortcutContext(Qt::WidgetWithChildrenShortcut);
901 }
902}
void loadToolBarCombo(const QString &defaultToolbar)
KisKActionCollection * actionCollection() const override
QList< QAction * > actions() const
void addAssociatedWidget(QWidget *widget)
virtual QString xmlFile() const
virtual QDomDocument domDocument() const
virtual QString localXMLFile() const
virtual KisKActionCollection * actionCollection() const
QList< KisKXMLGUIClient * > clients() const

References KisKXMLGUIClient::actionCollection(), KDEPrivate::KisKEditToolBarWidget::actionCollection(), KisKActionCollection::actions(), KisKActionCollection::addAssociatedWidget(), KisKXMLGUIFactory::clients(), KisKXMLGUIClient::domDocument(), loadToolBarCombo(), KisKXMLGUIClient::localXMLFile(), m_factory, m_loadedOnce, m_widget, m_xmlFiles, KDEPrivate::XmlData::Part, KDEPrivate::XmlData::setDomDocument(), KDEPrivate::XmlData::Shell, and KisKXMLGUIClient::xmlFile().

◆ initOldStyle()

void KisKEditToolBarWidgetPrivate::initOldStyle ( const QString & file,
bool global,
const QString & defaultToolbar )

Definition at line 812 of file kedittoolbar.cpp.

815{
816 qDebug() << "initOldStyle";
817 //TODO: make sure we can call this multiple times?
818 if (m_loadedOnce) {
819 return;
820 }
821
822 m_loadedOnce = true;
823 //d->m_actionList = collection->actions();
824
825 // handle the merging
826 if (global) {
827 m_widget->loadStandardsXmlFile(); // ui_standards.xmlgui
828 }
829 const QString localXML = loadXMLFile(resourceFile);
830 m_widget->setXML(localXML, global ? true /*merge*/ : false);
831
832 // first, get all of the necessary info for our local xml
833 XmlData local(XmlData::Local, xmlFile(resourceFile), m_collection);
834 QDomDocument domDoc;
835 domDoc.setContent(localXML);
836 local.setDomDocument(domDoc);
837 m_xmlFiles.append(local);
838
839 // then, the merged one (ui_standards + local xml)
840 XmlData merge(XmlData::Merged, QString(), m_collection);
841 merge.setDomDocument(m_widget->domDocument());
842 m_xmlFiles.append(merge);
843
844#ifndef NDEBUG
845 dump();
846#endif
847
848 // now load in our toolbar combo box
849 loadToolBarCombo(defaultToolBar);
850 m_widget->adjustSize();
851 m_widget->setMinimumSize(m_widget->sizeHint());
852}
QString xmlFile(const QString &xml_file) const
QString loadXMLFile(const QString &_xml_file)
void setXML(const QString &document, bool merge=false)

References KisKXMLGUIClient::domDocument(), dump(), KisKXMLGUIClient::loadStandardsXmlFile(), loadToolBarCombo(), loadXMLFile(), KDEPrivate::XmlData::Local, m_collection, m_loadedOnce, m_widget, m_xmlFiles, KDEPrivate::XmlData::Merged, KDEPrivate::XmlData::setDomDocument(), KisKXMLGUIClient::setXML(), and xmlFile().

◆ insertActive()

void KisKEditToolBarWidgetPrivate::insertActive ( ToolBarItem * item,
ToolBarItem * before,
bool prepend = false )

Definition at line 1409 of file kedittoolbar.cpp.

1410{
1411 if (!item) {
1412 return;
1413 }
1414
1415 QDomElement new_item;
1416 // let's handle the separator specially
1417 if (item->isSeparator()) {
1418 new_item = m_widget->domDocument().createElement(QStringLiteral("Separator"));
1419 } else {
1420 new_item = m_widget->domDocument().createElement(QStringLiteral("Action"));
1421 }
1422
1423 new_item.setAttribute(QStringLiteral("name"), item->internalName());
1424
1425 Q_ASSERT(!m_currentToolBarElem.isNull());
1426
1427 if (before) {
1428 // we have the item in the active list which is before the new
1429 // item.. so let's try our best to add our new item right after it
1430 QDomElement elem = findElementForToolBarItem(before);
1431 Q_ASSERT(!elem.isNull());
1432 m_currentToolBarElem.insertAfter(new_item, elem);
1433 } else {
1434 // simply put it at the beginning or the end of the list.
1435 if (prepend) {
1436 m_currentToolBarElem.insertBefore(new_item, m_currentToolBarElem.firstChild());
1437 } else {
1438 m_currentToolBarElem.appendChild(new_item);
1439 }
1440 }
1441
1442 // and set this container as a noMerge
1443 m_currentToolBarElem.setAttribute(QStringLiteral("noMerge"), QLatin1String("1"));
1444
1445 // update the local doc
1447}
QDomElement findElementForToolBarItem(const ToolBarItem *item) const

References KisKXMLGUIClient::domDocument(), findElementForToolBarItem(), KDEPrivate::ToolBarItem::internalName(), KDEPrivate::ToolBarItem::isSeparator(), m_currentToolBarElem, m_widget, and updateLocal().

◆ loadActions()

void KisKEditToolBarWidgetPrivate::loadActions ( const QDomElement & elem)

Definition at line 1191 of file kedittoolbar.cpp.

1192{
1193 const QLatin1String tagSeparator("Separator");
1194 const QLatin1String tagMerge("Merge");
1195 const QLatin1String tagActionList("ActionList");
1196 const QLatin1String tagAction("Action");
1197 const QLatin1String attrName("name");
1198
1199 int sep_num = 0;
1200 QString sep_name(QStringLiteral("separator_%1"));
1201
1202 // clear our lists
1203 m_inactiveList->clear();
1204 m_activeList->clear();
1205 m_insertAction->setEnabled(false);
1206 m_removeAction->setEnabled(false);
1207 m_upAction->setEnabled(false);
1208 m_downAction->setEnabled(false);
1209
1210 // We'll use this action collection
1212
1213 // store the names of our active actions
1214 QSet<QString> active_list;
1215
1216 // Filtering message requested by translators (scripting).
1217 KLocalizedString nameFilter = ki18nc("@item:intable Action name in toolbar editor", "%1");
1218
1219 // see if our current action is in this toolbar
1220 QDomNode n = elem.firstChild();
1221 for (; !n.isNull(); n = n.nextSibling()) {
1222 QDomElement it = n.toElement();
1223 if (it.isNull()) {
1224 continue;
1225 }
1226 if (it.tagName() == tagSeparator) {
1227 ToolBarItem *act = new ToolBarItem(m_activeList, tagSeparator, sep_name.arg(sep_num++), QString());
1228 act->setSeparator(true);
1229 act->setText(SEPARATORSTRING);
1230 it.setAttribute(attrName, act->internalName());
1231 continue;
1232 }
1233
1234 if (it.tagName() == tagMerge) {
1235 // Merge can be named or not - use the name if there is one
1236 QString name = it.attribute(attrName);
1237 ToolBarItem *act = new ToolBarItem(m_activeList, tagMerge, name, i18n("This element will be replaced with all the elements of an embedded component."));
1238 if (name.isEmpty()) {
1239 act->setText(i18n("<Merge>"));
1240 } else {
1241 act->setText(i18n("<Merge %1>", name));
1242 }
1243 continue;
1244 }
1245
1246 if (it.tagName() == tagActionList) {
1247 ToolBarItem *act = new ToolBarItem(m_activeList, tagActionList, it.attribute(attrName), i18n("This is a dynamic list of actions. You can move it, but if you remove it you will not be able to re-add it."));
1248 act->setText(i18n("ActionList: %1", it.attribute(attrName)));
1249 continue;
1250 }
1251
1252 // iterate through this client's actions
1253 // This used to iterate through _all_ actions, but we don't support
1254 // putting any action into any client...
1255 foreach (QAction *action, actionCollection->actions()) {
1256 // do we have a match?
1257 if (it.attribute(attrName) == action->objectName()) {
1258 // we have a match!
1259 ToolBarItem *act = new ToolBarItem(m_activeList, it.tagName(), action->objectName(), action->toolTip());
1260 act->setText(nameFilter.subs(KLocalizedString::removeAcceleratorMarker(action->iconText())).toString());
1261 act->setIcon(!action->icon().isNull() ? action->icon() : m_emptyIcon);
1262 act->setTextAlongsideIconHidden(action->priority() < QAction::NormalPriority);
1263
1264 active_list.insert(action->objectName());
1265 break;
1266 }
1267 }
1268 }
1269
1270 // go through the rest of the collection
1271 foreach (QAction *action, actionCollection->actions()) {
1272 // skip our active ones
1273 if (active_list.contains(action->objectName())) {
1274 continue;
1275 }
1276
1277 ToolBarItem *act = new ToolBarItem(m_inactiveList, tagAction, action->objectName(), action->toolTip());
1278 act->setText(nameFilter.subs(KLocalizedString::removeAcceleratorMarker(action->text())).toString());
1279 act->setIcon(!action->icon().isNull() ? action->icon() : m_emptyIcon);
1280 }
1281
1282 m_inactiveList->sortItems(Qt::AscendingOrder);
1283
1284 // finally, add default separators to the inactive list
1285 ToolBarItem *act = new ToolBarItem(0L, tagSeparator, sep_name.arg(sep_num++), QString());
1286 act->setSeparator(true);
1287 act->setText(SEPARATORSTRING);
1288 m_inactiveList->insertItem(0, act);
1289}
void setTextAlongsideIconHidden(bool hidden)
void setSeparator(bool sep)
KisKActionCollection * actionCollection() const
A container for a set of QAction objects.
#define SEPARATORSTRING
const char * name(StandardAction id)

References KDEPrivate::XmlData::actionCollection(), KisKActionCollection::actions(), KDEPrivate::ToolBarItem::internalName(), m_activeList, m_currentXmlData, m_downAction, m_emptyIcon, m_inactiveList, m_insertAction, m_removeAction, m_upAction, SEPARATORSTRING, KDEPrivate::ToolBarItem::setSeparator(), and KDEPrivate::ToolBarItem::setTextAlongsideIconHidden().

◆ loadToolBarCombo()

void KisKEditToolBarWidgetPrivate::loadToolBarCombo ( const QString & defaultToolbar)

Definition at line 1149 of file kedittoolbar.cpp.

1150{
1151 const QLatin1String attrName("name");
1152 // just in case, we clear our combo
1153 m_toolbarCombo->clear();
1154
1155 int defaultToolBarId = -1;
1156 int count = 0;
1157 // load in all of the toolbar names into this combo box
1158 QList<XmlData>::const_iterator xit = m_xmlFiles.constBegin();
1159 for (; xit != m_xmlFiles.constEnd(); ++xit) {
1160 // skip the merged one in favor of the local one,
1161 // so that we can change icons
1162 // This also makes the app-defined named for "mainToolBar" appear rather than the ui_standards-defined name.
1163 if ((*xit).type() == XmlData::Merged) {
1164 continue;
1165 }
1166
1167 // each xml file may have any number of toolbars
1168 ToolBarList::const_iterator it = (*xit).barList().begin();
1169 for (; it != (*xit).barList().constEnd(); ++it) {
1170 const QString text = (*xit).toolBarText(*it);
1171 m_toolbarCombo->addItem(text);
1172 const QString name = (*it).attribute(attrName);
1173 if (defaultToolBarId == -1 && name == defaultToolBar) {
1174 defaultToolBarId = count;
1175 }
1176 count++;
1177 }
1178 }
1179 const bool showCombo = (count > 1);
1180 m_comboLabel->setVisible(showCombo);
1181 m_comboSeparator->setVisible(showCombo);
1182 m_toolbarCombo->setVisible(showCombo);
1183 if (defaultToolBarId == -1) {
1184 defaultToolBarId = 0;
1185 }
1186 // we want to the specified item selected and its actions loaded
1187 m_toolbarCombo->setCurrentIndex(defaultToolBarId);
1188 slotToolBarSelected(m_toolbarCombo->currentIndex());
1189}

References m_comboLabel, m_comboSeparator, m_toolbarCombo, m_xmlFiles, KDEPrivate::XmlData::Merged, and slotToolBarSelected().

◆ loadXMLFile()

QString KDEPrivate::KisKEditToolBarWidgetPrivate::loadXMLFile ( const QString & _xml_file)
inline

Load in the specified XML file and dump the raw xml

Definition at line 478 of file kedittoolbar.cpp.

479 {
480 QString raw_xml;
481 QString xml_file = xmlFile(_xml_file);
482 //qDebug() << "loadXMLFile xml_file=" << xml_file;
483
484 if (!QDir::isRelativePath(xml_file)) {
485 raw_xml = KisKXMLGUIFactory::readConfigFile(xml_file);
486 } else {
488 }
489
490 return raw_xml;
491 }
static QString readConfigFile(const QString &filename, const QString &componentName=QString())

References m_componentName, KisKXMLGUIFactory::readConfigFile(), and xmlFile().

◆ moveActive()

void KisKEditToolBarWidgetPrivate::moveActive ( ToolBarItem * item,
ToolBarItem * before )

Definition at line 1487 of file kedittoolbar.cpp.

1488{
1489 QDomElement e = findElementForToolBarItem(item);
1490
1491 if (e.isNull()) {
1492 return;
1493 }
1494
1495 // remove item
1496 m_activeList->takeItem(m_activeList->row(item));
1497
1498 // put it where it's supposed to go
1499 m_activeList->insertItem(m_activeList->row(before) + 1, item);
1500
1501 // make it selected again
1502 m_activeList->setCurrentItem(item);
1503
1504 // and do the real move in the DOM
1505 if (!before) {
1506 m_currentToolBarElem.insertBefore(e, m_currentToolBarElem.firstChild());
1507 } else {
1509 }
1510
1511 // and set this container as a noMerge
1512 m_currentToolBarElem.setAttribute(QStringLiteral("noMerge"), QLatin1String("1"));
1513
1514 // update the local doc
1516}

References findElementForToolBarItem(), m_activeList, m_currentToolBarElem, and updateLocal().

◆ removeActive()

void KisKEditToolBarWidgetPrivate::removeActive ( ToolBarItem * item)

Definition at line 1449 of file kedittoolbar.cpp.

1450{
1451 if (!item) {
1452 return;
1453 }
1454
1455 // we're modified, so let this change
1456 Q_EMIT m_widget->enableOk(true);
1457
1458 // now iterate through to find the child to nuke
1459 QDomElement elem = findElementForToolBarItem(item);
1460 if (!elem.isNull()) {
1461 // nuke myself!
1462 m_currentToolBarElem.removeChild(elem);
1463
1464 // and set this container as a noMerge
1465 m_currentToolBarElem.setAttribute(QStringLiteral("noMerge"), QLatin1String("1"));
1466
1467 // update the local doc
1469 }
1470}

References KDEPrivate::KisKEditToolBarWidget::enableOk(), findElementForToolBarItem(), m_currentToolBarElem, m_widget, and updateLocal().

◆ selectActiveItem()

void KisKEditToolBarWidgetPrivate::selectActiveItem ( const QString & internalName)

Definition at line 1390 of file kedittoolbar.cpp.

1391{
1392 int activeItemCount = m_activeList->count();
1393 for (int i = 0; i < activeItemCount; i++) {
1394 ToolBarItem *item = static_cast<ToolBarItem *>(m_activeList->item(i));
1395 if (item->internalName() == internalName) {
1396 m_activeList->setCurrentItem(item);
1397 break;
1398 }
1399 }
1400}

References KDEPrivate::ToolBarItem::internalName(), and m_activeList.

◆ setupLayout()

void KisKEditToolBarWidgetPrivate::setupLayout ( )

Definition at line 997 of file kedittoolbar.cpp.

998{
999 // the toolbar name combo
1000 m_comboLabel = new QLabel(i18n("&Toolbar:"), m_widget);
1001 m_toolbarCombo = new QComboBox(m_widget);
1002 m_comboLabel->setBuddy(m_toolbarCombo);
1003 m_comboSeparator = new KSeparator(m_widget);
1004 QObject::connect(m_toolbarCombo, SIGNAL(activated(int)),
1005 m_widget, SLOT(slotToolBarSelected(int)));
1006
1007// QPushButton *new_toolbar = new QPushButton(i18n("&New"), this);
1008// new_toolbar->setPixmap(BarIcon("document-new", KisIconUtils::SizeSmall));
1009// new_toolbar->setEnabled(false); // disabled until implemented
1010// QPushButton *del_toolbar = new QPushButton(i18n("&Delete"), this);
1011// del_toolbar->setPixmap(BarIcon("edit-delete", KisIconUtils::SizeSmall));
1012// del_toolbar->setEnabled(false); // disabled until implemented
1013
1014 // our list of inactive actions
1015 QLabel *inactive_label = new QLabel(i18n("A&vailable actions:"), m_widget);
1017 m_inactiveList->setDragEnabled(true);
1019 m_inactiveList->setMinimumSize(180, 250);
1020 m_inactiveList->setDropIndicatorShown(false); // #165663
1021 inactive_label->setBuddy(m_inactiveList);
1022 QObject::connect(m_inactiveList, SIGNAL(itemSelectionChanged()),
1024 QObject::connect(m_inactiveList, SIGNAL(itemDoubleClicked(QListWidgetItem*)),
1025 m_widget, SLOT(slotInsertButton()));
1026 QObject::connect(m_inactiveList, SIGNAL(dropped(ToolBarListWidget*,int,ToolBarItem*,bool)),
1028
1029 {
1031 if (scroller) {
1032 QObject::connect(scroller, &QScroller::stateChanged, m_widget, [&](QScroller::State state) {
1034 });
1035 }
1036 }
1037
1038 KListWidgetSearchLine *inactiveListSearchLine = new KListWidgetSearchLine(m_widget, m_inactiveList);
1039 inactiveListSearchLine->setPlaceholderText(i18nc("Filter as in showing only matching items", "Filter"));
1040
1041 // our list of active actions
1042 QLabel *active_label = new QLabel(i18n("Curr&ent actions:"), m_widget);
1044 m_activeList->setDragEnabled(true);
1046 // With Qt-4.1 only setting MiniumWidth results in a 0-width icon column ...
1047 m_activeList->setMinimumSize(m_inactiveList->minimumWidth(), 100);
1048 active_label->setBuddy(m_activeList);
1049
1050 QObject::connect(m_activeList, SIGNAL(itemSelectionChanged()),
1052 QObject::connect(m_activeList, SIGNAL(itemDoubleClicked(QListWidgetItem*)),
1053 m_widget, SLOT(slotRemoveButton()));
1054 QObject::connect(m_activeList, SIGNAL(dropped(ToolBarListWidget*,int,ToolBarItem*,bool)),
1056 {
1058 if (scroller) {
1059 QObject::connect(scroller, &QScroller::stateChanged, m_widget, [&](QScroller::State state) {
1061 });
1062 }
1063 }
1064
1065 // Edit Icon Button under active actions
1066 m_changeIconAction = new QToolButton(m_widget);
1067 m_changeIconAction->setIcon(KisIconUtils::loadIcon(QStringLiteral("preferences-desktop-icons")));
1068 m_changeIconAction->setText(i18n("Change Icon..."));
1069 m_changeIconAction->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
1070 m_changeIconAction->setEnabled(false);
1071
1072 QObject::connect(m_changeIconAction, SIGNAL(clicked()), m_widget, SLOT(slotChangeIconButton()));
1073
1074 KListWidgetSearchLine *activeListSearchLine = new KListWidgetSearchLine(m_widget, m_activeList);
1075 activeListSearchLine->setPlaceholderText(i18n("Filter"));
1076
1077 // The buttons in the middle
1078
1079 m_upAction = new QToolButton(m_widget);
1080 m_upAction->setIcon(KisIconUtils::loadIcon(QStringLiteral("arrow-up")));
1081 m_upAction->setEnabled(false);
1082 m_upAction->setAutoRepeat(true);
1083 QObject::connect(m_upAction, SIGNAL(clicked()), m_widget, SLOT(slotUpButton()));
1084
1085 m_insertAction = new QToolButton(m_widget);
1086 m_insertAction->setIcon(KisIconUtils::loadIcon(QApplication::isRightToLeft() ? QStringLiteral("arrow-left") : QLatin1String("arrow-right")));
1087 m_insertAction->setEnabled(false);
1088 QObject::connect(m_insertAction, SIGNAL(clicked()), m_widget, SLOT(slotInsertButton()));
1089
1090 m_removeAction = new QToolButton(m_widget);
1091 m_removeAction->setIcon(KisIconUtils::loadIcon(QApplication::isRightToLeft() ? QStringLiteral("arrow-right") : QLatin1String("arrow-left")));
1092 m_removeAction->setEnabled(false);
1093 QObject::connect(m_removeAction, SIGNAL(clicked()), m_widget, SLOT(slotRemoveButton()));
1094
1095 m_downAction = new QToolButton(m_widget);
1096 m_downAction->setIcon(KisIconUtils::loadIcon(QStringLiteral("arrow-down")));
1097 m_downAction->setEnabled(false);
1098 m_downAction->setAutoRepeat(true);
1099 QObject::connect(m_downAction, SIGNAL(clicked()), m_widget, SLOT(slotDownButton()));
1100
1101 m_helpArea = new QLabel(m_widget);
1102 m_helpArea->setWordWrap(true);
1103
1104 // now start with our layouts
1105 QVBoxLayout *top_layout = new QVBoxLayout(m_widget);
1106 top_layout->setContentsMargins(0, 0, 0, 0);
1107
1108 QVBoxLayout *name_layout = new QVBoxLayout();
1109 QHBoxLayout *list_layout = new QHBoxLayout();
1110
1111 QVBoxLayout *inactive_layout = new QVBoxLayout();
1112 QVBoxLayout *active_layout = new QVBoxLayout();
1113
1114 QGridLayout *button_layout = new QGridLayout();
1115
1116 name_layout->addWidget(m_comboLabel);
1117 name_layout->addWidget(m_toolbarCombo);
1118// name_layout->addWidget(new_toolbar);
1119// name_layout->addWidget(del_toolbar);
1120
1121 button_layout->setSpacing(0);
1122 button_layout->setRowStretch(0, 10);
1123 button_layout->addWidget(m_upAction, 1, 1);
1124 button_layout->addWidget(m_removeAction, 2, 0);
1125 button_layout->addWidget(m_insertAction, 2, 2);
1126 button_layout->addWidget(m_downAction, 3, 1);
1127 button_layout->setRowStretch(4, 10);
1128
1129 inactive_layout->addWidget(inactive_label);
1130 inactive_layout->addWidget(inactiveListSearchLine);
1131 inactive_layout->addWidget(m_inactiveList, 1);
1132
1133 active_layout->addWidget(active_label);
1134 active_layout->addWidget(activeListSearchLine);
1135 active_layout->addWidget(m_activeList, 1);
1136 active_layout->addWidget(m_changeIconAction);
1137
1138 list_layout->addLayout(inactive_layout);
1139 list_layout->addLayout(button_layout);
1140 list_layout->addLayout(active_layout);
1141
1142 top_layout->addLayout(name_layout);
1143 top_layout->addWidget(m_comboSeparator);
1144 top_layout->addLayout(list_layout, 10);
1145 top_layout->addWidget(m_helpArea);
1146 top_layout->addWidget(new KSeparator(m_widget));
1147}
void slotDropped(ToolBarListWidget *list, int index, ToolBarItem *item, bool sourceIsActiveList)
void setActiveList(bool isActiveList)
QIcon loadIcon(const QString &name)
KRITAWIDGETUTILS_EXPORT void updateCursor(QWidget *source, QScroller::State state)
KRITAWIDGETUTILS_EXPORT QScroller * createPreconfiguredScroller(QAbstractScrollArea *target)

References KisKineticScroller::createPreconfiguredScroller(), KisIconUtils::loadIcon(), m_activeList, m_changeIconAction, m_comboLabel, m_comboSeparator, m_downAction, m_helpArea, m_inactiveList, m_insertAction, m_removeAction, m_toolbarCombo, m_upAction, m_widget, KDEPrivate::ToolBarListWidget::setActiveList(), slotActiveSelectionChanged(), slotChangeIconButton(), slotDownButton(), slotDropped(), slotInactiveSelectionChanged(), slotInsertButton(), slotRemoveButton(), slotToolBarSelected(), slotUpButton(), and KisKineticScroller::updateCursor().

◆ slotActiveSelectionChanged()

void KisKEditToolBarWidgetPrivate::slotActiveSelectionChanged ( )

Definition at line 1354 of file kedittoolbar.cpp.

1355{
1356 ToolBarItem *toolitem = 0;
1357 if (!m_activeList->selectedItems().isEmpty()) {
1358 toolitem = static_cast<ToolBarItem *>(m_activeList->selectedItems().first());
1359 }
1360
1361 m_removeAction->setEnabled(toolitem);
1362 m_changeIconAction->setEnabled(toolitem && !toolitem->isSeparator());
1363
1364 if (toolitem) {
1365 m_upAction->setEnabled(toolitem->index() != 0);
1366 m_downAction->setEnabled(toolitem->index() != toolitem->listWidget()->count() - 1);
1367
1368 QString statusText = toolitem->statusText();
1369 m_helpArea->setText(i18nc("@label Action tooltip in toolbar editor, below the action list", "%1", statusText));
1370 } else {
1371 m_upAction->setEnabled(false);
1372 m_downAction->setEnabled(false);
1373 m_helpArea->setText(QString());
1374 }
1375}
QString statusText() const

References KDEPrivate::ToolBarItem::index(), KDEPrivate::ToolBarItem::isSeparator(), m_activeList, m_changeIconAction, m_downAction, m_helpArea, m_removeAction, m_upAction, and KDEPrivate::ToolBarItem::statusText().

◆ slotChangeIconButton()

void KisKEditToolBarWidgetPrivate::slotChangeIconButton ( )

Definition at line 1533 of file kedittoolbar.cpp.

1534{
1535 ToolBarItem *toolitem = m_activeList->currentItem();
1536 KIS_SAFE_ASSERT_RECOVER_RETURN(toolitem && !toolitem->isSeparator());
1537
1538 QDomElement elem = findElementForToolBarItem(toolitem);
1539 KIS_SAFE_ASSERT_RECOVER_RETURN(!elem.isNull());
1540
1542
1543 // Dialog UI
1544 QDialog dialog(m_widget);
1545 dialog.setWindowTitle(i18n("Choose Icon"));
1546 dialog.resize(480, 500);
1547
1548 QVBoxLayout *layout = new QVBoxLayout(&dialog);
1549
1550 // Filter input
1551 QLineEdit *filterEdit = new QLineEdit(&dialog);
1552 filterEdit->setPlaceholderText(i18n("Filter icons..."));
1553 layout->addWidget(filterEdit);
1554
1555 // Icon list
1556 QListWidget *list = new QListWidget(&dialog);
1557 list->setViewMode(QListView::ListMode); // icon + text side by side
1558 list->setIconSize(QSize(22, 22));
1559 list->setResizeMode(QListWidget::Adjust);
1560 list->setSelectionMode(QAbstractItemView::SingleSelection);
1561 QScroller *scroller = KisKineticScroller::createPreconfiguredScroller(list);
1562 if (scroller) {
1563 QObject::connect(scroller, &QScroller::stateChanged, m_widget, [&](QScroller::State state) {
1565 });
1566 }
1567
1568 // Fill the list
1569 for (const QString &iconName : loadedIcons) {
1570 QListWidgetItem *item = new QListWidgetItem(
1571 KisIconUtils::loadIcon(iconName),
1572 iconName,
1573 list
1574 );
1575 item->setData(Qt::UserRole, iconName);
1576 }
1577 layout->addWidget(list);
1578
1579 // OK/Cancel buttons
1580 QDialogButtonBox *backButton = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, &dialog);
1581 layout->addWidget(backButton);
1582
1583 QObject::connect(backButton, &QDialogButtonBox::accepted, &dialog, &QDialog::accept);
1584 QObject::connect(backButton, &QDialogButtonBox::rejected, &dialog, &QDialog::reject);
1585
1586 // Filter logic
1587 QObject::connect(filterEdit, &QLineEdit::textChanged, &dialog, [&list](const QString &text) {
1588 for (int i = 0; i < list->count(); ++i) {
1589 QListWidgetItem *item = list->item(i);
1590 bool match = item->text().contains(text, Qt::CaseInsensitive);
1591 item->setHidden(!match);
1592 }
1593 });
1594
1595 // Optional: pre-select current icon
1596 QString currentIconName = elem.attribute(QStringLiteral("icon"));
1597 for (int i = 0; i < list->count(); ++i) {
1598 if (list->item(i)->data(Qt::UserRole).toString() == currentIconName) {
1599 list->setCurrentItem(list->item(i));
1600 break;
1601 }
1602 }
1603
1604 // Execute
1605 if (dialog.exec() == QDialog::Accepted && list->currentItem()) {
1606 QString chosenIconName = list->currentItem()->data(Qt::UserRole).toString();
1607
1608 toolitem->setIcon(KisIconUtils::loadIcon(chosenIconName));
1609
1610 // Update XML in the toolbar DOM
1611 // Ensure (ActionIconOverrides) exist
1612 QDomDocument doc = m_widget->domDocument();
1613 QDomElement root = doc.documentElement();
1614 QDomElement overridesElem = root.namedItem(QStringLiteral("ActionIconOverrides")).toElement();
1615 if (overridesElem.isNull()) {
1616 overridesElem = doc.createElement(QStringLiteral("ActionIconOverrides"));
1617 root.appendChild(overridesElem);
1618 }
1619
1620 // Find Action in overrides or create new
1621 QString actionName = toolitem->internalName();
1622 QDomElement overrideAction;
1623 for (QDomNode child = overridesElem.firstChild(); !child.isNull(); child = child.nextSibling()) {
1624 QDomElement childElement = child.toElement();
1625 if (childElement.attribute(QStringLiteral("name")) == actionName) {
1626 overrideAction = childElement;
1627 break;
1628 }
1629 }
1630 if (overrideAction.isNull()) {
1631 overrideAction = doc.createElement(QStringLiteral("Action"));
1632 overrideAction.setAttribute(QStringLiteral("name"), actionName);
1633 overridesElem.appendChild(overrideAction);
1634 }
1635
1636 // Set icon override
1637 overrideAction.setAttribute(QStringLiteral("icon"), chosenIconName);
1638
1639 // Mark document modified
1640 m_currentToolBarElem.setAttribute(QStringLiteral("noMerge"), QLatin1String("1"));
1643 m_activeList->update();
1644
1645 Q_EMIT m_widget->enableOk(true);
1646 }
1647}
ToolBarItem * currentItem() const
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:128
QStringList allUniqueLoadedIconNames()

References KisIconUtils::allUniqueLoadedIconNames(), KisKineticScroller::createPreconfiguredScroller(), KDEPrivate::ToolBarListWidget::currentItem(), KisKXMLGUIClient::domDocument(), KDEPrivate::KisKEditToolBarWidget::enableOk(), findElementForToolBarItem(), KDEPrivate::ToolBarItem::internalName(), KDEPrivate::ToolBarItem::isSeparator(), KIS_SAFE_ASSERT_RECOVER_RETURN, KisIconUtils::loadIcon(), m_activeList, m_currentToolBarElem, m_currentXmlData, KDEPrivate::XmlData::m_isModified, m_widget, KisKineticScroller::updateCursor(), and updateLocal().

◆ slotDownButton()

void KisKEditToolBarWidgetPrivate::slotDownButton ( )

Definition at line 1518 of file kedittoolbar.cpp.

1519{
1522
1523 // make sure we're not the bottom item already
1524 int newRow = item->listWidget()->row(item) + 1;
1525 KIS_SAFE_ASSERT_RECOVER_RETURN(newRow < item->listWidget()->count());
1526
1527 // we're modified, so let this change
1528 Q_EMIT m_widget->enableOk(true);
1529
1530 moveActive(item, static_cast<ToolBarItem *>(item->listWidget()->item(newRow)));
1531}
void moveActive(ToolBarItem *item, ToolBarItem *before)

References KDEPrivate::ToolBarListWidget::currentItem(), KDEPrivate::KisKEditToolBarWidget::enableOk(), KIS_SAFE_ASSERT_RECOVER_RETURN, m_activeList, m_widget, and moveActive().

◆ slotDropped()

void KisKEditToolBarWidgetPrivate::slotDropped ( ToolBarListWidget * list,
int index,
ToolBarItem * item,
bool sourceIsActiveList )

Definition at line 1690 of file kedittoolbar.cpp.

1691{
1692 //qDebug() << "slotDropped list=" << (list==m_activeList?"activeList":"inactiveList")
1693 // << "index=" << index << "sourceIsActiveList=" << sourceIsActiveList;
1694 if (list == m_activeList) {
1695 ToolBarItem *after = index > 0 ? static_cast<ToolBarItem *>(list->item(index - 1)) : 0;
1696 //qDebug() << "after" << after->text() << after->internalTag();
1697 if (sourceIsActiveList) {
1698 // has been dragged within the active list (moved).
1699 moveActive(item, after);
1700 } else {
1701 // dragged from the inactive list to the active list
1702 insertActive(item, after, true);
1703 }
1704 } else if (list == m_inactiveList) {
1705 // has been dragged to the inactive list -> remove from the active list.
1706 removeActive(item);
1707 }
1708
1709 delete item; // not needed anymore. must be deleted before slotToolBarSelected clears the lists
1710
1711 // we're modified, so let this change
1712 Q_EMIT m_widget->enableOk(true);
1713
1714 slotToolBarSelected(m_toolbarCombo->currentIndex());
1715}
void insertActive(ToolBarItem *item, ToolBarItem *before, bool prepend=false)

References KDEPrivate::KisKEditToolBarWidget::enableOk(), insertActive(), m_activeList, m_inactiveList, m_toolbarCombo, m_widget, moveActive(), removeActive(), and slotToolBarSelected().

◆ slotInactiveSelectionChanged()

void KisKEditToolBarWidgetPrivate::slotInactiveSelectionChanged ( )

Definition at line 1342 of file kedittoolbar.cpp.

1343{
1344 if (m_inactiveList->selectedItems().count()) {
1345 m_insertAction->setEnabled(true);
1346 QString statusText = static_cast<ToolBarItem *>(m_inactiveList->selectedItems().first())->statusText();
1347 m_helpArea->setText(i18nc("@label Action tooltip in toolbar editor, below the action list", "%1", statusText));
1348 } else {
1349 m_insertAction->setEnabled(false);
1350 m_helpArea->setText(QString());
1351 }
1352}

References m_helpArea, m_inactiveList, and m_insertAction.

◆ slotInsertButton()

void KisKEditToolBarWidgetPrivate::slotInsertButton ( )

Definition at line 1377 of file kedittoolbar.cpp.

1378{
1379 QString internalName = static_cast<ToolBarItem *>(m_inactiveList->currentItem())->internalName();
1380
1382 // we're modified, so let this change
1383 Q_EMIT m_widget->enableOk(true);
1384
1385 slotToolBarSelected(m_toolbarCombo->currentIndex());
1386
1387 selectActiveItem(internalName);
1388}

References KDEPrivate::ToolBarListWidget::currentItem(), KDEPrivate::KisKEditToolBarWidget::enableOk(), insertActive(), m_activeList, m_inactiveList, m_toolbarCombo, m_widget, selectActiveItem(), and slotToolBarSelected().

◆ slotRemoveButton()

void KisKEditToolBarWidgetPrivate::slotRemoveButton ( )

◆ slotToolBarSelected()

void KisKEditToolBarWidgetPrivate::slotToolBarSelected ( int index)

Definition at line 1296 of file kedittoolbar.cpp.

1297{
1298 // We need to find the XmlData and toolbar element for this index
1299 // To do that, we do the same iteration as the one which filled in the combobox.
1300
1301 int toolbarNumber = 0;
1303 for (; xit != m_xmlFiles.end(); ++xit) {
1304
1305 // skip the merged one in favor of the local one,
1306 // so that we can change icons
1307 if ((*xit).type() == XmlData::Merged) {
1308 continue;
1309 }
1310
1311 // each xml file may have any number of toolbars
1312 ToolBarList::Iterator it = (*xit).barList().begin();
1313 for (; it != (*xit).barList().end(); ++it) {
1314
1315 // is this our toolbar?
1316 if (toolbarNumber == index) {
1317
1318 // save our current settings
1319 m_currentXmlData = & (*xit);
1321
1322 //qDebug() << "found toolbar" << m_currentXmlData->toolBarText(*it) << "m_currentXmlData set to";
1324
1325 // If this is a Merged xmldata, clicking the "change icon" button would assert...
1326 Q_ASSERT(m_currentXmlData->type() != XmlData::Merged);
1327
1328 // load in our values
1330
1331 if ((*xit).type() == XmlData::Part || (*xit).type() == XmlData::Shell) {
1332 m_widget->setDOMDocument((*xit).domDocument());
1333 }
1334 return;
1335 }
1336 ++toolbarNumber;
1337
1338 }
1339 }
1340}
void loadActions(const QDomElement &elem)
XmlType type() const
void setDOMDocument(const QDomDocument &document, bool merge=false)

References KDEPrivate::XmlData::dump(), loadActions(), m_currentToolBarElem, m_currentXmlData, m_widget, m_xmlFiles, KDEPrivate::XmlData::Merged, KDEPrivate::XmlData::Part, KisKXMLGUIClient::setDOMDocument(), KDEPrivate::XmlData::Shell, and KDEPrivate::XmlData::type().

◆ slotUpButton()

void KisKEditToolBarWidgetPrivate::slotUpButton ( )

Definition at line 1472 of file kedittoolbar.cpp.

1473{
1476
1477 int row = item->listWidget()->row(item) - 1;
1478 // make sure we're not the top item already
1480
1481 // we're modified, so let this change
1482 Q_EMIT m_widget->enableOk(true);
1483
1484 moveActive(item, static_cast<ToolBarItem *>(item->listWidget()->item(row - 1)));
1485}

References KDEPrivate::ToolBarListWidget::currentItem(), KDEPrivate::KisKEditToolBarWidget::enableOk(), KIS_SAFE_ASSERT_RECOVER_RETURN, m_activeList, m_widget, and moveActive().

◆ updateLocal()

void KisKEditToolBarWidgetPrivate::updateLocal ( QDomElement & elem)

Definition at line 1649 of file kedittoolbar.cpp.

1650{
1652 for (; xit != m_xmlFiles.end(); ++xit) {
1653 if ((*xit).type() == XmlData::Merged) {
1654 continue;
1655 }
1656
1657 if ((*xit).type() == XmlData::Shell ||
1658 (*xit).type() == XmlData::Part) {
1659 if (m_currentXmlData->xmlFile() == (*xit).xmlFile()) {
1660 (*xit).m_isModified = true;
1661 return;
1662 }
1663
1664 continue;
1665 }
1666
1667 (*xit).m_isModified = true;
1668 const QLatin1String attrName("name");
1669 ToolBarList::Iterator it = (*xit).barList().begin();
1670 for (; it != (*xit).barList().end(); ++it) {
1671 QString name((*it).attribute(attrName));
1672 QString tag((*it).tagName());
1673 if ((tag != elem.tagName()) || (name != elem.attribute(attrName))) {
1674 continue;
1675 }
1676
1677 QDomElement toolbar = (*xit).domDocument().documentElement().toElement();
1678 toolbar.replaceChild(elem, (*it));
1679 return;
1680 }
1681
1682 // just append it
1683 QDomElement toolbar = (*xit).domDocument().documentElement().toElement();
1684 Q_ASSERT(!toolbar.isNull());
1685 toolbar.appendChild(elem);
1686 }
1687}
QString xmlFile() const

References m_currentXmlData, m_xmlFiles, KDEPrivate::XmlData::Merged, KDEPrivate::XmlData::Part, KDEPrivate::XmlData::Shell, and KDEPrivate::XmlData::xmlFile().

◆ xmlFile()

QString KDEPrivate::KisKEditToolBarWidgetPrivate::xmlFile ( const QString & xml_file) const
inline

Definition at line 470 of file kedittoolbar.cpp.

471 {
472 return xml_file.isEmpty() ? m_componentName + QStringLiteral("ui.xmlgui") : xml_file;
473 }

References m_componentName.

Member Data Documentation

◆ m_activeList

ToolBarListWidget* KDEPrivate::KisKEditToolBarWidgetPrivate::m_activeList {nullptr}

Definition at line 552 of file kedittoolbar.cpp.

552{nullptr};

◆ m_barList

ToolBarList KDEPrivate::KisKEditToolBarWidgetPrivate::m_barList

Definition at line 550 of file kedittoolbar.cpp.

◆ m_changeIconAction

QToolButton* KDEPrivate::KisKEditToolBarWidgetPrivate::m_changeIconAction {nullptr}

Definition at line 532 of file kedittoolbar.cpp.

532{nullptr};

◆ m_collection

KisKActionCollection* KDEPrivate::KisKEditToolBarWidgetPrivate::m_collection {nullptr}

Definition at line 535 of file kedittoolbar.cpp.

535{nullptr};

◆ m_comboLabel

QLabel* KDEPrivate::KisKEditToolBarWidgetPrivate::m_comboLabel {nullptr}

Definition at line 556 of file kedittoolbar.cpp.

556{nullptr};

◆ m_comboSeparator

KSeparator* KDEPrivate::KisKEditToolBarWidgetPrivate::m_comboSeparator {nullptr}

Definition at line 557 of file kedittoolbar.cpp.

557{nullptr};

◆ m_componentName

QString KDEPrivate::KisKEditToolBarWidgetPrivate::m_componentName

Definition at line 538 of file kedittoolbar.cpp.

◆ m_currentToolBarElem

QDomElement KDEPrivate::KisKEditToolBarWidgetPrivate::m_currentToolBarElem

Definition at line 543 of file kedittoolbar.cpp.

◆ m_currentXmlData

XmlData* KDEPrivate::KisKEditToolBarWidgetPrivate::m_currentXmlData {nullptr}

Definition at line 542 of file kedittoolbar.cpp.

542{nullptr};

◆ m_downAction

QToolButton* KDEPrivate::KisKEditToolBarWidgetPrivate::m_downAction {nullptr}

Definition at line 530 of file kedittoolbar.cpp.

530{nullptr};

◆ m_emptyIcon

QPixmap KDEPrivate::KisKEditToolBarWidgetPrivate::m_emptyIcon

Definition at line 540 of file kedittoolbar.cpp.

◆ m_factory

KisKXMLGUIFactory* KDEPrivate::KisKEditToolBarWidgetPrivate::m_factory {nullptr}

Definition at line 537 of file kedittoolbar.cpp.

537{nullptr};

◆ m_globalFile

QString KDEPrivate::KisKEditToolBarWidgetPrivate::m_globalFile

Definition at line 546 of file kedittoolbar.cpp.

◆ m_helpArea

QLabel* KDEPrivate::KisKEditToolBarWidgetPrivate::m_helpArea {nullptr}

Definition at line 558 of file kedittoolbar.cpp.

558{nullptr};

◆ m_inactiveList

ToolBarListWidget* KDEPrivate::KisKEditToolBarWidgetPrivate::m_inactiveList {nullptr}

Definition at line 551 of file kedittoolbar.cpp.

551{nullptr};

◆ m_insertAction

QToolButton* KDEPrivate::KisKEditToolBarWidgetPrivate::m_insertAction {nullptr}

Definition at line 529 of file kedittoolbar.cpp.

529{nullptr};

◆ m_loadedOnce

bool KDEPrivate::KisKEditToolBarWidgetPrivate::m_loadedOnce {false}

Definition at line 559 of file kedittoolbar.cpp.

559{false};

◆ m_localDoc

QDomDocument KDEPrivate::KisKEditToolBarWidgetPrivate::m_localDoc

Definition at line 548 of file kedittoolbar.cpp.

◆ m_rcFile

QString KDEPrivate::KisKEditToolBarWidgetPrivate::m_rcFile

Definition at line 547 of file kedittoolbar.cpp.

◆ m_removeAction

QToolButton* KDEPrivate::KisKEditToolBarWidgetPrivate::m_removeAction {nullptr}

Definition at line 528 of file kedittoolbar.cpp.

528{nullptr};

◆ m_toolbarCombo

QComboBox* KDEPrivate::KisKEditToolBarWidgetPrivate::m_toolbarCombo {nullptr}

Definition at line 525 of file kedittoolbar.cpp.

525{nullptr};

◆ m_upAction

QToolButton* KDEPrivate::KisKEditToolBarWidgetPrivate::m_upAction {nullptr}

Definition at line 527 of file kedittoolbar.cpp.

527{nullptr};

◆ m_widget

KisKEditToolBarWidget* KDEPrivate::KisKEditToolBarWidgetPrivate::m_widget {nullptr}

Definition at line 536 of file kedittoolbar.cpp.

536{nullptr};

◆ m_xmlFile

QString KDEPrivate::KisKEditToolBarWidgetPrivate::m_xmlFile

Definition at line 545 of file kedittoolbar.cpp.

◆ m_xmlFiles

QList<XmlData> KDEPrivate::KisKEditToolBarWidgetPrivate::m_xmlFiles

Definition at line 554 of file kedittoolbar.cpp.


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