[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    koffice/krita
From:       Dmitry Kazakov <dimula73 () gmail ! com>
Date:       2009-10-31 22:32:50
Message-ID: 1257028370.524542.27743.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1043167 by dkazakov:

Transactions was not being created during creation of the image.
Fixed a bug in KisTiledDataManager::clear() as well.

BUG:212235



 M  +16 -6     image/tiles3/kis_tiled_data_manager.cc  
 M  +9 -28     ui/kis_doc2.cc  


--- trunk/koffice/krita/image/tiles3/kis_tiled_data_manager.cc #1043166:1043167
@@ -258,19 +258,29 @@
                            KisTileData::WIDTH, KisTileData::WIDTH);
             QRect clearTileRect = clearRect & tileRect;
 
-            KisTileDataWrapper tw = pixelPtr(clearTileRect.left(),
-                                             clearTileRect.top(),
-                                             KisTileDataWrapper::WRITE);
-            quint8* tileIt = tw.data();
-
             if (clearTileRect == tileRect) {
                 // Clear whole tile
                 m_hashTable->deleteTile(column, row);
-                m_hashTable->addTile(new KisTile(column, row, td, \
m_mementoManager)); +
+                KisTileSP clearedTile = new KisTile(column, row, td, \
m_mementoManager); +                m_hashTable->addTile(clearedTile);
+                updateExtent(column, row);
+
+                /**
+                 * Emulate like we've written something to the tile
+                 * to keep the history clean
+                 */
+                KisTileDataWrapper tw(clearedTile, 0,
+                                      KisTileDataWrapper::WRITE);
             } else {
                 const qint32 lineSize = clearTileRect.width() * pixelSize;
                 qint32 rowsRemaining = clearTileRect.height();
 
+                KisTileDataWrapper tw = pixelPtr(clearTileRect.left(),
+                                                 clearTileRect.top(),
+                                                 KisTileDataWrapper::WRITE);
+                quint8* tileIt = tw.data();
+
                 if (pixelBytesAreTheSame) {
                     while (rowsRemaining > 0) {
                         memset(tileIt, *clearPixelData, lineSize);
--- trunk/koffice/krita/ui/kis_doc2.cc #1043166:1043167
@@ -356,35 +356,16 @@
 
 KisImageWSP KisDoc2::newImage(const QString& name, qint32 width, qint32 height, \
const KoColorSpace * colorspace)  {
-    qApp->setOverrideCursor(Qt::BusyCursor);
-    if (!init())
-        return KisImageWSP(0);
+    KoColor backgroundColor(Qt::white, colorspace);
 
-    setUndo(false);
+    /**
+     * FIXME: check whether this is a good value
+     */
+    double defaultResolution=1.;
 
-    KisImageWSP img = KisImageWSP(new KisImage(m_d->undoAdapter, width, height, \
                colorspace, name));
-    img->lock();
-
-    Q_CHECK_PTR(img);
-    connect(img.data(), SIGNAL(sigImageModified()), this, SLOT(setModified()));
-
-    KisPaintLayerSP layer = new KisPaintLayer(img.data(), img->nextLayerName(), \
                OPACITY_OPAQUE, colorspace);
-    Q_CHECK_PTR(layer);
-
-    const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8();
-    KisFillPainter painter;
-
-    layer->paintDevice()->fill(0, 0, width, height, KoColor(Qt::white, cs).data());
-
-    img->addNode(layer.data(), img->rootLayer().data());
-
-    setCurrentImage(img);
-    layer->setDirty();
-    setUndo(true);
-    img->unlock();
-    qApp->restoreOverrideCursor();
-
-    return img;
+    newImage(name, width, height, colorspace, backgroundColor, "",
+             defaultResolution);
+    return image();
 }
 
 bool KisDoc2::newImage(const QString& name, qint32 width, qint32 height, const \
KoColorSpace * cs, const KoColor &bgColor, const QString &description, const double \
imgResolution) @@ -420,6 +401,7 @@
 
     KisFillPainter painter;
     painter.begin(layer->paintDevice());
+    painter.beginTransaction("");
     painter.fillRect(0, 0, width, height, bgColor, opacity);
     painter.end();
 
@@ -432,7 +414,6 @@
     cfg.defImgResolution(imgResolution);
 
     setUndo(true);
-    layer->setDirty();
     img->unlock();
 
     qApp->restoreOverrideCursor();


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic