Index: scribus/CMakeLists.txt =================================================================== --- scribus/CMakeLists.txt (revision 19097) +++ scribus/CMakeLists.txt (working copy) @@ -474,6 +474,7 @@ ui/storyeditor.h ui/stylemanager.h ui/styleselect.h + ui/styleshortcut.h ui/styleview.h ui/swatchcombo.h ui/symbolpalette.h @@ -929,6 +930,7 @@ ui/storyeditor.cpp ui/stylemanager.cpp ui/styleselect.cpp + ui/styleshortcut.cpp ui/styleview.cpp ui/swatchcombo.cpp ui/symbolpalette.cpp Index: scribus/ui/stylemanager.cpp =================================================================== --- scribus/ui/stylemanager.cpp (revision 19097) +++ scribus/ui/stylemanager.cpp (working copy) @@ -27,6 +27,7 @@ #include "smtextstyles.h" #include "styleitem.h" #include "stylemanager.h" +#include "styleshortcut.h" #include "ui/customfdialog.h" #include "ui/styleview.h" @@ -209,7 +210,7 @@ m_rightClickPopup->removeAction(m_selectedStyleAction); m_selectedStyleAction = 0; } - m_styleActions.clear(); + m_styleShortcuts.clear(); for (int i = 0; i < m_items.count(); ++i) { m_items.at(i)->setCurrentDoc(doc); @@ -611,13 +612,12 @@ if (styleView->selectedItems().count() == 1) { QString key = item->rootName() + SEPARATOR + item->text(NAME_COL); - if (m_styleActions.contains(key)) + if (m_styleShortcuts.contains(key)) { - m_selectedStyleAction = m_styleActions[key]; - if (m_selectedStyleAction) - { - m_rightClickPopup->insertAction(m_rightClickPopup->actions().first(), m_selectedStyleAction); - } + QAction* action = m_rightClickPopup->addAction(tr("&Apply"), 0, 0, m_styleShortcuts[key]->key()); + m_rightClickPopup->removeAction(action); + m_rightClickPopup->insertAction( m_rightClickPopup->actions().first(), action); + m_selectedStyleAction = action; } } @@ -873,11 +873,11 @@ sitem->setText(SHORTCUT_COL, shortcutValue); QString key = sitem->rootName() + SEPARATOR + sitem->text(NAME_COL); - if (m_styleActions.contains(key)) + if (m_styleShortcuts.contains(key)) continue; - m_styleActions[key] = new ScrAction(ScrAction::DataQString, QPixmap(), QPixmap(), tr("&Apply"), shortcutValue, m_doc->view(), 0, 0.0, key); - connect(m_styleActions[key], SIGNAL(triggeredData(QString)), this, SLOT(slotApplyStyle(QString))); + m_styleShortcuts[key] = new StyleShortcut(shortcutValue, m_doc->view(), key); + connect(m_styleShortcuts[key], SIGNAL(activatedData(QString)), this, SLOT(slotApplyStyle(QString))); } } } @@ -1030,21 +1030,20 @@ QString oldKey = m_item->typeName() + SEPARATOR + oldName; QString newKey = m_item->typeName() + SEPARATOR + newName; - if (m_styleActions.contains(oldKey)) + if (m_styleShortcuts.contains(oldKey)) { - ScrAction *a = m_styleActions[oldKey]; - disconnect(a, SIGNAL(triggeredData(QString)), this, SLOT(slotApplyStyle(QString))); - ScrAction *b = new ScrAction(ScrAction::DataQString, QPixmap(), QPixmap(), tr("&Apply"), - a->shortcut(), m_doc->view(), 0, 0.0, newKey); - m_styleActions.remove(oldKey); - if (m_selectedStyleAction == a) + StyleShortcut *a = m_styleShortcuts[oldKey]; + disconnect(a, SIGNAL(activatedData(QString)), this, SLOT(slotApplyStyle(QString))); + StyleShortcut *b = new StyleShortcut(a->key(), m_doc->view(), newKey); + m_styleShortcuts.remove(oldKey); + if (m_selectedStyleAction) { m_rightClickPopup->removeAction(m_selectedStyleAction); m_selectedStyleAction = 0; } delete a; - m_styleActions[newKey] = b; - connect(b, SIGNAL(triggeredData(QString)), this, SLOT(slotApplyStyle(QString))); + m_styleShortcuts[newKey] = b; + connect(b, SIGNAL(activatedData(QString)), this, SLOT(slotApplyStyle(QString))); } } @@ -1069,13 +1068,12 @@ sitem->setText(SHORTCUT_COL, shortcut.isNull() ? "" : shortcut); QString key = sitem->rootName() + SEPARATOR + sitem->text(NAME_COL); - if (m_styleActions.contains(key)) - m_styleActions[key]->setShortcut(shortcut); + if (m_styleShortcuts.contains(key)) + m_styleShortcuts[key]->setKey(shortcut); else { - m_styleActions[key] = - new ScrAction(ScrAction::DataQString, QPixmap(), QPixmap(), tr("&Apply"), shortcut, m_doc->view(), 0, 0.0, key); - connect(m_styleActions[key], SIGNAL(triggeredData(QString)), + m_styleShortcuts[key] = new StyleShortcut(shortcut, m_doc->view(), key); + connect(m_styleShortcuts[key], SIGNAL(activatedData(QString)), this, SLOT(slotApplyStyle(QString))); } @@ -1087,10 +1085,10 @@ { QKeySequence key(keys); - QMap >::iterator it; - for (it = m_styleActions.begin(); it != m_styleActions.end(); ++it) + QMap >::iterator it; + for (it = m_styleShortcuts.begin(); it != m_styleShortcuts.end(); ++it) { - if ((*it)->shortcut() == key) + if ((*it)->key() == key) return true; } @@ -1327,7 +1325,7 @@ } m_widget = m_item->widget(); // show the widget for the style type //<<#8230: Hide the shortcut page as it does not work - //insertShortcutPage(m_widget); + insertShortcutPage(m_widget); //>> m_widget->setParent(mainFrame); m_layout->addWidget(m_widget, 0, 0); Index: scribus/ui/stylemanager.h =================================================================== --- scribus/ui/stylemanager.h (revision 19097) +++ scribus/ui/stylemanager.h (working copy) @@ -18,7 +18,7 @@ class StyleItem; class ScribusDoc; class ShortcutWidget; -class ScrAction; +class StyleShortcut; struct Keys; class SCRIBUS_API StyleManager : public ScrPaletteBase, Ui::StyleManager @@ -63,7 +63,7 @@ QAction *m_rcpEditId; QAction *m_rcpCloneId; // QAction *m_rcpToScrapId; - ScrAction *m_selectedStyleAction; + QAction *m_selectedStyleAction; bool m_isEditMode; bool m_isStoryEditMode; @@ -78,7 +78,7 @@ ScribusDoc *m_doc; PrefsContext *m_prefs; - QMap > m_styleActions; + QMap > m_styleShortcuts; static const int NAME_COL = 0; static const int SHORTCUT_COL = 1; Index: scribus/ui/styleshortcut.cpp =================================================================== --- scribus/ui/styleshortcut.cpp (revision 0) +++ scribus/ui/styleshortcut.cpp (revision 0) @@ -0,0 +1,20 @@ +/* +For general Scribus (>=1.3.2) copyright and licensing information please refer +to the COPYING file provided with the program. Following this notice may exist +a copyright and/or license notice that predates the release of Scribus 1.3.2 +for which a new license (GPL+exception) is in place. +*/ + +#include "styleshortcut.h" + +StyleShortcut::StyleShortcut(const QKeySequence & key, QWidget * parent, const QString& data) + : QShortcut(key, parent), m_data(data) +{ + connect(this, SIGNAL(activated()), this, SLOT(activateData())); +} + +void StyleShortcut::activateData() +{ + emit activatedData(m_data); +} + Index: scribus/ui/styleshortcut.h =================================================================== --- scribus/ui/styleshortcut.h (revision 0) +++ scribus/ui/styleshortcut.h (revision 0) @@ -0,0 +1,31 @@ +/* +For general Scribus (>=1.3.2) copyright and licensing information please refer +to the COPYING file provided with the program. Following this notice may exist +a copyright and/or license notice that predates the release of Scribus 1.3.2 +for which a new license (GPL+exception) is in place. +*/ + +#ifndef STYLESHORTCUT_H +#define STYLESHORTCUT_H + +#include +#include +#include + +class StyleShortcut : public QShortcut +{ + Q_OBJECT +public: + StyleShortcut(const QKeySequence & key, QWidget * parent, const QString& data); + +protected: + QString m_data; + +protected slots: + void activateData(); + +signals: + void activatedData(QString); +}; + +#endif Index: win32/vc10/scribus-main/Scribus.vcxproj =================================================================== --- win32/vc10/scribus-main/Scribus.vcxproj (revision 19097) +++ win32/vc10/scribus-main/Scribus.vcxproj (working copy) @@ -453,6 +453,7 @@ + @@ -998,6 +999,7 @@ + @@ -1202,6 +1204,7 @@ + Index: win32/vc10/scribus-main/Scribus.vcxproj.filters =================================================================== --- win32/vc10/scribus-main/Scribus.vcxproj.filters (revision 19097) +++ win32/vc10/scribus-main/Scribus.vcxproj.filters (working copy) @@ -3455,6 +3455,12 @@ Source Files + + Source Files + + + Generated Moc Files + @@ -4893,5 +4899,8 @@ Header Files + + Header Files + \ No newline at end of file Index: win32/vc10/Scribus.sln =================================================================== --- win32/vc10/Scribus.sln (revision 19097) +++ win32/vc10/Scribus.sln (working copy) @@ -53,11 +53,13 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gettext-odtim", "gettext-odtim\gettext-odtim.vcxproj", "{181977C6-17C1-4ADB-B16A-5C6A9CD95427}" ProjectSection(ProjectDependencies) = postProject {B17FCD80-7978-4544-93C4-2FE1AC6FE9F3} = {B17FCD80-7978-4544-93C4-2FE1AC6FE9F3} + {6CC39EED-B1E2-4209-8F65-0E6242EE63E5} = {6CC39EED-B1E2-4209-8F65-0E6242EE63E5} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gettext-sxwim", "gettext-sxwim\gettext-sxwim.vcxproj", "{743095DE-B828-40AF-92F7-96FB751E0AF2}" ProjectSection(ProjectDependencies) = postProject {B17FCD80-7978-4544-93C4-2FE1AC6FE9F3} = {B17FCD80-7978-4544-93C4-2FE1AC6FE9F3} + {6CC39EED-B1E2-4209-8F65-0E6242EE63E5} = {6CC39EED-B1E2-4209-8F65-0E6242EE63E5} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gettext-textfilter", "gettext-textfilter\gettext-textfilter.vcxproj", "{3CF57996-98BE-4C6A-85D6-91A85107D52A}"