src/gui/text/qtextdocument.cpp
changeset 30 5dc02b23752f
parent 25 e24348a560a6
child 33 3e2da88830cd
--- a/src/gui/text/qtextdocument.cpp	Wed Jun 23 19:07:03 2010 +0300
+++ b/src/gui/text/qtextdocument.cpp	Tue Jul 06 15:10:48 2010 +0300
@@ -61,6 +61,7 @@
 #include <qapplication.h>
 #include "qtextcontrol_p.h"
 #include "private/qtextedit_p.h"
+#include "private/qdataurl_p.h"
 
 #include "qtextdocument_p.h"
 #include <private/qprinter_p.h>
@@ -434,6 +435,30 @@
     }
 }
 
+/*! \enum QTextDocument::Stacks
+  
+  \value UndoStack              The undo stack.
+  \value RedoStack              The redo stack.
+  \value UndoAndRedoStacks      Both the undo and redo stacks.
+*/
+        
+/*!
+    \since 4.7
+    Clears the stacks specified by \a stacksToClear.
+
+    This method clears any commands on the undo stack, the redo stack,
+    or both (the default). If commands are cleared, the appropriate
+    signals are emitted, QTextDocument::undoAvailable() or
+    QTextDocument::redoAvailable().
+
+    \sa QTextDocument::undoAvailable() QTextDocument::redoAvailable()
+*/
+void QTextDocument::clearUndoRedoStacks(Stacks stacksToClear)
+{
+    Q_D(QTextDocument);
+    d->clearUndoRedoStacks(stacksToClear, true);
+}
+
 /*!
     \overload
 
@@ -1749,9 +1774,9 @@
     int pageCopies;
     if (printer->collateCopies() == true){
         docCopies = 1;
-        pageCopies = printer->numCopies();
+        pageCopies = printer->supportsMultipleCopies() ? 1 : printer->copyCount();
     } else {
-        docCopies = printer->numCopies();
+        docCopies = printer->supportsMultipleCopies() ? 1 : printer->copyCount();
         pageCopies = 1;
     }
 
@@ -1921,6 +1946,10 @@
     }
 #endif
 
+    // handle data: URLs
+    if (r.isNull() && name.scheme().compare(QLatin1String("data"), Qt::CaseInsensitive) == 0)
+        r = qDecodeDataUrl(name).second;
+
     // if resource was not loaded try to load it here
     if (!doc && r.isNull() && name.isRelative()) {
         QUrl currentURL = d->url;