[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