1 /*
2 For general Scribus (>=1.3.2) copyright and licensing information please refer
3 to the COPYING file provided with the program. Following this notice may exist
4 a copyright and/or license notice that predates the release of Scribus 1.3.2
5 for which a new license (GPL+exception) is in place.
6 */
7 /***************************************************************************
8 * Copyright (C) 2005 by Riku Leino *
9 * riku@scribus.info *
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 * This program is distributed in the hope that it will be useful, *
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
19 * GNU General Public License for more details. *
20 * *
21 * You should have received a copy of the GNU General Public License *
22 * along with this program; if not, write to the *
23 * Free Software Foundation, Inc., *
24 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
25 ***************************************************************************/
26
27 #include "undomanager.h"
28
29 #include <QDebug>
30 #include <QList>
31 #include <QPixmap>
32
33 #include "prefscontext.h"
34 #include "prefsfile.h"
35 #include "prefsmanager.h"
36 #include "scconfig.h"
37 #include "scpaths.h"
38 #include "scraction.h"
39 #include "scribuscore.h"
40 #include "undogui.h"
41 #include "undostack.h"
42 #include "undotransaction.h"
43
44 UndoManager* UndoManager::m_instance = nullptr;
45 bool UndoManager::m_undoEnabled = true;
46 int UndoManager::m_undoEnabledCounter = 0;
47
instance()48 UndoManager* UndoManager::instance()
49 {
50 if (m_instance == nullptr)
51 m_instance = new UndoManager();
52
53 return m_instance;
54 }
55
setUndoEnabled(bool isEnabled)56 void UndoManager::setUndoEnabled(bool isEnabled)
57 {
58 if (isEnabled && m_undoEnabledCounter == 0)
59 return; // nothing to do undo is already enabled.
60 if (isEnabled && m_undoEnabledCounter > 0)
61 --m_undoEnabledCounter;
62 else if (!isEnabled)
63 ++m_undoEnabledCounter;
64
65 m_undoEnabled = m_undoEnabledCounter == 0;
66 if (m_undoEnabled)
67 connectGuis();
68 else if (m_undoEnabledCounter == 1)
69 disconnectGuis(); // disconnect only once when setUndoEnabled(false) has been called
70 // no need to call again if next setUndoEnabled() call will also be false.
71 }
72
undoEnabled()73 bool UndoManager::undoEnabled()
74 {
75 return m_undoEnabled;
76 }
77
UndoManager()78 UndoManager::UndoManager()
79 {
80 m_currentUndoObjectId = -1;
81 if (!UndoManager::IGuides)
82 initIcons();
83 prefs_ = PrefsManager::instance().prefsFile->getContext("undo");
84 languageChange();
85 setUndoEnabled(prefs_->getBool("enabled", true));
86 }
87
beginTransaction(const TransactionSettings & settings)88 UndoTransaction UndoManager::beginTransaction(const TransactionSettings& settings)
89 {
90 return UndoManager::beginTransaction(settings.targetName, settings.targetPixmap, settings.actionName,
91 settings.description, settings.actionPixmap);
92 }
93
beginTransaction(const QString & targetName,QPixmap * targetPixmap,const QString & name,const QString & description,QPixmap * actionPixmap)94 UndoTransaction UndoManager::beginTransaction(const QString &targetName,
95 QPixmap *targetPixmap,
96 const QString &name,
97 const QString &description,
98 QPixmap *actionPixmap)
99 {
100 if (!m_undoEnabled)
101 return UndoTransaction(nullptr);
102
103 /** @brief Dummy object for storing transaction target's name */
104 UndoObject* transactionTarget_ = new DummyUndoObject();
105 TransactionState* transactionState_ = new TransactionState();
106 transactionTarget_->setUName(targetName); // Name which will be in action history
107 if (targetPixmap)
108 transactionTarget_->setUPixmap(targetPixmap);
109 if (name.length() > 0) // if left to 0 length action will be fetched from the
110 transactionState_->setName(name); // last added UndoState in this transaction
111 if (description.length() > 0)
112 transactionState_->setDescription(description); // tool tip for action history
113 if (actionPixmap)
114 transactionState_->setPixmap(actionPixmap); // for action history
115
116 // Holds the state and data of this transaction:
117 TransactionData *transaction = new TransactionData();
118 transaction->transactionObject = transactionTarget_;
119 transaction->transactionState = transactionState_;
120 transaction->stackLevel = m_transactions.size();
121 transaction->UM = this;
122
123 m_transactions.push_back(transaction);
124
125 // qDebug() << "UndoManager::beginTransaction" << targetName << name << transaction;
126 return UndoTransaction(transaction);
127 }
128
isTransactionMode()129 bool UndoManager::isTransactionMode()
130 {
131 return !m_transactions.empty();
132 }
133
registerGui(UndoGui * gui)134 void UndoManager::registerGui(UndoGui* gui)
135 {
136 if (gui == nullptr)
137 return;
138
139 setUndoEnabled(false);
140 setState(gui);
141 m_undoGuis.push_back(gui);
142 setUndoEnabled(true);
143 }
144
setState(UndoGui * gui,int uid)145 void UndoManager::setState(UndoGui* gui, int uid)
146 {
147 gui->clear();
148
149 if ( m_stacks[m_currentDoc].size() == 0 )
150 return;
151
152 UndoStack& currentStack = m_stacks[m_currentDoc];
153
154 StateList::iterator itstartU = currentStack.m_undoActions_.begin(); // undo actions
155 StateList::iterator itendU = currentStack.m_undoActions_.end();
156
157 StateList::iterator itstartR = currentStack.m_redoActions_.begin(); // redo actions
158 StateList::iterator itendR = currentStack.m_redoActions_.end();
159
160 if (uid > -1)
161 { // find the range from where actions are added when in obj. spec. mode
162 StateList::iterator it2;
163 for (it2 = currentStack.m_undoActions_.begin();
164 it2 != currentStack.m_undoActions_.end(); ++it2)
165 {
166 UndoState* tmp = *it2;
167 TransactionState *ts = dynamic_cast<TransactionState*>(tmp);
168 if (ts && !ts->containsOnly(uid))
169 {
170 if (it2 != currentStack.m_undoActions_.begin())
171 itendU = --it2;
172 break;
173 }
174 }
175 StateList::iterator it3;
176 for (it3 = currentStack.m_redoActions_.begin();
177 it3 != currentStack.m_redoActions_.end(); ++it3)
178 {
179 UndoState* tmp = *it3;
180 TransactionState *ts = dynamic_cast<TransactionState*>(tmp);
181 if (ts && !ts->containsOnly(uid))
182 {
183 itendR = it3;
184 break;
185 }
186 }
187 }
188
189 if (currentStack.undoItems() > 0)
190 {
191 if (itendU == currentStack.m_undoActions_.end())
192 --itendU;
193 for (; itendU >= itstartU; --itendU) // insert undo actions
194 {
195 UndoState* state = *itendU;
196 UndoObject* target = state->undoObject();
197
198 if (target && (uid == -1 || target->getUId() == static_cast<uint>(uid)))
199 gui->insertUndoItem(target, state);
200 if (itendU == itstartU)
201 break;
202 }
203 }
204
205 if (currentStack.redoItems() > 0)
206 {
207 if (itendR > itstartR)
208 --itendR;
209 for (; itstartR <= itendR; ++itstartR) // insert redo actions
210 {
211 UndoState* state = *itstartR;
212 UndoObject* target = state->undoObject();
213
214 if (target && (uid == -1 || target->getUId() == static_cast<uint>(uid)))
215 gui->insertRedoItem(target, state);
216 if (itendR == itstartR)
217 break;
218 }
219 }
220 }
221
connectGuis()222 void UndoManager::connectGuis()
223 {
224 for (uint i = 0; i < m_undoGuis.size(); ++i)
225 {
226 UndoGui *gui = m_undoGuis[i];
227
228 connect(gui, SIGNAL(undo(int)), this, SLOT(undo(int)));
229 connect(gui, SIGNAL(redo(int)), this, SLOT(redo(int)));
230 connect(this, SIGNAL(newAction(UndoObject*,UndoState*)), gui, SLOT(insertUndoItem(UndoObject*,UndoState*)));
231 connect(this, SIGNAL(popBack()), gui, SLOT(popBack()));
232 connect(this, SIGNAL(undoSignal(int)), gui, SLOT(updateUndo(int)));
233 connect(this, SIGNAL(redoSignal(int)), gui, SLOT(updateRedo(int)));
234 connect(this, SIGNAL(clearRedo()), gui, SLOT(clearRedo()));
235 gui->setEnabled(true);
236 gui->updateUndoActions();
237 }
238 }
239
disconnectGuis()240 void UndoManager::disconnectGuis()
241 {
242 for (uint i = 0; i < m_undoGuis.size(); ++i)
243 {
244 UndoGui *gui = m_undoGuis[i];
245
246 disconnect(gui, SIGNAL(undo(int)), this, SLOT(undo(int)));
247 disconnect(gui, SIGNAL(redo(int)), this, SLOT(redo(int)));
248 disconnect(this, SIGNAL(newAction(UndoObject*, UndoState*)),
249 gui, SLOT(insertUndoItem(UndoObject*, UndoState*)));
250 disconnect(this, SIGNAL(popBack()), gui, SLOT(popBack()));
251 disconnect(this, SIGNAL(undoSignal(int)), gui, SLOT(updateUndo(int)));
252 disconnect(this, SIGNAL(redoSignal(int)), gui, SLOT(updateRedo(int)));
253 disconnect(this, SIGNAL(clearRedo()), gui, SLOT(clearRedo()));
254 gui->setEnabled(false);
255 }
256 }
257
removeGui(UndoGui * gui)258 void UndoManager::removeGui(UndoGui* gui)
259 {
260 std::vector<UndoGui*>::iterator it = m_undoGuis.begin();
261 while (it != m_undoGuis.end())
262 {
263 if (*it == gui)
264 it = m_undoGuis.erase(it);
265 else
266 ++it;
267 }
268 }
269
270
switchStack(const QString & stackName)271 void UndoManager::switchStack(const QString& stackName)
272 {
273 if (stackName == m_currentDoc)
274 return; // already current stack
275 m_currentDoc = stackName;
276 if (!m_stacks.contains(m_currentDoc))
277 m_stacks[m_currentDoc] = UndoStack();
278
279 m_stacks[m_currentDoc].setMaxSize(prefs_->getInt("historylength", 100));
280 for (size_t i = 0; i < m_undoGuis.size(); ++i)
281 setState(m_undoGuis[i]);
282
283 setTexts();
284 }
285
renameStack(const QString & newName)286 void UndoManager::renameStack(const QString& newName)
287 {
288 if (m_currentDoc == newName)
289 return;
290
291 if (m_stacks[m_currentDoc].size() == 0)
292 {
293 m_currentDoc = newName;
294 return;
295 }
296
297 UndoStack tmp(m_stacks[m_currentDoc]);
298 m_stacks.remove(m_currentDoc);
299 m_stacks[newName] = tmp;
300 m_currentDoc = newName;
301 }
302
removeStack(const QString & stackName)303 void UndoManager::removeStack(const QString& stackName)
304 {
305 if (m_stacks.contains(stackName))
306 {
307 m_stacks[stackName].clear();
308 m_stacks.remove(stackName);
309 if (m_currentDoc == stackName)
310 {
311 for (size_t i = 0; i < m_undoGuis.size(); ++i)
312 m_undoGuis[i]->clear();
313 m_currentDoc = "__no_name__";
314 }
315 }
316 }
317
clearStack()318 void UndoManager::clearStack()
319 {
320 m_stacks[m_currentDoc].clear();
321 for (size_t i = 0; i < m_undoGuis.size(); ++i)
322 {
323 m_undoGuis[i]->clear();
324 setState(m_undoGuis[i]);
325 }
326 }
327
action(UndoObject * target,UndoState * state,QPixmap * targetPixmap)328 void UndoManager::action(UndoObject* target, UndoState* state, QPixmap *targetPixmap)
329 {
330 QPixmap *oldIcon = nullptr;
331 if (targetPixmap)
332 {
333 oldIcon = target->getUPixmap();
334 target->setUPixmap(targetPixmap);
335 }
336
337 if (!m_undoEnabled) // if so flush down the state
338 {
339 TransactionState *ts = dynamic_cast<TransactionState*>(state);
340 if (ts) // flush the TransactionObject too
341 delete target;
342 delete state;
343 return;
344 }
345
346 if (!isTransactionMode() &&
347 (m_currentUndoObjectId == -1 || m_currentUndoObjectId == static_cast<long>(target->getUId())))
348 {
349 // qDebug() << "UndoManager: new Action" << state->getName() << "for" << currentUndoObjectId_;
350 emit newAction(target, state); // send action to the guis
351 }
352 else
353 {
354 emit clearRedo();
355 }
356 if (isTransactionMode())
357 {
358 // qDebug() << "UndoManager: Action stored for transaction:" << transactions_.back() << target->getUName() << state->getName();
359 m_transactions.back()->transactionState->pushBack(target, state);
360 }
361 else
362 {
363 // qDebug() << "UndoManager: Action executed:" << target->getUName() << state->getName();
364 state->setUndoObject(target);
365 if (m_stacks[m_currentDoc].action(state))
366 emit popBack();
367 }
368 if (targetPixmap)
369 target->setUPixmap(oldIcon);
370
371 setTexts();
372 }
373
action(UndoObject * target,UndoState * state,const QString & targetName,QPixmap * targetPixmap)374 void UndoManager::action(UndoObject* target, UndoState* state,
375 const QString &targetName, QPixmap *targetPixmap)
376 {
377 QString oldName = target->getUName();
378 if (!targetName.isEmpty())
379 target->setUName(targetName);
380 action(target, state, targetPixmap);
381 target->setUName(oldName);
382 }
383
getLastUndo()384 UndoState* UndoManager::getLastUndo()
385 {
386 UndoState* state = m_stacks[m_currentDoc].getNextUndo(Um::GLOBAL_UNDO_MODE);
387 return state;
388 }
389
undo(int steps)390 void UndoManager::undo(int steps)
391 {
392 if (!m_undoEnabled)
393 return;
394
395 emit undoRedoBegin();
396 setUndoEnabled(false);
397 m_stacks[m_currentDoc].undo(steps, m_currentUndoObjectId);
398 setUndoEnabled(true);
399 emit undoSignal(steps);
400 emit undoRedoDone();
401 setTexts();
402 }
403
redo(int steps)404 void UndoManager::redo(int steps)
405 {
406 if (!m_undoEnabled)
407 return;
408
409 emit undoRedoBegin();
410 setUndoEnabled(false);
411 m_stacks[m_currentDoc].redo(steps, m_currentUndoObjectId);
412 setUndoEnabled(true);
413 emit redoSignal(steps);
414 emit undoRedoDone();
415 setTexts();
416 }
417
hasUndoActions(int)418 bool UndoManager::hasUndoActions(int )
419 {
420 // TODO Needs to fixed for object specific mode
421 return m_stacks[m_currentDoc].undoItems() > 0;
422 }
423
hasRedoActions(int)424 bool UndoManager::hasRedoActions(int )
425 {
426 // TODO Needs to be fixed for object specific mode
427 return m_stacks[m_currentDoc].redoItems() > 0;
428 }
429
showObject(int uid)430 void UndoManager::showObject(int uid)
431 {
432 if (m_currentUndoObjectId == uid)
433 return;
434 setUndoEnabled(false);
435 m_currentUndoObjectId = uid;
436 for (uint i = 0; i < m_undoGuis.size(); ++i)
437 {
438 if (uid == -2)
439 m_undoGuis[i]->clear();
440 else
441 setState(m_undoGuis[i], m_currentUndoObjectId);
442 }
443 setUndoEnabled(true);
444 setTexts();
445 }
446
replaceObject(ulong uid,UndoObject * newUndoObject)447 UndoObject* UndoManager::replaceObject(ulong uid, UndoObject *newUndoObject)
448 {
449 UndoObject *tmp = nullptr;
450 TransactionState* transaction_ = nullptr;
451 if (!m_transactions.empty())
452 transaction_ = m_transactions.at(m_transactions.size()-1)->transactionState;
453 for (uint i = 0; i < m_stacks[m_currentDoc].m_undoActions_.size(); ++i)
454 {
455 UndoState *tmpState = m_stacks[m_currentDoc].m_undoActions_[i];
456 TransactionState *ts = dynamic_cast<TransactionState*>(tmpState);
457 if (ts)
458 tmp = ts->replace(uid, newUndoObject);
459 else if (tmpState->undoObject() && tmpState->undoObject()->getUId() == uid)
460 {
461 tmp = tmpState->undoObject();
462 tmpState->setUndoObject(newUndoObject);
463 }
464 }
465 for (uint i = 0; i < m_stacks[m_currentDoc].m_redoActions_.size(); ++i)
466 {
467 UndoState *tmpState = m_stacks[m_currentDoc].m_redoActions_[i];
468 TransactionState *ts = dynamic_cast<TransactionState*>(tmpState);
469 if (ts)
470 tmp = ts->replace(uid, newUndoObject);
471 else if (tmpState->undoObject() && tmpState->undoObject()->getUId() == uid)
472 {
473 tmp = tmpState->undoObject();
474 tmpState->setUndoObject(newUndoObject);
475 }
476 }
477 if (transaction_) // replace also in the currently open transaction
478 tmp = transaction_->replace(uid, newUndoObject);
479 return tmp;
480 }
481
setHistoryLength(int steps)482 void UndoManager::setHistoryLength(int steps)
483 {
484 if (steps >= 0)
485 {
486 m_stacks[m_currentDoc].setMaxSize(static_cast<uint>(steps));
487 prefs_->set("historylength", m_stacks[m_currentDoc].maxSize());
488 }
489 }
490
setAllHistoryLengths(int steps)491 void UndoManager::setAllHistoryLengths(int steps)
492 {
493 if (steps >= 0)
494 {
495 for (StackMap::Iterator it = m_stacks.begin(); it != m_stacks.end(); ++it )
496 {
497 it.value().setMaxSize(static_cast<uint>(steps));
498 }
499 prefs_->set("historylength", steps);
500 }
501 }
502
getHistoryLength()503 int UndoManager::getHistoryLength()
504 {
505 if (!m_stacks.empty() && m_stacks[m_currentDoc].redoItems() > 0)
506 return -1;
507 return static_cast<int>(m_stacks[m_currentDoc].maxSize());
508 }
509
isGlobalMode()510 bool UndoManager::isGlobalMode()
511 {
512 return m_currentUndoObjectId == -1;
513 }
514
setTexts()515 void UndoManager::setTexts()
516 {
517 ScribusMainWindow* scMW = ScCore->primaryMainWindow();
518 UndoStack& currentStack = m_stacks[m_currentDoc];
519
520 if (currentStack.undoItems() > 0)
521 {
522 UndoState *state = currentStack.getNextUndo(m_currentUndoObjectId);
523 if (state)
524 scMW->scrActions["editUndoAction"]->setTexts(QString(Um::MenuUndo).arg(state->getName()));
525 else
526 scMW->scrActions["editUndoAction"]->setTexts(Um::MenuUndoEmpty);
527 }
528 else
529 scMW->scrActions["editUndoAction"]->setTexts(Um::MenuUndoEmpty);
530
531 if (currentStack.redoItems() > 0)
532 {
533 UndoState *state = currentStack.getNextRedo(m_currentUndoObjectId);
534 if (state)
535 scMW->scrActions["editRedoAction"]->setTexts(QString(Um::MenuRedo).arg(state->getName()));
536 else
537 scMW->scrActions["editRedoAction"]->setTexts(Um::MenuRedoEmpty);
538 }
539 else
540 scMW->scrActions["editRedoAction"]->setTexts(Um::MenuRedoEmpty);
541 }
542
deleteInstance()543 void UndoManager::deleteInstance()
544 {
545 delete m_instance;
546 m_instance = nullptr;
547 }
548
~UndoManager()549 UndoManager::~UndoManager()
550 {
551 StackMap::iterator it;
552 for (it = m_stacks.begin(); it != m_stacks.end(); ++it)
553 {
554 for (uint i = 0; i < (*it).size(); ++i)
555 {
556 (*it).clear();
557 }
558 }
559 m_stacks.clear();
560 }
561
562 /*************************************************************************************/
563
languageChange()564 void UndoManager::languageChange()
565 {
566 UndoManager::ConnectPath = tr("Connect path");
567 UndoManager::AddVGuide = tr("Add vertical guide");
568 UndoManager::AddHGuide = tr("Add horizontal guide");
569 UndoManager::DelVGuide = tr("Remove vertical guide");
570 UndoManager::DelHGuide = tr("Remove horizontal guide");
571 UndoManager::DelVAGuide = tr("Remove vertical auto guide");
572 UndoManager::DelHAGuide = tr("Remove horizontal auto guide");
573 UndoManager::MoveVGuide = tr("Move vertical guide");
574 UndoManager::MoveHGuide = tr("Move horizontal guide");
575 UndoManager::LockGuides = tr("Lock guides");
576 UndoManager::UnlockGuides = tr("Unlock guides");
577 UndoManager::Overprint = tr("Change overprint");
578 UndoManager::BlendMode = tr("Change blend mode");
579 UndoManager::ActionPDF = tr("Change action PDF");
580 UndoManager::Move = tr("Move");
581 UndoManager::NewMasterPage = tr("Add master page");
582 UndoManager::DelMasterPage = tr("Del master page");
583 UndoManager::ImportMasterPage = tr("Import master page");
584 UndoManager::DuplicateMasterPage= tr("Duplicate master page");
585 UndoManager::ApplyMasterPage = tr("Apply Master Page");
586 UndoManager::RenameMasterPage = tr("Rename Master Page");
587 UndoManager::UniteItem = tr("Combine Polygons");
588 UndoManager::SplitItem = tr("Split Polygons");
589 UndoManager::Resize = tr("Resize");
590 UndoManager::Rotate = tr("Rotate");
591 UndoManager::MoveFromTo = tr("X1: %1, Y1: %2, %3\nX2: %4, Y2: %5, %6");
592 UndoManager::ResizeFromTo = tr("W1: %1, H1: %2\nW2: %3, H2: %4");
593 UndoManager::ImageOffset = tr("Change Image Offset");
594 UndoManager::ImageScale = tr("Change Image Scale");
595 UndoManager::ImageOffsetFromTo = tr("X1: %1, Y1: %2\nX2: %4, Y2: %5");
596 UndoManager::ImageScaleFromTo = tr("X: %1, Y: %2\nX: %4, Y: %5");
597 UndoManager::Selection = tr("Selection");
598 UndoManager::Group = tr("Group");
599 UndoManager::SelectionGroup = tr("Selection/Group");
600 UndoManager::Create = tr("Create");
601 UndoManager::LevelUp = tr("Level up");
602 UndoManager::LevelDown = tr("Level down");
603 UndoManager::LevelTop = tr("Send to front");
604 UndoManager::LevelBottom = tr("Send to bottom");
605 UndoManager::CreateTo = tr("X: %1, Y: %2\nW: %3, H: %4");
606 UndoManager::AlignDistribute = tr("Align/Distribute");
607 UndoManager::ItemsInvolved = tr("Items involved");
608 UndoManager::ItemsInvolved2 = tr("More than 20 items involved");
609 UndoManager::Cancel = tr("Cancel");
610 UndoManager::SetFill = tr("Set fill color");
611 UndoManager::ColorFromTo = tr("Color1: %1, Color2: %2");
612 UndoManager::SetShade = tr("Set fill color shade");
613 UndoManager::SetLineColor = tr("Set line color");
614 UndoManager::SetLineShade = tr("Set line color shade");
615 UndoManager::FlipH = tr("Flip horizontally");
616 UndoManager::FlipV = tr("Flip vertically");
617 UndoManager::Lock = tr("Lock");
618 UndoManager::ResTyp = tr("Change image resolution");
619 UndoManager::UnLock = tr("Unlock");
620 UndoManager::SizeLock = tr("Lock size");
621 UndoManager::GradTypeMask = tr("Set mask gradient type");
622 UndoManager::SizeUnLock = tr("Unlock size");
623 UndoManager::EnablePrint = tr("Enable Item Printing");
624 UndoManager::DisablePrint = tr("Disable Item Printing");
625 UndoManager::Ungroup = tr("Ungroup");
626 UndoManager::Delete = tr("Delete");
627 UndoManager::Rename = tr("Rename");
628 UndoManager::FromTo = tr("From %1\nto %2");
629 UndoManager::Paste = tr("Paste");
630 UndoManager::Cut = tr("Cut");
631 UndoManager::RoundCorner = tr("Change round corner");
632 UndoManager::Transparency = tr("Set fill color transparency");
633 UndoManager::LineTransparency = tr("Set line color transparency");
634 UndoManager::LineStyle = tr("Set line style");
635 UndoManager::LineEnd = tr("Set the style of line end");
636 UndoManager::LineJoin = tr("Set the style of line join");
637 UndoManager::LineWidth = tr("Set line width");
638 UndoManager::NoStyle = tr("No style");
639 UndoManager::CustomLineStyle = tr("Set custom line style");
640 UndoManager::NoLineStyle = tr("Do not use custom line style");
641 UndoManager::StartArrow = tr("Set start arrow");
642 UndoManager::EndArrow = tr("Set end arrow");
643 UndoManager::StartAndEndArrow = tr("Set start and end arrows");
644 UndoManager::CreateTable = tr("Create table");
645 UndoManager::RowsCols = tr("Rows: %1, Cols: %2");
646 UndoManager::SetFont = tr("Set font");
647 UndoManager::SetFontSize = tr("Set font size");
648 UndoManager::StartArrowScale = tr("Set start arrow scale");
649 UndoManager::EndArrowScale = tr("Set end arrow scale");
650 UndoManager::SetFontSize = tr("Set font size");
651 UndoManager::SetFontWidth = tr("Set font width");
652 UndoManager::SetFontHeight = tr("Set font height");
653 UndoManager::GradType = tr("Change fill gradient type");
654 UndoManager::GradVal = tr("Change fill gradient values");
655 UndoManager::GradValStroke = tr("Change stroke gradient values");
656 UndoManager::GradCol = tr("Change gradient color");
657 UndoManager::GradTypeStroke = tr("Change stroke gradient type");
658 UndoManager::SetFontFill = tr("Set font fill color");
659 UndoManager::SetFontStroke = tr("Set font stroke color");
660 UndoManager::SetFontFillShade = tr("Set font fill color shade");
661 UndoManager::SetFontStrokeShade = tr("Set font stroke color shade");
662 UndoManager::SetKerning = tr("Set kerning");
663 UndoManager::SetLineSpacing = tr("Set line spacing");
664 UndoManager::SetStyle = tr("Set paragraph style");
665 UndoManager::SetLanguage = tr("Set language");
666 UndoManager::AlignText = tr("Align text");
667 UndoManager::SetFontEffect = tr("Set font effect");
668 UndoManager::ImageFrame = tr("Image frame");
669 UndoManager::TextFrame = tr("Text frame");
670 UndoManager::Layer = tr("Layer");
671 UndoManager::LatexFrame = tr("Render frame");
672 UndoManager::Polygon = tr("Polygon");
673 UndoManager::EditPolygon = tr("Edit polygon");
674 UndoManager::EditArc = tr("Edit arc");
675 UndoManager::EditSpiral = tr("Edit spiral");
676 UndoManager::BezierCurve = tr("Bezier curve");
677 UndoManager::Polyline = tr("Polyline");
678 UndoManager::PathText = tr("Text on a Path");
679 UndoManager::ConvertTo = tr("Convert to");
680 UndoManager::ImportAI = tr("Import AI drawing");
681 UndoManager::ImportApplePages = tr("Import Apple Pages document");
682 UndoManager::ImportBarcode = tr("Import Barcode");
683 UndoManager::ImportCDR = tr("Import CorelDraw drawing");
684 UndoManager::ImportCGM = tr("Import CGM drawing");
685 UndoManager::ImportCVG = tr("Import Calamus CVG drawing");
686 UndoManager::ImportDRW = tr("Import Micrografx Draw drawing");
687 UndoManager::ImportEMF = tr("Import EMF drawing");
688 UndoManager::ImportEPS = tr("Import EPS image");
689 UndoManager::ImportFreehand = tr("Import FreeHand document");
690 UndoManager::ImportIDML = tr("Import IDML document");
691 UndoManager::ImportOOoDraw = tr("Import OpenOffice.org Draw image");
692 UndoManager::ImportPageMaker = tr("Import PageMaker document");
693 UndoManager::ImportPDF = tr("Import PDF document");
694 UndoManager::ImportPict = tr("Import Macintosh Pict drawing");
695 UndoManager::ImportPublisher = tr("Import MS Publisher document");
696 UndoManager::ImportQXP = tr("Import QuarkXPress document");
697 UndoManager::ImportShape = tr("Import Shape drawing");
698 UndoManager::ImportSML = tr("Import Kivio stencil");
699 UndoManager::ImportSVG = tr("Import SVG image");
700 UndoManager::ImportSVM = tr("Import SVM image");
701 UndoManager::ImportUniconv = tr("Import Uniconvertor image");
702 UndoManager::ImportViva = tr("Import Viva Designer document");
703 UndoManager::ImportVSD = tr("Import Visio document");
704 UndoManager::ImportWMF = tr("Import WMF drawing");
705 UndoManager::ImportWPG = tr("Import WordPerfect graphic");
706 UndoManager::ImportXara = tr("Import Xara image");
707 UndoManager::ImportXfig = tr("Import XFig drawing");
708 UndoManager::ImportXPS = tr("Import XPS document");
709 UndoManager::ImportZMF = tr("Import Zoner Draw image");
710 UndoManager::Columns = tr("Change columns");
711 UndoManager::ColumnsGap = tr("Change columns gap");
712 UndoManager::TextFrameDist = tr("Change text to frame distance");
713 UndoManager::ScratchSpace = tr("Scratch space");
714 UndoManager::ObjectFrame = tr("Text flows around the frame");
715 UndoManager::BoundingBox = tr("Text flows around bounding box");
716 UndoManager::ContourLine = tr("Text flows around contour line");
717 UndoManager::ImageClip = tr("Text flows around image clipping path");
718 UndoManager::NoTextFlow = tr("No text flow");
719 UndoManager::NoObjectFrame = tr("No object frame");
720 UndoManager::NoBoundingBox = tr("No bounding box");
721 UndoManager::NoContourLine = tr("No contour line");
722 UndoManager::ShowImage = tr("Show image");
723 UndoManager::PageNmbr = tr("Page %1");
724 UndoManager::ImageScaling = tr("Set image scaling");
725 UndoManager::FrameSize = tr("Frame size");
726 UndoManager::MeshGradient = tr("Create mesh gradient");
727 UndoManager::ChangeMeshGradient = tr("Change mesh gradient");
728 UndoManager::Mode = tr("Change Mode");
729 UndoManager::FreeScaling = tr("Free scaling");
730 UndoManager::KeepRatio = tr("Keep aspect ratio");
731 UndoManager::BreakRatio = tr("Break aspect ratio");
732 UndoManager::EditContourLine = tr("Edit contour line");
733 UndoManager::EditShape = tr("Edit shape");
734 UndoManager::ChangeShapeType = tr("Change shape type");
735 UndoManager::ResetContourLine = tr("Reset contour line");
736 UndoManager::AddPage = tr("Add page");
737 UndoManager::AddPages = tr("Add pages");
738 UndoManager::ReplaceText = tr("Replace text");
739 UndoManager::FirstLineOffset = tr("Change First Line Offset");
740 UndoManager::DeleteText = tr("Delete text");
741 UndoManager::InsertText = tr("Insert text");
742 UndoManager::AppendText = tr("Append text");
743 UndoManager::ImportText = tr("Import text");
744 UndoManager::ClearText = tr("Clear text");
745 UndoManager::TruncateText = tr("Truncate text");
746 UndoManager::AddLoremIpsum = tr("Add Lorem Ipsum");
747 UndoManager::InsertMark = tr("Insert mark");
748 UndoManager::InsertNote = tr("Insert note");
749 UndoManager::EditMark = tr("Edit mark");
750 UndoManager::DeleteMark = tr("Delete mark");
751 UndoManager::DeleteNote = tr("Delete note");
752 UndoManager::NewNotesStyle = tr("Add note style");
753 UndoManager::EditNotesStyle = tr("Edit note style");
754 UndoManager::DeleteNotesStyle = tr("Delete note style");
755 UndoManager::DeleteNotesStyle = tr("Delete note style");
756 UndoManager::DeletePage = tr("Delete page");
757 UndoManager::DeletePages = tr("Delete pages");
758 UndoManager::ChangePageProps = tr("Change page properties");
759 UndoManager::AddLayer = tr("Add layer");
760 UndoManager::DuplicateLayer = tr("Duplicate layer %1");
761 UndoManager::DeleteLayer = tr("Delete layer");
762 UndoManager::RenameLayer = tr("Rename layer");
763 UndoManager::RaiseLayer = tr("Raise layer");
764 UndoManager::GradPos = tr("Change gradient position");
765 UndoManager::LowerLayer = tr("Lower layer");
766 UndoManager::SendToLayer = tr("Send to layer");
767 UndoManager::PrintLayer = tr("Enable printing of layer");
768 UndoManager::DoNotPrintLayer = tr("Disable printing of layer");
769 UndoManager::SetLayerName = tr("Change name of the layer");
770 UndoManager::FlowLayer = tr("Enable text flow around for lower layers");
771 UndoManager::DisableFlowLayer = tr("Disable text flow around for lower layers");
772 UndoManager::SetLayerBlendMode = tr("Set layer blend mode");
773 UndoManager::SetLayerTransparency=tr("Set layer opacity");
774 UndoManager::SetLayerLocked = tr("Lock layer");
775 UndoManager::SetLayerUnlocked = tr("Unlock layer");
776 UndoManager::GetImage = tr("Get image");
777 UndoManager::ChangeFormula = tr("Change formula");
778 UndoManager::Duplicate = tr("Duplicate");
779 UndoManager::MultipleDuplicate = tr("Multiple duplicate");
780 UndoManager::RemoveMeshPatch = tr("Remove mesh patch");
781 UndoManager::ApplyTextStyle = tr("Apply text style");
782 UndoManager::RemoveTextStyle = tr("Remove text style");
783 UndoManager::MenuUndo = tr("&Undo: %1", "f.e. Undo: Move");
784 UndoManager::MenuUndoEmpty = tr("&Undo");
785 UndoManager::MenuRedo = tr("&Redo: %1", "f.e. Redo: Move");
786 UndoManager::MenuRedoEmpty = tr("&Redo");
787 UndoManager::EditContour = tr("Edit contour line");
788 UndoManager::ResetControlPoint = tr("Reset control point");
789 UndoManager::ResetControlPoints = tr("Reset control points");
790 UndoManager::ImageEffects = tr("Apply image effects");
791 UndoManager::InsertFrame = tr("Insert frame");
792 UndoManager::AdjustFrameToImage = tr("Adjust frame to the image size");
793 UndoManager::RemoveAllGuides = tr("Remove all guides");
794 UndoManager::RemoveAllPageGuides= tr("Remove page guides");
795 UndoManager::Copy = tr("Copy");
796 UndoManager::CopyPage = tr("Copy page");
797 UndoManager::MovePage = tr("Move page");
798 UndoManager::SwapPage = tr("Swap page");
799 UndoManager::ImportPage = tr("Import page");
800 UndoManager::ToOutlines = tr("Convert to outlines");
801 UndoManager::LinkTextFrame = tr("Link text frame");
802 UndoManager::UnlinkTextFrame = tr("Unlink text frame");
803 UndoManager::ClearImage = tr("Clear image frame content");
804 UndoManager::PathOperation = tr("Path Operation");
805 UndoManager::ChangePageAttrs = tr("Change Page Attributes");
806 UndoManager::Transform = tr("Transform");
807 UndoManager::WeldItems = tr("Weld Items");
808 UndoManager::UnweldItems = tr("Unweld Items");
809 UndoManager::SoftShadow = tr("Drop Shadow");
810 UndoManager::SoftShadowColor = tr("Drop Shadow Color");
811 UndoManager::SoftShadowShade = tr("Drop Shadow Shade");
812 UndoManager::SoftShadowBlurRadius= tr("Drop Shadow Blur Radius");
813 UndoManager::SoftShadowXOffset = tr("Drop Shadow X Offset");
814 UndoManager::SoftShadowYOffset = tr("Drop Shadow Y Offset");
815 UndoManager::SoftShadowOpacity = tr("Drop Shadow Opacity");
816 UndoManager::SoftShadowBlendMode= tr("Drop Shadow Blend Mode");
817 }
818
initIcons()819 void UndoManager::initIcons()
820 {
821 QString iconDir = ScPaths::instance().iconDir();
822
823 /*** Icons for UndoObjects *******************************************/
824 UndoManager::IImageFrame = new QPixmap(iconDir + "16/insert-image.png");
825 UndoManager::ITextFrame = new QPixmap(iconDir + "16/insert-text-frame.png");
826 UndoManager::ILatexFrame = new QPixmap(iconDir + "16/insert-latex.png");
827 UndoManager::ILine = new QPixmap(iconDir + "stift.png");
828 UndoManager::IPolygon = new QPixmap(iconDir + "16/draw-polygon.png");
829 UndoManager::IPolyline = new QPixmap(iconDir + "16/draw-bezier-curves.png");
830 // UndoManager::IPathText = new QPixmap(iconDir + "?";
831 UndoManager::IGroup = new QPixmap(iconDir + "u_group.png");
832 /*** Icons for actions ***********************************************/
833 UndoManager::IMove = new QPixmap(iconDir + "u_move.png");
834 UndoManager::IResize = new QPixmap(iconDir + "u_resize.png");
835 UndoManager::IRotate = new QPixmap(iconDir + "u_rotate.png");
836 UndoManager::IAlignDistribute = new QPixmap(iconDir + "u_align.png");
837 UndoManager::IGuides = new QPixmap(iconDir + "u_margins.png");
838 UndoManager::ILockGuides = new QPixmap(iconDir + "u_margins_locked.png");
839 UndoManager::IFill = new QPixmap(iconDir + "u_fill.png");
840 UndoManager::IShade = new QPixmap(iconDir + "u_shade.png");
841 UndoManager::IFlipH = new QPixmap(iconDir + "u_fliph.png");
842 UndoManager::IFlipV = new QPixmap(iconDir + "u_flipv.png");
843 UndoManager::ILock = new QPixmap(iconDir + "u_lock.png");
844 UndoManager::IUnLock = new QPixmap(iconDir + "u_unlock.png");
845 UndoManager::IEnablePrint = new QPixmap(iconDir + "u_enableprint.png");
846 UndoManager::IDisablePrint = new QPixmap(iconDir + "u_disableprint.png");
847 UndoManager::IDelete = new QPixmap(iconDir + "u_delete.png");
848 UndoManager::ICreate = new QPixmap(iconDir + "u_create.png");
849 UndoManager::IPaste = new QPixmap(iconDir + "16/edit-paste.png");
850 UndoManager::ICut = new QPixmap(iconDir + "u_cut.png");
851 UndoManager::ITransparency = new QPixmap(iconDir + "u_transp.png");
852 UndoManager::ILineStyle = new QPixmap(iconDir + "u_line.png");
853 UndoManager::IArrow = new QPixmap(iconDir + "u_arrow.png");
854 UndoManager::ITable = new QPixmap(iconDir + "frame_table.png");
855 UndoManager::IFont = new QPixmap(iconDir + "u_font.png");
856 UndoManager::IAI = new QPixmap(iconDir + "u_eps.png"); // using the icon for EPS for now
857 UndoManager::IEPS = new QPixmap(iconDir + "u_eps.png");
858 UndoManager::IImportOOoDraw = new QPixmap(iconDir + "ooo_draw.png");
859 UndoManager::ISVG = new QPixmap(iconDir + "u_svg.png");
860 UndoManager::IUniconv = new QPixmap(iconDir + "u_svg.png"); // using the icon for SVG for now
861 UndoManager::IWMF = new QPixmap(iconDir + "u_eps.png"); // using the icon for EPS for now
862 UndoManager::IXFIG = new QPixmap(iconDir + "u_eps.png"); // using the icon for EPS for now
863 UndoManager::IImageScaling = new QPixmap(iconDir + "u_scale_image.png");
864 UndoManager::IBorder = new QPixmap(iconDir + "u_shape.png");
865 UndoManager::IDocument = new QPixmap(iconDir + "16/document-new.png");
866 // UndoManager::ILayer = new QPixmap(iconDir + "u_layer.png");
867 // UndoManager::ILayerAction = new QPixmap(iconDir + "u_layer_action.png");
868 // UndoManager::IUp = new QPixmap(iconDir + "u_up.png");
869 // UndoManager::IDown = new QPixmap(iconDir + "u_down.png");
870 // UndoManager::IGetImage = new QPixmap(iconDir + "u_get_image.png");
871 UndoManager::IMultipleDuplicate = new QPixmap(iconDir + "u_multiple.png");
872 }
873 QString UndoManager::ConnectPath = "";
874 QString UndoManager::AddVGuide = "";
875 QString UndoManager::AddHGuide = "";
876 QString UndoManager::DelVGuide = "";
877 QString UndoManager::DelHGuide = "";
878 QString UndoManager::DelVAGuide = "";
879 QString UndoManager::DelHAGuide = "";
880 QString UndoManager::Mode = "";
881 QString UndoManager::MoveVGuide = "";
882 QString UndoManager::MoveHGuide = "";
883 QString UndoManager::UniteItem = "";
884 QString UndoManager::SplitItem = "";
885 QString UndoManager::LockGuides = "";
886 QString UndoManager::UnlockGuides = "";
887 QString UndoManager::Overprint = "";
888 QString UndoManager::BlendMode = "";
889 QString UndoManager::ActionPDF = "";
890 QString UndoManager::Move = "";
891 QString UndoManager::NewMasterPage = "";
892 QString UndoManager::GradType = "";
893 QString UndoManager::GradPos = "";
894 QString UndoManager::GradVal = "";
895 QString UndoManager::GradValStroke = "";
896 QString UndoManager::GradCol = "";
897 QString UndoManager::GradTypeStroke = "";
898 QString UndoManager::ImportMasterPage = "";
899 QString UndoManager::DuplicateMasterPage= "";
900 QString UndoManager::DelMasterPage = "";
901 QString UndoManager::ApplyMasterPage = "";
902 QString UndoManager::RenameMasterPage = "";
903 QString UndoManager::Resize = "";
904 QString UndoManager::Rotate = "";
905 QString UndoManager::MoveFromTo = "";
906 QString UndoManager::ImageOffset = "";
907 QString UndoManager::ImageScale = "";
908 QString UndoManager::ResTyp = "";
909 QString UndoManager::ShowImage = "";
910 QString UndoManager::RemoveMeshPatch = "";
911 QString UndoManager::StartArrowScale = "";
912 QString UndoManager::EndArrowScale = "";
913 QString UndoManager::ImageOffsetFromTo = "";
914 QString UndoManager::ImageScaleFromTo = "";
915 QString UndoManager::ResizeFromTo = "";
916 QString UndoManager::Selection = "";
917 QString UndoManager::Group = "";
918 QString UndoManager::SelectionGroup = "";
919 QString UndoManager::Create = "";
920 QString UndoManager::RoundCorner = "";
921 QString UndoManager::CreateTo = "";
922 QString UndoManager::AlignDistribute = "";
923 QString UndoManager::ItemsInvolved = "";
924 QString UndoManager::ItemsInvolved2 = "";
925 int UndoManager::ItemsInvolvedLimit = 20;
926 QString UndoManager::Cancel = "";
927 QString UndoManager::TextFrameDist = "";
928 QString UndoManager::SetFill = "";
929 QString UndoManager::ColorFromTo = "";
930 QString UndoManager::SetShade = "";
931 QString UndoManager::SetLineColor = "";
932 QString UndoManager::SetLineShade = "";
933 QString UndoManager::FlipH = "";
934 QString UndoManager::FlipV = "";
935 QString UndoManager::Lock = "";
936 QString UndoManager::LevelUp = "";
937 QString UndoManager::LevelTop = "";
938 QString UndoManager::LevelBottom = "";
939 QString UndoManager::LevelDown = "";
940 QString UndoManager::UnLock = "";
941 QString UndoManager::SizeLock = "";
942 QString UndoManager::SizeUnLock = "";
943 QString UndoManager::EnablePrint = "";
944 QString UndoManager::DisablePrint = "";
945 QString UndoManager::Ungroup = "";
946 QString UndoManager::Delete = "";
947 QString UndoManager::Rename = "";
948 QString UndoManager::FromTo = "";
949 QString UndoManager::Paste = "";
950 QString UndoManager::Cut = "";
951 QString UndoManager::Transparency = "";
952 QString UndoManager::LineTransparency = "";
953 QString UndoManager::LineStyle = "";
954 QString UndoManager::FirstLineOffset = "";
955 QString UndoManager::LineEnd = "";
956 QString UndoManager::LineJoin = "";
957 QString UndoManager::LineWidth = "";
958 QString UndoManager::NoStyle = "";
959 QString UndoManager::CustomLineStyle = "";
960 QString UndoManager::NoLineStyle = "";
961 QString UndoManager::StartArrow = "";
962 QString UndoManager::EndArrow = "";
963 QString UndoManager::StartAndEndArrow = "";
964 QString UndoManager::CreateTable = "";
965 QString UndoManager::RowsCols = "";
966 QString UndoManager::SetFont = "";
967 QString UndoManager::SetFontSize = "";
968 QString UndoManager::SetFontWidth = "";
969 QString UndoManager::SetFontHeight = "";
970 QString UndoManager::SetFontFill = "";
971 QString UndoManager::SetFontStroke = "";
972 QString UndoManager::SetFontFillShade = "";
973 QString UndoManager::SetFontStrokeShade = "";
974 QString UndoManager::SetKerning = "";
975 QString UndoManager::SetLineSpacing = "";
976 QString UndoManager::SetStyle = "";
977 QString UndoManager::SetLanguage = "";
978 QString UndoManager::AlignText = "";
979 QString UndoManager::SetFontEffect = "";
980 QString UndoManager::ImageFrame = "";
981 QString UndoManager::TextFrame = "";
982 QString UndoManager::Layer = "";
983 QString UndoManager::LatexFrame = "";
984 QString UndoManager::Polygon = "";
985 QString UndoManager::EditPolygon = "";
986 QString UndoManager::EditArc = "";
987 QString UndoManager::EditSpiral = "";
988 QString UndoManager::BezierCurve = "";
989 QString UndoManager::Polyline = "";
990 QString UndoManager::PathText = "";
991 QString UndoManager::ConvertTo = "";
992 QString UndoManager::ImportAI = "";
993 QString UndoManager::ImportApplePages = "";
994 QString UndoManager::ImportBarcode = "";
995 QString UndoManager::ImportCDR = "";
996 QString UndoManager::ImportCGM = "";
997 QString UndoManager::ImportCVG = "";
998 QString UndoManager::ImportDRW = "";
999 QString UndoManager::ImportEMF = "";
1000 QString UndoManager::ImportEPS = "";
1001 QString UndoManager::ImportFreehand = "";
1002 QString UndoManager::ImportIDML = "";
1003 QString UndoManager::ImportOOoDraw = "";
1004 QString UndoManager::ImportPageMaker = "";
1005 QString UndoManager::ImportPDF = "";
1006 QString UndoManager::ImportPict = "";
1007 QString UndoManager::ImportPublisher = "";
1008 QString UndoManager::ImportQXP = "";
1009 QString UndoManager::ImportShape = "";
1010 QString UndoManager::ImportSML = "";
1011 QString UndoManager::ImportSVG = "";
1012 QString UndoManager::ImportSVM = "";
1013 QString UndoManager::ImportUniconv = "";
1014 QString UndoManager::ImportViva = "";
1015 QString UndoManager::ImportVSD = "";
1016 QString UndoManager::ImportWMF = "";
1017 QString UndoManager::ImportWPG = "";
1018 QString UndoManager::ImportXara = "";
1019 QString UndoManager::ImportXfig = "";
1020 QString UndoManager::ImportXPS = "";
1021 QString UndoManager::ImportZMF = "";
1022 QString UndoManager::ScratchSpace = "";
1023 QString UndoManager::ObjectFrame = "";
1024 QString UndoManager::BoundingBox = "";
1025 QString UndoManager::MeshGradient = "";
1026 QString UndoManager::ChangeMeshGradient = "";
1027 QString UndoManager::ContourLine = "";
1028 QString UndoManager::ImageClip = "";
1029 QString UndoManager::NoTextFlow = "";
1030 QString UndoManager::NoObjectFrame = "";
1031 QString UndoManager::NoBoundingBox = "";
1032 QString UndoManager::NoContourLine = "";
1033 QString UndoManager::PageNmbr = "";
1034 QString UndoManager::ImageScaling = "";
1035 QString UndoManager::FrameSize = "";
1036 QString UndoManager::FreeScaling = "";
1037 QString UndoManager::KeepRatio = "";
1038 QString UndoManager::BreakRatio = "";
1039 QString UndoManager::EditContourLine = "";
1040 QString UndoManager::EditShape = "";
1041 QString UndoManager::ChangeShapeType = "";
1042 QString UndoManager::ResetContourLine = "";
1043 QString UndoManager::GradTypeMask = "";
1044 QString UndoManager::AddPage = "";
1045 QString UndoManager::AddPages = "";
1046 QString UndoManager::DeleteText = "";
1047 QString UndoManager::AppendText = "";
1048 QString UndoManager::ImportText = "";
1049 QString UndoManager::ClearText = "";
1050 QString UndoManager::TruncateText = "";
1051 QString UndoManager::ReplaceText = "";
1052 QString UndoManager::InsertText = "";
1053 QString UndoManager::AddLoremIpsum = "";
1054 QString UndoManager::EditMark = "";
1055 QString UndoManager::InsertMark = "";
1056 QString UndoManager::DeleteMark = "";
1057 QString UndoManager::InsertNote = "";
1058 QString UndoManager::DeleteNote = "";
1059 QString UndoManager::NewNotesStyle = "";
1060 QString UndoManager::EditNotesStyle = "";
1061 QString UndoManager::DeleteNotesStyle = "";
1062 QString UndoManager::DeletePage = "";
1063 QString UndoManager::DeletePages = "";
1064 QString UndoManager::ChangePageProps = "";
1065 QString UndoManager::AddLayer = "";
1066 QString UndoManager::DuplicateLayer = "";
1067 QString UndoManager::DeleteLayer = "";
1068 QString UndoManager::RenameLayer = "";
1069 QString UndoManager::RaiseLayer = "";
1070 QString UndoManager::LowerLayer = "";
1071 QString UndoManager::SendToLayer = "";
1072 QString UndoManager::PrintLayer = "";
1073 QString UndoManager::DoNotPrintLayer = "";
1074 QString UndoManager::SetLayerName = "";
1075 QString UndoManager::FlowLayer = "";
1076 QString UndoManager::DisableFlowLayer = "";
1077 QString UndoManager::SetLayerBlendMode = "";
1078 QString UndoManager::SetLayerTransparency="";
1079 QString UndoManager::SetLayerLocked = "";
1080 QString UndoManager::SetLayerUnlocked = "";
1081 QString UndoManager::GetImage = "";
1082 QString UndoManager::ChangeFormula = "";
1083 QString UndoManager::Duplicate = "";
1084 QString UndoManager::MultipleDuplicate = "";
1085 QString UndoManager::ApplyTextStyle = "";
1086 QString UndoManager::RemoveTextStyle = "";
1087 QString UndoManager::MenuUndo = "";
1088 QString UndoManager::MenuUndoEmpty = "";
1089 QString UndoManager::MenuRedo = "";
1090 QString UndoManager::MenuRedoEmpty = "";
1091 QString UndoManager::EditContour = "";
1092 QString UndoManager::Columns = "";
1093 QString UndoManager::ColumnsGap = "";
1094 QString UndoManager::ResetControlPoint = "";
1095 QString UndoManager::ResetControlPoints = "";
1096 QString UndoManager::ImageEffects = "";
1097 QString UndoManager::InsertFrame = "";
1098 QString UndoManager::AdjustFrameToImage = "";
1099 QString UndoManager::RemoveAllGuides = "";
1100 QString UndoManager::RemoveAllPageGuides= "";
1101 QString UndoManager::Copy = "";
1102 QString UndoManager::CopyPage = "";
1103 QString UndoManager::ImportPage = "";
1104 QString UndoManager::MovePage = "";
1105 QString UndoManager::SwapPage = "";
1106 QString UndoManager::ToOutlines = "";
1107 QString UndoManager::LinkTextFrame = "";
1108 QString UndoManager::UnlinkTextFrame = "";
1109 QString UndoManager::ClearImage = "";
1110 QString UndoManager::PathOperation = "";
1111 QString UndoManager::ChangePageAttrs = "";
1112 QString UndoManager::Transform = "";
1113 QString UndoManager::WeldItems = "";
1114 QString UndoManager::UnweldItems = "";
1115 QString UndoManager::SoftShadow = "";
1116 QString UndoManager::SoftShadowColor = "";
1117 QString UndoManager::SoftShadowShade = "";
1118 QString UndoManager::SoftShadowBlurRadius="";
1119 QString UndoManager::SoftShadowXOffset = "";
1120 QString UndoManager::SoftShadowYOffset = "";
1121 QString UndoManager::SoftShadowOpacity = "";
1122 QString UndoManager::SoftShadowBlendMode= "";
1123 QString UndoManager::SoftShadowErase = "";
1124 QString UndoManager::SoftShadowObjectTrans = "";
1125
1126 /*** Icons for UndoObjects *******************************************/
1127 QPixmap *UndoManager::IImageFrame = nullptr;
1128 QPixmap *UndoManager::ITextFrame = nullptr;
1129 QPixmap *UndoManager::ILatexFrame = nullptr;
1130 QPixmap *UndoManager::ILine = nullptr;
1131 QPixmap *UndoManager::IPolygon = nullptr;
1132 QPixmap *UndoManager::IPolyline = nullptr;
1133 QPixmap *UndoManager::IPathText = nullptr;
1134 QPixmap *UndoManager::IGroup = nullptr;
1135 QPixmap *UndoManager::ITable = nullptr;
1136 /*** Icons for actions ***********************************************/
1137 QPixmap *UndoManager::IMove = nullptr;
1138 QPixmap *UndoManager::IResize = nullptr;
1139 QPixmap *UndoManager::IRotate = nullptr;
1140 QPixmap *UndoManager::IGuides = nullptr;
1141 QPixmap *UndoManager::ILockGuides = nullptr;
1142 QPixmap *UndoManager::IAlignDistribute = nullptr;
1143 QPixmap *UndoManager::IFill = nullptr;
1144 QPixmap *UndoManager::IShade = nullptr;
1145 QPixmap *UndoManager::IFlipH = nullptr;
1146 QPixmap *UndoManager::IFlipV = nullptr;
1147 QPixmap *UndoManager::ILock = nullptr;
1148 QPixmap *UndoManager::IUnLock = nullptr;
1149 QPixmap *UndoManager::IEnablePrint = nullptr;
1150 QPixmap *UndoManager::IDisablePrint = nullptr;
1151 QPixmap *UndoManager::IDelete = nullptr;
1152 QPixmap *UndoManager::ICreate = nullptr;
1153 QPixmap *UndoManager::IPaste = nullptr;
1154 QPixmap *UndoManager::ICut = nullptr;
1155 QPixmap *UndoManager::ITransparency = nullptr;
1156 QPixmap *UndoManager::ILineStyle = nullptr;
1157 QPixmap *UndoManager::IArrow = nullptr;
1158 QPixmap *UndoManager::IFont = nullptr;
1159 QPixmap *UndoManager::ISVG = nullptr;
1160 QPixmap *UndoManager::IUniconv = nullptr;
1161 QPixmap *UndoManager::IAI = nullptr;
1162 QPixmap *UndoManager::IEPS = nullptr;
1163 QPixmap *UndoManager::IImportOOoDraw = nullptr;
1164 QPixmap *UndoManager::IWMF = nullptr;
1165 QPixmap *UndoManager::IXFIG = nullptr;
1166 QPixmap *UndoManager::IImageScaling = nullptr;
1167 QPixmap *UndoManager::IBorder = nullptr;
1168 QPixmap *UndoManager::IDocument = nullptr;
1169 QPixmap *UndoManager::ILayer = nullptr;
1170 QPixmap *UndoManager::ILayerAction = nullptr;
1171 QPixmap *UndoManager::IUp = nullptr;
1172 QPixmap *UndoManager::IDown = nullptr;
1173 QPixmap *UndoManager::IPrint = nullptr;
1174 QPixmap *UndoManager::IGetImage = nullptr;
1175 QPixmap *UndoManager::IChangeFormula = nullptr;
1176 QPixmap *UndoManager::IMultipleDuplicate = nullptr;
1177
1178
1179
1180