chalk

kis_factory.cpp
1/*
2 * kis_factory.cpp - part of Krayon
3 *
4 * Copyright (c) 1999 Matthias Elter <elter@kde.org>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 */
20#include <config.h>
21#include LCMS_HEADER
22
23#include <tqstringlist.h>
24#include <tqdir.h>
25
26#include <kdebug.h>
27#include <tdeinstance.h>
28#include <tdeglobal.h>
29#include <tdelocale.h>
30#include <kstandarddirs.h>
31#include <kiconloader.h>
32
33#include "kis_aboutdata.h"
34#include "kis_resourceserver.h"
35#include "kis_paintop_registry.h"
36#include "kis_filter_registry.h"
37#include "kis_tool_registry.h"
38#include "kis_doc.h"
39#include "kis_brush.h"
40#include "kis_imagepipe_brush.h"
41#include "kis_gradient.h"
42#include "kis_pattern.h"
43#include "kis_palette.h"
44#include <kogradientmanager.h>
45
46#include "kis_factory.h"
47
48TDEAboutData* KisFactory::s_aboutData = 0;
49TDEInstance* KisFactory::s_instance = 0;
50
51
52
53KisFactory::KisFactory( TQObject* parent, const char* name )
54 : KoFactory( parent, name )
55{
56 s_aboutData = newChalkAboutData();
57
58 (void)instance();
59
60 // Load extension modules and plugins
61 KisToolRegistry::instance();
62 KisPaintOpRegistry::instance();
63 KisFilterRegistry::instance();
64 KisResourceServerRegistry::instance();
65
66
67
68}
69
70KisFactory::~KisFactory()
71{
72 delete s_aboutData;
73 s_aboutData = 0L;
74 delete s_instance;
75 s_instance = 0L;
76}
77
81KParts::Part* KisFactory::createPartObject( TQWidget *parentWidget,
82 const char *widgetName, TQObject* parent,
83 const char* name, const char* classname, const TQStringList & )
84{
85 bool bWantKoDocument = ( strcmp( classname, "KoDocument" ) == 0 );
86
87 KisDoc *doc = new KisDoc( parentWidget,
88 widgetName, parent, name, !bWantKoDocument );
89 TQ_CHECK_PTR(doc);
90
91 if ( !bWantKoDocument )
92 doc->setReadWrite( false );
93
94 return doc;
95}
96
97
98TDEAboutData* KisFactory::aboutData()
99{
100 return s_aboutData;
101}
102
103TDEInstance* KisFactory::instance()
104{
105 TQString homedir = getenv("HOME");
106
107 if ( !s_instance )
108 {
109 s_instance = new TDEInstance(s_aboutData);
110 TQ_CHECK_PTR(s_instance);
111
112 s_instance->dirs()->addResourceType("chalk_template", TDEStandardDirs::kde_default("data") + "chalk/templates");
113
114 // XXX: Are these obsolete?
115 s_instance->dirs()->addResourceType("kis", TDEStandardDirs::kde_default("data") + "chalk/");
116
117 s_instance->dirs()->addResourceType("kis_pics", TDEStandardDirs::kde_default("data") + "chalk/pics/");
118
119 s_instance->dirs()->addResourceType("kis_images", TDEStandardDirs::kde_default("data") + "chalk/images/");
120
121 s_instance->dirs()->addResourceType("toolbars", TDEStandardDirs::kde_default("data") + "koffice/toolbar/");
122
123 // Create spec
124
125 s_instance->dirs()->addResourceType("kis_brushes", TDEStandardDirs::kde_default("data") + "chalk/brushes/");
126 s_instance->dirs()->addResourceDir("kis_brushes", "/usr/share/create/brushes/gimp");
127 s_instance->dirs()->addResourceDir("kis_brushes", TQDir::homeDirPath() + TQString("/.create/brushes/gimp"));
128
129 s_instance->dirs()->addResourceType("kis_patterns", TDEStandardDirs::kde_default("data") + "chalk/patterns/");
130 s_instance->dirs()->addResourceDir("kis_patterns", "/usr/share/create/patterns/gimp");
131 s_instance->dirs()->addResourceDir("kis_patterns", TQDir::homeDirPath() + TQString("/.create/patterns/gimp"));
132
133 s_instance->dirs()->addResourceType("kis_gradients", TDEStandardDirs::kde_default("data") + "chalk/gradients/");
134 s_instance->dirs()->addResourceDir("kis_gradients", "/usr/share/create/gradients/gimp");
135 s_instance->dirs()->addResourceDir("kis_gradients", TQDir::homeDirPath() + TQString("/.create/gradients/gimp"));
136
137 s_instance->dirs()->addResourceType("kis_profiles", TDEStandardDirs::kde_default("data") + "chalk/profiles/");
138 s_instance->dirs()->addResourceDir("kis_profiles", "/usr/share/color/icc");
139 s_instance->dirs()->addResourceDir("kis_profiles", TQDir::homeDirPath() + TQString("/.icc"));
140 s_instance->dirs()->addResourceDir("kis_profiles", TQDir::homeDirPath() + TQString("/.color/icc"));
141
142 s_instance->dirs()->addResourceType("kis_palettes", TDEStandardDirs::kde_default("data") + "chalk/palettes/");
143 s_instance->dirs()->addResourceDir("kis_palettes", "/usr/share/create/swatches");
144 s_instance->dirs()->addResourceDir("kis_palettes", TQDir::homeDirPath() + TQString("/.create/swatches"));
145
146 // Tell the iconloader about share/apps/koffice/icons
147 s_instance->iconLoader()->addAppDir("koffice");
148 }
149
150 return s_instance;
151}
152
153#include "kis_factory.moc"