Author: jghali
Date: Thu Apr 5 22:42:52 2018
New Revision: 22466
URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22466
Log:
#15248: After changing the "Hyphenation Character", Scribus crashes
Modified:
trunk/Scribus/scribus/scribusdoc.cpp
Modified: trunk/Scribus/scribus/scribusdoc.cpp
URL:
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22466&path=/trunk/Scribus/scribus/scribusdoc.cpp
==============================================================================
--- trunk/Scribus/scribus/scribusdoc.cpp (original)
+++ trunk/Scribus/scribus/scribusdoc.cpp Thu Apr 5 22:42:52 2018
@@ -8001,7 +8001,7 @@
{
CharStyle newStyle;
newStyle.setHyphenWordMin(wordMin);
- itemSelection_ApplyCharStyle(newStyle, customSelection,
"HYPHENWORDMIN");
+ itemSelection_ApplyCharStyle(newStyle, customSelection,
"HYPHEN_WORDMIN");
}
void ScribusDoc::itemSelection_SetHyphenConsecutiveLines(int consecutiveLines,
Selection* customSelection)
@@ -8015,7 +8015,7 @@
{
CharStyle newStyle;
newStyle.setHyphenChar(hyphenChar);
- itemSelection_ApplyCharStyle(newStyle, customSelection);
+ itemSelection_ApplyCharStyle(newStyle, customSelection, "HYPHEN_CHAR");
}
void ScribusDoc::itemSelection_SetNamedCharStyle(const QString& name,
Selection* customSelection)
@@ -9496,13 +9496,20 @@
UndoState* state =
m_undoManager->getLastUndo();
ScItemState<QPair<CharStyle,CharStyle> > *is = NULL;
SimpleState *ss = NULL;
- TransactionState *ts =
dynamic_cast<TransactionState*>(state);
- if (state &&
state->isTransaction())
+ TransactionState *ts = NULL;
+ while (state &&
state->isTransaction())
+ {
+ ts =
dynamic_cast<TransactionState*>(state);
ss =
dynamic_cast<SimpleState*>(ts->last());
- if (ss && ss->get("ETEA") ==
ETEA)
+ state = ts->last();
+ }
+ if (ts && ss && ss->get("ETEA")
== ETEA)
{
- for (uint i=0; i <
ts->sizet(); i++) {
- is =
dynamic_cast<ScItemState<QPair<CharStyle,CharStyle> > *>(ts->at(i));
+ for (int i =
ts->sizet() - 1; i >= 0; --i)
+ {
+ is =
dynamic_cast<ScItemState<QPair<CharStyle, CharStyle> > *>(ts->at(i));
+ if (!is ||
(is->get("ETEA") != ETEA))
+ break;
is->setItem(qMakePair(newStyle, is->getItem().second));
}
}
_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit