r24942 by jghali - Fix "Insert Shape" menu not reacting on icon set change
scribus-commit
scribus-commit at lists.scribus.net
Wed Feb 16 22:10:42 UTC 2022
Author: jghali
Date: Wed Feb 16 22:10:41 2022
New Revision: 24942
URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=24942
Log:
Fix "Insert Shape" menu not reacting on icon set change
Modified:
trunk/Scribus/scribus/ui/autoform.cpp
trunk/Scribus/scribus/ui/autoform.h
trunk/Scribus/scribus/ui/autoformbuttongroup.cpp
trunk/Scribus/scribus/ui/autoformbuttongroup.h
trunk/Scribus/scribus/ui/modetoolbar.cpp
trunk/Scribus/scribus/ui/modetoolbar.h
Modified: trunk/Scribus/scribus/ui/autoform.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=24942&path=/trunk/Scribus/scribus/ui/autoform.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/autoform.cpp (original)
+++ trunk/Scribus/scribus/ui/autoform.cpp Wed Feb 16 22:10:41 2022
@@ -7,6 +7,7 @@
#include "autoform.h"
#include "autoformbuttongroup.h"
+#include "scribusapp.h"
Autoforms::Autoforms( QWidget* parent ) : QToolButton( parent )
{
@@ -14,7 +15,14 @@
setMenu(buttonGroup1);
setPopupMode(QToolButton::InstantPopup);
setIcon(QIcon(buttonGroup1->getIconPixmap(0)));
+
+ connect(ScQApp, SIGNAL(iconSetChanged()), this, SLOT(iconSetChange()));
connect(buttonGroup1, SIGNAL(buttonClicked(int)), this, SLOT(selForm(int)));
+}
+
+void Autoforms::iconSetChange()
+{
+ setIcon(QIcon(buttonGroup1->getIconPixmap(0)));
}
void Autoforms::selForm(int a)
Modified: trunk/Scribus/scribus/ui/autoform.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=24942&path=/trunk/Scribus/scribus/ui/autoform.h
==============================================================================
--- trunk/Scribus/scribus/ui/autoform.h (original)
+++ trunk/Scribus/scribus/ui/autoform.h Wed Feb 16 22:10:41 2022
@@ -27,12 +27,13 @@
public slots:
void selForm(int a);
+ void iconSetChange();
signals:
void FormSel(int, int, qreal *);
protected:
- AutoformButtonGroup* buttonGroup1;
+ AutoformButtonGroup* buttonGroup1 { nullptr };
};
#endif
Modified: trunk/Scribus/scribus/ui/autoformbuttongroup.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=24942&path=/trunk/Scribus/scribus/ui/autoformbuttongroup.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/autoformbuttongroup.cpp (original)
+++ trunk/Scribus/scribus/ui/autoformbuttongroup.cpp Wed Feb 16 22:10:41 2022
@@ -12,8 +12,9 @@
#include "autoformbuttongroup.h"
#include "fpointarray.h"
+#include "iconmanager.h"
#include "scpainter.h"
-#include "iconmanager.h"
+#include "scribusapp.h"
AutoformButtonGroup::AutoformButtonGroup( QWidget* parent ) : QMenu( parent )
{
@@ -73,7 +74,9 @@
addMenu(menu3);
addMenu(menu4);
addMenu(menu5);
- connect(signalMapper, SIGNAL(mappedInt(int)), this, SLOT(selForm(int)));
+
+ connect(ScQApp, SIGNAL(iconSetChanged()), this, SLOT(iconSetChange()));
+ connect(signalMapper, SIGNAL(mapped(int)), this, SLOT(selForm(int)));
}
void AutoformButtonGroup::addShape(QMenu* menu, int shapenum)
@@ -769,6 +772,21 @@
QMenu::changeEvent(e);
}
+void AutoformButtonGroup::iconSetChange()
+{
+ for (int i = 0; i <= 44; ++i)
+ {
+ QObject* mappedObject = signalMapper->mapping(i);
+ if (!mappedObject)
+ continue;
+
+ QAction* action = qobject_cast<QAction*>(mappedObject);
+ if (!action)
+ continue;
+ action->setIcon(QIcon(getIconPixmap(i, 16)));
+ }
+}
+
void AutoformButtonGroup::languageChange()
{
menu1->setTitle( tr("Default Shapes"));
Modified: trunk/Scribus/scribus/ui/autoformbuttongroup.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=24942&path=/trunk/Scribus/scribus/ui/autoformbuttongroup.h
==============================================================================
--- trunk/Scribus/scribus/ui/autoformbuttongroup.h (original)
+++ trunk/Scribus/scribus/ui/autoformbuttongroup.h Wed Feb 16 22:10:41 2022
@@ -29,6 +29,7 @@
public slots:
void selForm(int a);
+ void iconSetChange();
void languageChange();
signals:
@@ -36,12 +37,12 @@
void buttonClicked(int);
protected:
- QSignalMapper *signalMapper;
- QMenu *menu1;
- QMenu *menu2;
- QMenu *menu3;
- QMenu *menu4;
- QMenu *menu5;
+ QSignalMapper *signalMapper { nullptr };
+ QMenu *menu1 { nullptr };
+ QMenu *menu2 { nullptr };
+ QMenu *menu3 { nullptr };
+ QMenu *menu4 { nullptr };
+ QMenu *menu5 { nullptr };
void changeEvent(QEvent *e) override;
};
Modified: trunk/Scribus/scribus/ui/modetoolbar.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=24942&path=/trunk/Scribus/scribus/ui/modetoolbar.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/modetoolbar.cpp (original)
+++ trunk/Scribus/scribus/ui/modetoolbar.cpp Wed Feb 16 22:10:41 2022
@@ -33,6 +33,7 @@
#include "polyprops.h"
#include "scraction.h"
#include "scribus.h"
+#include "scribusapp.h"
#include "scribusdoc.h"
#include "scrspinbox.h"
@@ -44,7 +45,7 @@
100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 100.0, 0.0, 100.0,
0.0, 100.0, 0.0, 100.0, 0.0, 0.0, 0.0, 0.0};
ShapeVals = AutoShapes0;
- m_ScMW=parent;
+ m_ScMW = parent;
this->addAction(m_ScMW->scrActions["toolsSelect"]);
this->addAction(m_ScMW->scrActions["toolsInsertTextFrame"]);
this->addAction(m_ScMW->scrActions["toolsInsertImageFrame"]);
@@ -106,9 +107,11 @@
this->addAction(m_ScMW->scrActions["toolsEyeDropper"]);
languageChange();
- connect(autoFormButtonGroup, SIGNAL(FormSel(int,int,qreal *)), this, SLOT(SelShape(int,int,qreal *)));
+
+ connect(autoFormButtonGroup, SIGNAL(FormSel(int, int, qreal *)), this, SLOT(SelShape(int, int, qreal *)));
connect(Angle, SIGNAL(valueChanged(double)), this, SLOT(newCalValues()));
connect(PWidth, SIGNAL(valueChanged(double)), this, SLOT(newCalValues()));
+ connect(ScQApp, SIGNAL(iconSetChanged()), this, SLOT(iconSetChange()));
}
ModeToolBar::~ModeToolBar()
@@ -136,7 +139,7 @@
void ModeToolBar::SelShape(int s, int c, qreal *vals)
{
- m_ScMW->scrActions["toolsInsertShape"]->setIcon(QIcon(autoFormButtonGroup->getIconPixmap(s,16)));
+ m_ScMW->scrActions["toolsInsertShape"]->setIcon(QIcon(autoFormButtonGroup->getIconPixmap(s, 16)));
SubMode = s;
ValCount = c;
ShapeVals = vals;
@@ -160,6 +163,11 @@
PWidth->setValue(doc->itemToolPrefs().calligraphicPenWidth);
}
+void ModeToolBar::iconSetChange()
+{
+ m_ScMW->scrActions["toolsInsertShape"]->setIcon(QIcon(autoFormButtonGroup->getIconPixmap(0, 16)));
+}
+
void ModeToolBar::languageChange()
{
AngleTxt->setText(tr("Angle:"));
Modified: trunk/Scribus/scribus/ui/modetoolbar.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=24942&path=/trunk/Scribus/scribus/ui/modetoolbar.h
==============================================================================
--- trunk/Scribus/scribus/ui/modetoolbar.h (original)
+++ trunk/Scribus/scribus/ui/modetoolbar.h Wed Feb 16 22:10:41 2022
@@ -57,31 +57,31 @@
void changeEvent(QEvent *e) override;
void setDoc(ScribusDoc* doc);
- int SubMode;
- int ValCount;
- double *ShapeVals;
+
+ int SubMode { 0 };
+ int ValCount { 0 };
+ double *ShapeVals { nullptr };
public slots:
void newCalValues();
void GetPolyProps();
void SelShape(int s, int c, qreal *vals);
-// void getShapeValues(int& mode, double* values, int& count);
+ void iconSetChange();
void languageChange();
protected:
- AutoformButtonGroup* autoFormButtonGroup;
- QMenu* insertPolygonButtonMenu;
- QAction* idInsertPolygonButtonMenu;
- ScribusMainWindow* m_ScMW;
- QWidget *propWidget;
- QGridLayout* group1Layout;
- QMenu* calPop;
- QWidgetAction* calValAct;
- QLabel *AngleTxt;
- QLabel *PWidthTxt;
- ScrSpinBox *Angle;
- ScrSpinBox *PWidth;
-
+ AutoformButtonGroup* autoFormButtonGroup { nullptr };
+ QMenu* insertPolygonButtonMenu { nullptr };
+ QAction* idInsertPolygonButtonMenu { nullptr };
+ ScribusMainWindow* m_ScMW { nullptr };
+ QWidget *propWidget { nullptr };
+ QGridLayout* group1Layout { nullptr };
+ QMenu* calPop { nullptr };
+ QWidgetAction* calValAct { nullptr };
+ QLabel *AngleTxt { nullptr };
+ QLabel *PWidthTxt { nullptr };
+ ScrSpinBox *Angle { nullptr };
+ ScrSpinBox *PWidth { nullptr };
};
#endif
More information about the scribus-commit
mailing list