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

List:       kde-commits
Subject:    koffice/libs
From:       Jan Hambrecht <jaham () gmx ! net>
Date:       2010-05-07 11:12:36
Message-ID: 20100507111236.AFBE5AC8B0 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1123918 by jaham:

make the copy-paste offset configurable via the misc config page



 M  +13 -1     flake/KoShapePaste.cpp  
 M  +29 -1     main/config/KoConfigMiscPage.cpp  
 M  +1 -0      main/config/KoConfigMiscPage.h  


--- trunk/koffice/libs/flake/KoShapePaste.cpp #1123917:1123918
@@ -36,6 +36,10 @@
 #include "KoShapeRegistry.h"
 #include "commands/KoShapeCreateCommand.h"
 
+#include <KGlobal>
+#include <KConfig>
+#include <KConfigGroup>
+
 class KoShapePaste::Private
 {
 public:
@@ -76,6 +80,14 @@
 
     QUndoCommand *cmd = 0;
 
+    QPointF copyOffset(10.0, 10.0);
+    // read copy offset from settings
+    KSharedConfigPtr config = KGlobal::config();
+    if (config->hasGroup("Misc")) {
+        const qreal offset = config->group("Misc").readEntry("CopyOffset", 10.0);
+        copyOffset = QPointF(offset, offset);
+    }
+
     // TODO if this is a text create a text shape and load the text inside the new shape.
     KoXmlElement element;
     forEachElement(element, body) {
@@ -108,7 +120,7 @@
                     if (qAbs(s->size().height() - shape->size().height()) > 0.001)
                         continue;
                     // move it and redo our iteration.
-                    QPointF move(10, 10);
+                    QPointF move(copyOffset);
                     d->canvas->clipToDocument(shape, move);
                     if (move.x() != 0 || move.y() != 0) {
                         shape->setPosition(shape->position() + move);
--- trunk/koffice/libs/main/config/KoConfigMiscPage.cpp #1123917:1123918
@@ -23,6 +23,7 @@
 
 #include <KoUnit.h>
 #include <KoDocument.h>
+#include <KoUnitDoubleSpinBox.h>
 
 #include <kcomponentdata.h>
 #include <kcombobox.h>
@@ -51,6 +52,8 @@
     uint oldHandleRadius;
     KIntNumInput * grabSensitivity;
     uint oldGrabSensitivity;
+    KoUnitDoubleSpinBox* copyOffset;
+    qreal oldCopyOffset;
 };
 
 KoConfigMiscPage::KoConfigMiscPage(KoDocument* doc, char* name)
@@ -62,12 +65,14 @@
 
     d->oldGrabSensitivity = 3;
     d->oldHandleRadius = 3;
+    d->oldCopyOffset = 10.0;
 
     if (d->config->hasGroup("Misc")) {
         KConfigGroup miscGroup = d->config->group("Misc");
 
         d->oldGrabSensitivity = miscGroup.readEntry("GrabSensitivity", d->oldGrabSensitivity);
         d->oldHandleRadius = miscGroup.readEntry("HandleRadius", d->oldHandleRadius);
+        d->oldCopyOffset = miscGroup.readEntry("CopyOffset", d->oldCopyOffset);
     }
 
     KoUnit unit = d->doc->unit();
@@ -107,11 +112,20 @@
     d->grabSensitivity->setValue(d->oldGrabSensitivity);
     grid->addWidget(d->grabSensitivity, 2, 1);
 
-    grid->setRowStretch(3, 1);
+    grid->addWidget(new QLabel(i18n("Copy offset:"), tmpQGroupBox), 3, 0);
 
+    d->copyOffset = new KoUnitDoubleSpinBox(tmpQGroupBox);
+    d->copyOffset->setMinMaxStep(-1000, 1000, 0.1);
+    d->copyOffset->setValue(d->oldCopyOffset);
+    d->copyOffset->setUnit(unit);
+    grid->addWidget(d->copyOffset, 3, 1);
+
+    grid->setRowStretch(4, 1);
+
     tmpQGroupBox->setLayout(grid);
 
     connect(d->unit, SIGNAL(activated(int)), SIGNAL(unitChanged(int)));
+    connect(d->unit, SIGNAL(activated(int)), SLOT(slotUnitChanged(int)));
 }
 
 KoConfigMiscPage::~KoConfigMiscPage()
@@ -139,6 +153,12 @@
     if (currentGrabSensitivity != d->oldGrabSensitivity) {
         miscGroup.writeEntry("GrabSensitivity", currentGrabSensitivity);
     }
+
+    qreal currentCopyOffset = d->copyOffset->value();
+    if (currentCopyOffset != d->oldCopyOffset) {
+        miscGroup.writeEntry("CopyOffset", currentCopyOffset);
+    }
+
     // FIXME how is the handle radius and grap sensitivitiy set?
 }
 
@@ -147,5 +167,13 @@
     d->unit->setCurrentIndex(0);
 }
 
+void KoConfigMiscPage::slotUnitChanged(int u)
+{
+    KoUnit unit = KoUnit((KoUnit::Unit) u);
+    d->copyOffset->blockSignals(true);
+    d->copyOffset->setUnit(unit);
+    d->copyOffset->blockSignals(false);
+}
+
 #include <KoConfigMiscPage.moc>
 
--- trunk/koffice/libs/main/config/KoConfigMiscPage.h #1123917:1123918
@@ -43,6 +43,7 @@
 
 public slots:
     void slotDefault();
+    void slotUnitChanged(int);
 
 private:
     class Private;
[prev in list] [next in list] [prev in thread] [next in thread] 

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