[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-08-01 23:11:25
Message-ID: 1249168285.168307.4807.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1005727 by jaham:

added support for filter presets using the koffice resource framework



 M  +2 -0      plugins/tools/CMakeLists.txt  
 M  +57 -0     plugins/tools/filterEffectTool/FilterEffectEditWidget.cpp  
 M  +1 -0      plugins/tools/filterEffectTool/FilterEffectEditWidget.h  
 M  +25 -50    plugins/tools/filterEffectTool/FilterEffectEditWidget.ui  
 A             plugins/tools/filterEffectTool/FilterEffectResource.cpp   [License: \
LGPL (v2+)]  A             plugins/tools/filterEffectTool/FilterEffectResource.h   \
[License: LGPL (v2+)]  M  +2 -2      \
plugins/tools/filterEffectTool/FilterEffectScene.cpp    A             \
plugins/tools/filterEffectTool/FilterResourceServerProvider.cpp   [License: LGPL \
(v2+)]  A             plugins/tools/filterEffectTool/FilterResourceServerProvider.h   \
[License: LGPL (v2+)]  M  +1 -0      ui/KarbonFactory.cpp  


--- trunk/koffice/karbon/plugins/tools/CMakeLists.txt #1005726:1005727
@@ -33,6 +33,8 @@
    filterEffectTool/FilterEffectScene.cpp
    filterEffectTool/FilterEffectSceneItems.cpp
    filterEffectTool/FilterInputChangeCommand.cpp
+   filterEffectTool/FilterEffectResource.cpp
+   filterEffectTool/FilterResourceServerProvider.cpp
 )
 
 kde4_add_ui_files(karbon_tools_PART_SRCS
--- trunk/koffice/karbon/plugins/tools/filterEffectTool/FilterEffectEditWidget.cpp \
#1005726:1005727 @@ -19,6 +19,8 @@
 
 #include "FilterEffectEditWidget.h"
 #include "FilterEffectScene.h"
+#include "FilterEffectResource.h"
+#include "FilterResourceServerProvider.h"
 #include "FilterInputChangeCommand.h"
 #include "KoGenericRegistryModel.h"
 #include "KoFilterEffectRegistry.h"
@@ -26,10 +28,13 @@
 #include "KoFilterEffectStack.h"
 #include "KoShape.h"
 #include "KoCanvasBase.h"
+#include "KoResourceModel.h"
+#include "KoResourceServerAdapter.h"
 
 #include <KDebug>
 
 #include <QtGui/QGraphicsItem>
+#include <QtGui/QInputDialog>
 #include <QtCore/QSet>
 
 FilterEffectEditWidget::FilterEffectEditWidget(QWidget *parent)
@@ -38,6 +43,14 @@
 {
     setupUi( this );
     
+    FilterResourceServerProvider * serverProvider = \
FilterResourceServerProvider::instance(); +    KoResourceServer<FilterEffectResource> \
* server = serverProvider->filterEffectServer(); +    KoAbstractResourceServerAdapter \
* adapter = new KoResourceServerAdapter<FilterEffectResource>(server); +    
+    KoResourceModel * model = new KoResourceModel(adapter, this);
+    model->setColumnCount(1);
+    presets->setModel(model);
+    
     KoGenericRegistryModel<KoFilterEffectFactory*> * filterEffectModel = new \
KoGenericRegistryModel<KoFilterEffectFactory*>(KoFilterEffectRegistry::instance());  
     effectSelector->setModel(filterEffectModel);
@@ -48,7 +61,10 @@
     
     raiseEffect->setIcon(KIcon("arrow-up"));
     lowerEffect->setIcon(KIcon("arrow-down"));
+    
     addPreset->setIcon(KIcon("list-add"));
+    connect(addPreset, SIGNAL(clicked()), this, SLOT(addToPresets()));
+    
     removePreset->setIcon(KIcon("list-remove"));
     copyPreset->setIcon(KIcon("edit-copy"));
     
@@ -283,4 +299,45 @@
     fitScene();
 }
 
+void FilterEffectEditWidget::addToPresets()
+{
+    if (!m_effects)
+        return;
+
+    bool ok = false;
+    QString effectName = QInputDialog::getText(this,
+                                               i18n("Effect name"), 
+                                               i18n("Please enter a name for the \
filter effect"), +                                               QLineEdit::Normal,
+                                               QString::null,
+                                               &ok);
+    if (!ok)
+        return;
+    
+    FilterEffectResource * resource = \
FilterEffectResource::fromFilterEffectStack(m_effects); +    if (!resource)
+        return;
+    
+    resource->setName(effectName);
+    
+    FilterResourceServerProvider * serverProvider = \
FilterResourceServerProvider::instance(); +    KoResourceServer<FilterEffectResource> \
* server = serverProvider->filterEffectServer(); +    
+    QString savePath = server->saveLocation();
+    
+    int i = 1;
+    QFileInfo fileInfo;
+    
+    do {
+        fileInfo.setFile(savePath + QString("%1.svg").arg(i++, 4, 10, QChar('0')));
+    }
+    while(fileInfo.exists());
+    
+    resource->setFilename(fileInfo.filePath());
+    resource->setValid(true);
+    
+    if (!server->addResource(resource))
+        delete resource;
+}
+
 #include "FilterEffectEditWidget.moc"
--- trunk/koffice/karbon/plugins/tools/filterEffectTool/FilterEffectEditWidget.h \
#1005726:1005727 @@ -49,6 +49,7 @@
     void addSelectedEffect();
     void removeSelectedItem();
     void connectionCreated(ConnectionSource source, ConnectionTarget target);
+    void addToPresets();
 private:
     void fitScene();
     FilterEffectScene * m_scene;
--- trunk/koffice/karbon/plugins/tools/filterEffectTool/FilterEffectEditWidget.ui \
#1005726:1005727 @@ -6,7 +6,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>497</width>
+    <width>452</width>
     <height>347</height>
    </rect>
   </property>
@@ -32,42 +32,24 @@
    <string>Filter Effect Editor</string>
   </property>
   <layout class="QGridLayout" name="gridLayout">
-   <item row="0" column="0" colspan="4">
+   <item row="0" column="0">
     <widget class="QLabel" name="label">
      <property name="text">
       <string>Filter Presets</string>
      </property>
     </widget>
    </item>
-   <item row="1" column="0" colspan="4">
-    <widget class="QListWidget" name="listWidget">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
+   <item row="0" column="3">
+    <widget class="QLabel" name="label_2">
+     <property name="text">
+      <string>Effects and Connections</string>
      </property>
-     <property name="minimumSize">
-      <size>
-       <width>0</width>
-       <height>0</height>
-      </size>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>200</width>
-       <height>16777215</height>
-      </size>
-     </property>
-     <property name="baseSize">
-      <size>
-       <width>150</width>
-       <height>0</height>
-      </size>
-     </property>
     </widget>
    </item>
-   <item row="1" column="4">
+   <item row="1" column="0" colspan="3">
+    <widget class="QListView" name="presets"/>
+   </item>
+   <item row="1" column="3">
     <widget class="QGraphicsView" name="view"/>
    </item>
    <item row="2" column="0">
@@ -77,7 +59,21 @@
      </property>
     </widget>
    </item>
-   <item row="2" column="4">
+   <item row="2" column="1">
+    <widget class="QToolButton" name="removePreset">
+     <property name="text">
+      <string>...</string>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="2">
+    <widget class="QToolButton" name="copyPreset">
+     <property name="text">
+      <string>...</string>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="3">
     <layout class="QHBoxLayout" name="horizontalLayout">
      <item>
       <widget class="QToolButton" name="removeEffect">
@@ -112,27 +108,6 @@
      </item>
     </layout>
    </item>
-   <item row="2" column="1">
-    <widget class="QToolButton" name="removePreset">
-     <property name="text">
-      <string>...</string>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="4">
-    <widget class="QLabel" name="label_2">
-     <property name="text">
-      <string>Effects and Connections</string>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="2">
-    <widget class="QToolButton" name="copyPreset">
-     <property name="text">
-      <string>...</string>
-     </property>
-    </widget>
-   </item>
   </layout>
  </widget>
  <customwidgets>
--- trunk/koffice/karbon/plugins/tools/filterEffectTool/FilterEffectScene.cpp \
#1005726:1005727 @@ -110,8 +110,8 @@
 
 
 FilterEffectScene::FilterEffectScene(QObject *parent)
-: QGraphicsScene(parent), m_defaultInputSelector(0), m_defaultInputProxy(0)
-, m_effectStack(0)
+: QGraphicsScene(parent), m_effectStack(0)
+, m_defaultInputSelector(0), m_defaultInputProxy(0)
 {
     m_defaultInputs << "SourceGraphic" << "SourceAlpha";
     m_defaultInputs << "FillPaint" << "StrokePaint";
--- trunk/koffice/karbon/ui/KarbonFactory.cpp #1005726:1005727
@@ -117,6 +117,7 @@
         s_instance->dirs()->addResourceType( "karbon_gradient", \
                "data","krita/gradients/" );
         s_instance->dirs()->addResourceType( "karbon_clipart", "data", \
                "karbon/cliparts/" );
         s_instance->dirs()->addResourceType( "karbon_template", "data", \
"karbon/templates/" ); +        s_instance->dirs()->addResourceType( \
"karbon_effects", "data", "karbon/effects/" );  // Tell the iconloader about \
share/apps/koffice/icons  KIconLoader::global()->addAppDir("koffice");
     }


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

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