[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-kimageshop
Subject: Re: Resource loading
From: Sven Langkamp <longamp () reallygood ! de>
Date: 2004-08-24 9:51:02
Message-ID: 412B0F86.8040200 () reallygood ! de
[Download RAW message or body]
Boudewijn Rempt wrote:
>>Maybe I should make a patch to make clear what I mean.
>>
>>
>
>I've just checked in something I hacked up while on the train -- just missed
>your mail. If you have an idea about how to make this saner, please proceed.
>Maybe, because this touches on the central design philosophy of Krita, it'd
>be a good idea to first post a patch in this case.
>
Here it is.
["resouceserver.diff" (text/x-patch)]
Index: krita/core/kis_factory.cc
===================================================================
RCS file: /home/kde/koffice/krita/core/kis_factory.cc,v
retrieving revision 1.34
diff -u -r1.34 kis_factory.cc
--- krita/core/kis_factory.cc 23 Aug 2004 15:55:04 -0000 1.34
+++ krita/core/kis_factory.cc 24 Aug 2004 09:41:22 -0000
@@ -26,6 +26,7 @@
#include "kis_factory.h"
#include "kis_aboutdata.h"
+#include "kis_resourceserver.h"
#include "kis_doc.h"
extern "C"
@@ -38,6 +39,7 @@
KAboutData* KisFactory::s_aboutData = 0;
KInstance* KisFactory::s_global = 0;
+KisResourceServer* KisFactory::s_rserver = 0;
KisFactory::KisFactory( QObject* parent, const char* name )
: KoFactory( parent, name )
@@ -45,10 +47,13 @@
s_aboutData = newKritaAboutData();
(void)global();
+ s_rserver = new KisResourceServer;
}
KisFactory::~KisFactory()
{
+ delete s_rserver;
+ s_rserver = 0L;
delete s_aboutData;
s_aboutData = 0L;
delete s_global;
@@ -112,4 +117,9 @@
return s_aboutData;
}
+KisResourceServer* KisFactory::rServer()
+{
+ return s_rserver;
+}
+
#include "kis_factory.moc"
Index: krita/core/kis_factory.h
===================================================================
RCS file: /home/kde/koffice/krita/core/kis_factory.h,v
retrieving revision 1.16
diff -u -r1.16 kis_factory.h
--- krita/core/kis_factory.h 23 Aug 2004 15:55:04 -0000 1.16
+++ krita/core/kis_factory.h 24 Aug 2004 09:41:22 -0000
@@ -24,6 +24,7 @@
#include <koFactory.h>
class KInstance;
+class KisResourceServer;
class KAboutData;
class KisFactory : public KoFactory
@@ -43,10 +44,12 @@
static KAboutData *aboutData();
static KInstance *global();
+ static KisResourceServer *rServer();
private:
static KInstance *s_global;
static KAboutData *s_aboutData;
+ static KisResourceServer *s_rserver;
};
#endif
Index: krita/core/kis_resource_mediator.cc
===================================================================
RCS file: /home/kde/koffice/krita/core/kis_resource_mediator.cc,v
retrieving revision 1.12
diff -u -r1.12 kis_resource_mediator.cc
--- krita/core/kis_resource_mediator.cc 12 Aug 2004 21:08:54 -0000 1.12
+++ krita/core/kis_resource_mediator.cc 24 Aug 2004 09:41:23 -0000
@@ -15,6 +15,8 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include <qptrlist.h>
+
#include <koIconChooser.h>
#include "kdebug.h"
@@ -42,32 +44,34 @@
Q_ASSERT(rserver);
m_activeItem = 0;
+ QPtrList<KisResource> resouceslist;
+ KisResource *resource;
+
if (mediateOn & MEDIATE_BRUSHES) {
m_chooser = new KisBrushChooser(chooserParent, chooserName);
- connect(rserver,
- SIGNAL(loadedBrush(KisResource*)),
- this,
- SLOT(resourceServerLoadedResource(KisResource*)));
-
- connect(rserver,
- SIGNAL(loadedpipeBrush(KisResource*)),
- this,
- SLOT(resourceServerLoadedResource(KisResource*)));
+ resouceslist = rserver -> brushes();
+ for ( resource = resouceslist.first(); resource; resource = resouceslist.next() )
+ resourceServerLoadedResource(resource);
+
+ resouceslist = rserver -> pipebrushes();
+ for ( resource = resouceslist.first(); resource; resource = resouceslist.next() )
+ resourceServerLoadedResource(resource);
}
if (mediateOn & MEDIATE_PATTERNS) {
m_chooser = new KisPatternChooser(chooserParent, chooserName);
- connect(rserver,
- SIGNAL(loadedPattern(KisResource*)),
- this,
- SLOT(resourceServerLoadedResource(KisResource*)));
+
+ resouceslist = rserver -> patterns();
+ for ( resource = resouceslist.first(); resource; resource = resouceslist.next() )
+ resourceServerLoadedResource(resource);
+
}
if (mediateOn & MEDIATE_GRADIENTS) {
m_chooser = new KisGradientChooser(chooserParent, chooserName);
- connect(rserver,
- SIGNAL(loadedGradient(KisResource*)),
- this,
- SLOT(resourceServerLoadedResource(KisResource*)));
+
+ resouceslist = rserver -> gradients();
+ for ( resource = resouceslist.first(); resource; resource = resouceslist.next() )
+ resourceServerLoadedResource(resource);
}
connect(m_chooser, SIGNAL(selected(KoIconItem*)), \
SLOT(setActiveItem(KoIconItem*)));
Index: krita/core/kis_resourceserver.cc
===================================================================
RCS file: /home/kde/koffice/krita/core/kis_resourceserver.cc,v
retrieving revision 1.20
diff -u -r1.20 kis_resourceserver.cc
--- krita/core/kis_resourceserver.cc 23 Aug 2004 15:55:04 -0000 1.20
+++ krita/core/kis_resourceserver.cc 24 Aug 2004 09:41:23 -0000
@@ -37,6 +37,10 @@
m_patterns.setAutoDelete(true);
m_gradients.setAutoDelete(true);
+ loadBrushes();
+ loadpipeBrushes();
+ loadPatterns();
+ loadGradients();
}
KisResourceServer::~KisResourceServer()
Index: krita/core/kis_view.cc
===================================================================
RCS file: /home/kde/koffice/krita/core/kis_view.cc,v
retrieving revision 1.318
diff -u -r1.318 kis_view.cc
--- krita/core/kis_view.cc 23 Aug 2004 15:55:04 -0000 1.318
+++ krita/core/kis_view.cc 24 Aug 2004 09:41:29 -0000
@@ -250,7 +250,7 @@
void KisView::setupDockers()
{
- m_resourceServer = new KisResourceServer();
+ KisResourceServer *rserver = KisFactory::rServer();
m_layerchanneldocker = new DockFrameDocker(this);
m_layerchanneldocker -> setCaption(i18n("Layers/Channels/Paths"));
@@ -284,7 +284,7 @@
// Setup all brushes
- m_brushMediator = new KisResourceMediator(MEDIATE_BRUSHES, m_resourceServer, \
i18n("Brushes"), + m_brushMediator = new KisResourceMediator(MEDIATE_BRUSHES, \
rserver, i18n("Brushes"),
m_resourcedocker, "brush_chooser", \
this);
m_brush = dynamic_cast<KisBrush*>(m_brushMediator -> currentResource());
m_resourcedocker -> plug(m_brushMediator -> chooserWidget());
@@ -292,7 +292,7 @@
// Setup patterns
- m_patternMediator = new KisResourceMediator(MEDIATE_PATTERNS, \
m_resourceServer, i18n("Patterns"), + m_patternMediator = new \
KisResourceMediator(MEDIATE_PATTERNS, rserver, i18n("Patterns"),
m_resourcedocker, "pattern \
chooser", this);
m_pattern = dynamic_cast<KisPattern*>(m_patternMediator -> \
currentResource()); m_resourcedocker -> plug(m_patternMediator -> chooserWidget());
@@ -300,17 +300,12 @@
// Setup gradients
- m_gradientMediator = new KisResourceMediator(MEDIATE_GRADIENTS, m_resourceServer, \
i18n("Gradients"), + m_gradientMediator = new KisResourceMediator(MEDIATE_GRADIENTS, \
rserver, i18n("Gradients"), m_resourcedocker, "gradient chooser", this);
m_gradient = dynamic_cast<KisGradient*>(m_gradientMediator -> currentResource());
m_resourcedocker -> plug(m_gradientMediator -> chooserWidget());
connect(m_gradientMediator, SIGNAL(activatedResource(KisResource*)), this, \
SLOT(gradientActivated(KisResource*)));
- m_resourceServer -> loadBrushes();
- m_resourceServer -> loadpipeBrushes();
- m_resourceServer -> loadPatterns();
- m_resourceServer -> loadGradients();
-
// Autocrush
m_autobrush = new KisAutobrush(m_resourcedocker, "autobrush", i18n("Autobrush"));
m_resourcedocker -> plug(m_autobrush);
Index: krita/core/kis_view.h
===================================================================
RCS file: /home/kde/koffice/krita/core/kis_view.h,v
retrieving revision 1.153
diff -u -r1.153 kis_view.h
--- krita/core/kis_view.h 23 Aug 2004 15:55:04 -0000 1.153
+++ krita/core/kis_view.h 24 Aug 2004 09:41:30 -0000
@@ -61,7 +61,6 @@
class KisPattern;
class KisResource;
class KisResourceMediator;
-class KisResourceServer;
class KisAutobrush;
class DockFrameDocker;
class ColorDocker;
@@ -416,7 +415,6 @@
KisBuilderMonitor *m_imgBuilderMgr;
KisLabelProgress *m_progress;
- KisResourceServer *m_resourceServer;
KisResourceMediator *m_brushMediator;
KisResourceMediator *m_patternMediator;
KisResourceMediator *m_gradientMediator;
_______________________________________________
kimageshop mailing list
kimageshop@kde.org
https://mail.kde.org/mailman/listinfo/kimageshop
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic