Index: scribus/scribusdoc.h
===================================================================
--- scribus/scribusdoc.h	(révision 18925)
+++ scribus/scribusdoc.h	(copie de travail)
@@ -544,7 +544,6 @@
 	bool isDefaultStyle( const ParagraphStyle& p ) const { return docParagraphStyles.isDefault(p); }
 	bool isDefaultStyle( const CharStyle& c ) const { return docCharStyles.isDefault(c); }
 // 	bool isDefaultStyle( LineStyle& l ) const { return MLineStyles......; }
-
 	/**
 	 * Returns the table style named @a name.
 	 */
@@ -1045,6 +1044,8 @@
 	void itemSelection_SetNamedParagraphStyle(const QString & name, Selection* customSelection=0);
 	void itemSelection_SetNamedCharStyle(const QString & name, Selection* customSelection=0);
 	void itemSelection_SetNamedLineStyle(const QString & name, Selection* customSelection=0);
+	void itemSelection_SetNamedTableStyle(const QString & name, Selection* customSelection=0);
+	void itemSelection_SetNamedCellStyle(const QString & name, Selection* customSelection=0);
 
 	void itemSelection_SetSoftShadow(bool has, QString color, double dx, double dy, double radius, int shade, double opac, int blend);
 
Index: scribus/scribus.h
===================================================================
--- scribus/scribus.h	(révision 18925)
+++ scribus/scribus.h	(copie de travail)
@@ -641,6 +641,10 @@
 	int m_marksCount; //remember marks count from last call
 	bool m_WasAutoSave;
 	bool m_pagePalVisible;
+
+public:
+	//for styles shortcuts
+	bool stylesShortcutKeyEvent(const QKeyEvent*);
 };
 
 #endif
Index: scribus/scribusview.cpp
===================================================================
--- scribus/scribusview.cpp	(révision 18925)
+++ scribus/scribusview.cpp	(copie de travail)
@@ -4320,6 +4320,8 @@
 	else if (event->type() == QEvent::KeyPress)
 	{
 		QKeyEvent* m = static_cast<QKeyEvent*> (event);
+		if (m_ScMW->stylesShortcutKeyEvent(m))
+			return true;
 		if(m->key() == Qt::Key_Shift)
 		{
 			m_oldSnapToElem = Doc->SnapElement;
Index: scribus/ui/stylemanager.cpp
===================================================================
--- scribus/ui/stylemanager.cpp	(révision 18925)
+++ scribus/ui/stylemanager.cpp	(copie de travail)
@@ -1328,7 +1328,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/scribusdoc.cpp
===================================================================
--- scribus/scribusdoc.cpp	(révision 18925)
+++ scribus/scribusdoc.cpp	(copie de travail)
@@ -7966,8 +7966,14 @@
 		changed();
 	}
 }
+//FIX ME - please implement these method
+void ScribusDoc::itemSelection_SetNamedTableStyle(const QString &name, Selection* customSelection)
+{
+}
+void ScribusDoc::itemSelection_SetNamedCellStyle(const QString &name, Selection* customSelection)
+{
+}
 
-
 void ScribusDoc::itemSelection_SetItemPen(QString farbe)
 {
 	uint selectedItemCount=m_Selection->count();
Index: scribus/scribus.cpp
===================================================================
--- scribus/scribus.cpp	(révision 18925)
+++ scribus/scribus.cpp	(copie de travail)
@@ -10601,3 +10601,67 @@
 	d.exec();
 	*/
 }
+
+bool ScribusMainWindow::stylesShortcutKeyEvent(const QKeyEvent* k)
+{
+	int keyCode =0;
+	if (k->modifiers() & Qt::ShiftModifier)
+		keyCode |= Qt::SHIFT;
+	if (k->modifiers() & Qt::ControlModifier)
+		keyCode |= Qt::CTRL;
+	if (k->modifiers() & Qt::AltModifier)
+		keyCode |= Qt::ALT;
+	keyCode|=k->key();
+
+	QKeySequence key = QKeySequence(keyCode);
+	QString shortcut = key.toString();
+	if (shortcut.isEmpty())
+		return false;
+	//check if shortcut is used by setyles
+	for (int ff = 0; ff < doc->paragraphStyles().count(); ++ff)
+	{
+		if (doc->paragraphStyles()[ff].shortcut() == shortcut)
+		{
+			QString name = doc->paragraphStyles()[ff].name();
+			doc->itemSelection_SetNamedParagraphStyle(name);
+			return true;
+		}
+	}
+	for (int ff = 0; ff < doc->charStyles().count(); ++ff)
+	{
+		if (doc->charStyles()[ff].shortcut() == shortcut)
+		{
+			QString name = doc->charStyles()[ff].name();
+			doc->itemSelection_SetNamedCharStyle(name.isEmpty()? Style::INHERIT_PARENT : name);
+			return true;
+		}
+	}
+	for (QHash<QString,multiLine>::Iterator itMU = doc->MLineStyles.begin(); itMU != doc->MLineStyles.end(); ++itMU)
+	{
+		if (itMU.value().shortcut == shortcut)
+		{
+			QString name = itMU.key();
+			doc->itemSelection_SetNamedLineStyle(name.isEmpty()? Style::INHERIT_PARENT : name);
+			return true;
+		}
+	}
+	for (int ff = 0; ff < doc->tableStyles().count(); ++ff)
+	{
+		if (doc->tableStyles()[ff].shortcut() == shortcut)
+		{
+			QString name = doc->tableStyles()[ff].name();
+			doc->itemSelection_SetNamedTableStyle(name.isEmpty()? Style::INHERIT_PARENT : name);
+			return true;
+		}
+	}
+	for (int ff = 0; ff < doc->cellStyles().count(); ++ff)
+	{
+		if (doc->cellStyles()[ff].shortcut() == shortcut)
+		{
+			QString name = doc->cellStyles()[ff].name();
+			doc->itemSelection_SetNamedCellStyle(name.isEmpty()? Style::INHERIT_PARENT : name);
+			return true;
+		}
+	}
+	return false;
+}

