[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/karbon
From: Jan Hambrecht <jaham () gmx ! net>
Date: 2009-10-02 21:50:54
Message-ID: 1254520254.944004.31617.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1030667 by jaham:
set/change layer z-index when adding/raising/lowering layers
M +22 -3 common/KarbonDocument.cpp
M +0 -6 ui/dockers/KarbonLayerDocker.cpp
--- trunk/koffice/karbon/common/KarbonDocument.cpp #1030666:1030667
@@ -112,7 +112,14 @@
void KarbonDocument::insertLayer( KoShapeLayer* layer )
{
- d->layers.append( layer );
+ if (!d->layers.contains(layer)) {
+ if (d->layers.count()) {
+ layer->setZIndex(d->layers.last()->zIndex()+1);
+ } else {
+ layer->setZIndex(d->layers.count());
+ }
+ d->layers.append( layer );
+ }
}
void KarbonDocument::removeLayer( KoShapeLayer* layer )
@@ -137,15 +144,27 @@
void KarbonDocument::raiseLayer( KoShapeLayer* layer )
{
int pos = d->layers.indexOf( layer );
- if( pos != int( d->layers.count() ) - 1 && pos >= 0 )
+ if( pos != int( d->layers.count() ) - 1 && pos >= 0 ) {
+ KoShapeLayer * layerAbove = d->layers.at(pos+1);
+ int lowerZIndex = layer->zIndex();
+ int upperZIndex = layerAbove->zIndex();
+ layer->setZIndex(upperZIndex);
+ layerAbove->setZIndex(lowerZIndex);
d->layers.move( pos, pos + 1 );
+ }
}
void KarbonDocument::lowerLayer( KoShapeLayer* layer )
{
int pos = d->layers.indexOf( layer );
- if ( pos > 0 )
+ if ( pos > 0 ) {
+ KoShapeLayer * layerBelow = d->layers.at(pos-1);
+ int upperZIndex = layer->zIndex();
+ int lowerZIndex = layerBelow->zIndex();
+ layer->setZIndex(lowerZIndex);
+ layerBelow->setZIndex(upperZIndex);
d->layers.move( pos, pos - 1 );
+ }
}
int KarbonDocument::layerPos( KoShapeLayer* layer )
--- trunk/koffice/karbon/ui/dockers/KarbonLayerDocker.cpp #1030666:1030667
@@ -286,12 +286,6 @@
{
KoShapeLayer* layer = new KoShapeLayer();
layer->setName( name );
- QList<KoShapeLayer*> layers( m_part->document().layers() );
- if ( !layers.isEmpty() ) {
- qSort( layers.begin(), layers.end(), KoShape::compareShapeZIndex );
- layer->setZIndex( layers.last()->zIndex() + 1 );
- }
-
KoCanvasController* canvasController = KoToolManager::instance()->activeCanvasController();
QUndoCommand *cmd = new KoShapeCreateCommand( m_part, layer, 0 );
cmd->setText( i18n( "Create Layer") );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic