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<QString, QPointer<ScrAction> >::iterator it;
-	for (it = m_styleActions.begin(); it != m_styleActions.end(); ++it)
+	QMap<QString, QPointer<StyleShortcut> >::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<QString, QPointer<ScrAction> > m_styleActions;
+	QMap<QString, QPointer<StyleShortcut> > 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 <QKeySequence>
+#include <QShortcut>
+#include <QString>
+
+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 @@
     <moc Include="..\..\..\scribus\upgradechecker.h" />
     <moc Include="..\..\..\scribus\ui\proptree.h" />
     <moc Include="..\..\..\scribus\ui\viewtoolbar.h" />
+    <moc Include="..\..\..\scribus\ui\styleshortcut.h" />
     <ClInclude Include="resource.h" />
     <ClInclude Include="..\..\..\scribus\resourcecollection.h" />
     <moc Include="..\..\..\scribus\ui\rulermover.h" />
@@ -998,6 +999,7 @@
     <ClCompile Include="..\..\..\scribus\mesh.cpp" />
     <ClCompile Include="..\..\..\scribus\ui\missing.cpp" />
     <ClCompile Include="..\..\..\scribus\ui\moc_proptree.cpp" />
+    <ClCompile Include="..\..\..\scribus\ui\moc_styleshortcut.cpp" />
     <ClCompile Include="..\..\..\scribus\ui\moc_viewtoolbar.cpp" />
     <ClCompile Include="..\..\..\scribus\ui\modetoolbar.cpp" />
     <ClCompile Include="..\..\..\scribus\ui\movepage.cpp" />
@@ -1202,6 +1204,7 @@
     <ClCompile Include="..\..\..\scribus\scribusapp.cpp" />
     <ClCompile Include="..\..\..\scribus\scribuscore.cpp" />
     <ClCompile Include="..\..\..\scribus\scribusdoc.cpp" />
+    <ClCompile Include="..\..\..\scribus\ui\styleshortcut.cpp" />
     <ClCompile Include="..\..\..\scribus\ui\viewtoolbar.cpp" />
     <ClCompile Include="..\..\..\scribus\upgradechecker.cpp" />
     <ClCompile Include="scribuspch.cpp">
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 @@
     <ClCompile Include="..\..\..\scribus\ui\viewtoolbar.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\..\scribus\ui\styleshortcut.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\scribus\ui\moc_styleshortcut.cpp">
+      <Filter>Generated Moc Files</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="Scribus.rc">
@@ -4893,5 +4899,8 @@
     <moc Include="..\..\..\scribus\ui\viewtoolbar.h">
       <Filter>Header Files</Filter>
     </moc>
+    <moc Include="..\..\..\scribus\ui\styleshortcut.h">
+      <Filter>Header Files</Filter>
+    </moc>
   </ItemGroup>
 </Project>
\ 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}"
