Index: scribus/scribusdoc.cpp =================================================================== --- scribus/scribusdoc.cpp (wersja 16859) +++ scribus/scribusdoc.cpp (kopia robocza) @@ -6564,8 +6564,13 @@ changed(); } } +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(); @@ -14268,3 +14273,71 @@ } } +bool ScribusDoc::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(); + + //check if shortcut is used by setyles + for (int ff = 0; ff < paragraphStyles().count(); ++ff) + { + if (paragraphStyles()[ff].shortcut() == shortcut) + { + QString name = paragraphStyles()[ff].name(); + itemSelection_SetNamedParagraphStyle(name); +// ParagraphStyle newStyle; +// newStyle.setParent(name.isEmpty()? Style::INHERIT_PARENT : name); +// itemSelection_ApplyParagraphStyle(newStyle, m_Selection, true); + return true; + } + } + for (int ff = 0; ff < charStyles().count(); ++ff) + { + if (charStyles()[ff].shortcut() == shortcut) + { + QString name = charStyles()[ff].name(); + itemSelection_SetNamedCharStyle(name.isEmpty()? Style::INHERIT_PARENT : name); +// CharStyle newStyle; +// newStyle.setParent(name.isEmpty()? Style::INHERIT_PARENT : name); +// itemSelection_ApplyCharStyle(charStyles()[ff]); + return true; + } + } + for (QMap::Iterator itMU = MLineStyles.begin(); itMU != MLineStyles.end(); ++itMU) + { + if (itMU.value().shortcut == shortcut) + { + QString name = itMU.key(); + itemSelection_SetNamedLineStyle(name.isEmpty()? Style::INHERIT_PARENT : name); + return true; + } + } + for (int ff = 0; ff < tableStyles().count(); ++ff) + { + if (tableStyles()[ff].shortcut() == shortcut) + { + QString name = tableStyles()[ff].name(); + itemSelection_SetNamedTableStyle(name.isEmpty()? Style::INHERIT_PARENT : name); + return true; + } + } + for (int ff = 0; ff < cellStyles().count(); ++ff) + { + if (cellStyles()[ff].shortcut() == shortcut) + { + QString name = cellStyles()[ff].name(); + itemSelection_SetNamedCellStyle(name.isEmpty()? Style::INHERIT_PARENT : name); + return true; + } + } + return false; +} Index: scribus/scribusdoc.h =================================================================== --- scribus/scribusdoc.h (wersja 16859) +++ scribus/scribusdoc.h (kopia robocza) @@ -520,7 +520,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. */ @@ -996,6 +995,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_SetLineWidth(double w); void itemSelection_SetLineArt(Qt::PenStyle w); @@ -1529,6 +1530,10 @@ void updatePict(QString name); void updatePictDir(QString name); void removePict(QString name); + +//for styles shortcuts +public: + bool stylesShortcutKeyEvent(const QKeyEvent*); }; Q_DECLARE_METATYPE(ScribusDoc*); Index: scribus/scribusview.cpp =================================================================== --- scribus/scribusview.cpp (wersja 16859) +++ scribus/scribusview.cpp (kopia robocza) @@ -4214,6 +4214,8 @@ else if (event->type() == QEvent::KeyPress) { QKeyEvent* m = static_cast (event); + if (Doc->stylesShortcutKeyEvent(m)) + return true; if (m_canvasMode->handleKeyEvents()) m_canvasMode->keyPressEvent(m); else Index: scribus/ui/stylemanager.cpp =================================================================== --- scribus/ui/stylemanager.cpp (wersja 16859) +++ scribus/ui/stylemanager.cpp (kopia robocza) @@ -1318,7 +1318,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);