[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