summaryrefslogtreecommitdiffstats
path: root/kugar/kudesigner
diff options
context:
space:
mode:
Diffstat (limited to 'kugar/kudesigner')
-rw-r--r--kugar/kudesigner/Makefile.am42
-rw-r--r--kugar/kudesigner/kudesigner.desktop159
-rw-r--r--kugar/kudesigner/kudesigner_aboutdata.h56
-rw-r--r--kugar/kudesigner/kudesigner_doc.cpp294
-rw-r--r--kugar/kudesigner/kudesigner_doc.h97
-rw-r--r--kugar/kudesigner/kudesigner_factory.cpp99
-rw-r--r--kugar/kudesigner/kudesigner_factory.h47
-rw-r--r--kugar/kudesigner/kudesigner_part.cpp22
-rw-r--r--kugar/kudesigner/kudesigner_readonly.rc8
-rw-r--r--kugar/kudesigner/kudesigner_view.cpp411
-rw-r--r--kugar/kudesigner/kudesigner_view.h140
-rw-r--r--kugar/kudesigner/kudesignerui.rc68
-rw-r--r--kugar/kudesigner/main.cpp46
-rw-r--r--kugar/kudesigner/pics/Makefile.am1
-rw-r--r--kugar/kudesigner/pics/lo16-app-kudesigner.pngbin0 -> 376 bytes
-rw-r--r--kugar/kudesigner/pics/lo32-app-kudesigner.pngbin0 -> 575 bytes
-rw-r--r--kugar/kudesigner/templates/General/.directory55
-rw-r--r--kugar/kudesigner/templates/General/A0.desktop7
-rw-r--r--kugar/kudesigner/templates/General/A0.ktm9
-rw-r--r--kugar/kudesigner/templates/General/A1.desktop7
-rw-r--r--kugar/kudesigner/templates/General/A1.ktm9
-rw-r--r--kugar/kudesigner/templates/General/A2.desktop7
-rw-r--r--kugar/kudesigner/templates/General/A2.ktm9
-rw-r--r--kugar/kudesigner/templates/General/A3.desktop7
-rw-r--r--kugar/kudesigner/templates/General/A3.ktm9
-rw-r--r--kugar/kudesigner/templates/General/A4.desktop9
-rw-r--r--kugar/kudesigner/templates/General/A4.ktm9
-rw-r--r--kugar/kudesigner/templates/General/A5.desktop6
-rw-r--r--kugar/kudesigner/templates/General/A5.ktm9
-rw-r--r--kugar/kudesigner/templates/General/A6.desktop7
-rw-r--r--kugar/kudesigner/templates/General/A6.ktm9
-rw-r--r--kugar/kudesigner/templates/General/A7.desktop7
-rw-r--r--kugar/kudesigner/templates/General/A7.ktm9
-rw-r--r--kugar/kudesigner/templates/General/A8.desktop7
-rw-r--r--kugar/kudesigner/templates/General/A8.ktm9
-rw-r--r--kugar/kudesigner/templates/General/A9.desktop7
-rw-r--r--kugar/kudesigner/templates/General/A9.ktm9
-rw-r--r--kugar/kudesigner/templates/General/B0.desktop8
-rw-r--r--kugar/kudesigner/templates/General/B0.ktm9
-rw-r--r--kugar/kudesigner/templates/General/B1.desktop8
-rw-r--r--kugar/kudesigner/templates/General/B1.ktm9
-rw-r--r--kugar/kudesigner/templates/General/B10.desktop8
-rw-r--r--kugar/kudesigner/templates/General/B10.ktm9
-rw-r--r--kugar/kudesigner/templates/General/B2.desktop8
-rw-r--r--kugar/kudesigner/templates/General/B2.ktm9
-rw-r--r--kugar/kudesigner/templates/General/B3.desktop8
-rw-r--r--kugar/kudesigner/templates/General/B3.ktm9
-rw-r--r--kugar/kudesigner/templates/General/B4.desktop7
-rw-r--r--kugar/kudesigner/templates/General/B4.ktm9
-rw-r--r--kugar/kudesigner/templates/General/B5.desktop8
-rw-r--r--kugar/kudesigner/templates/General/B5.ktm9
-rw-r--r--kugar/kudesigner/templates/General/B6.desktop8
-rw-r--r--kugar/kudesigner/templates/General/B6.ktm9
-rw-r--r--kugar/kudesigner/templates/General/B7.desktop8
-rw-r--r--kugar/kudesigner/templates/General/B7.ktm9
-rw-r--r--kugar/kudesigner/templates/General/B8.desktop8
-rw-r--r--kugar/kudesigner/templates/General/B8.ktm9
-rw-r--r--kugar/kudesigner/templates/General/B9.desktop8
-rw-r--r--kugar/kudesigner/templates/General/B9.ktm9
-rw-r--r--kugar/kudesigner/templates/General/C5E.desktop8
-rw-r--r--kugar/kudesigner/templates/General/C5E.ktm9
-rw-r--r--kugar/kudesigner/templates/General/Comm10E.desktop8
-rw-r--r--kugar/kudesigner/templates/General/Comm10E.ktm9
-rw-r--r--kugar/kudesigner/templates/General/DLE.desktop7
-rw-r--r--kugar/kudesigner/templates/General/DLE.ktm9
-rw-r--r--kugar/kudesigner/templates/General/Executive.desktop24
-rw-r--r--kugar/kudesigner/templates/General/Executive.ktm9
-rw-r--r--kugar/kudesigner/templates/General/Folio.desktop21
-rw-r--r--kugar/kudesigner/templates/General/Folio.ktm9
-rw-r--r--kugar/kudesigner/templates/General/Ledger.desktop24
-rw-r--r--kugar/kudesigner/templates/General/Ledger.ktm9
-rw-r--r--kugar/kudesigner/templates/General/Legal.desktop26
-rw-r--r--kugar/kudesigner/templates/General/Legal.ktm9
-rw-r--r--kugar/kudesigner/templates/General/Letter.desktop33
-rw-r--r--kugar/kudesigner/templates/General/Letter.ktm9
-rw-r--r--kugar/kudesigner/templates/General/Makefile.am15
-rw-r--r--kugar/kudesigner/templates/General/NPageSize.desktop2
-rw-r--r--kugar/kudesigner/templates/General/Tabloid.desktop28
-rw-r--r--kugar/kudesigner/templates/General/Tabloid.ktm9
-rw-r--r--kugar/kudesigner/templates/General/cr48-action-template_iso.pngbin0 -> 1078 bytes
-rw-r--r--kugar/kudesigner/templates/General/cr48-action-template_us.pngbin0 -> 1095 bytes
-rw-r--r--kugar/kudesigner/templates/General/crsc-action-template_iso.svgzbin0 -> 1639 bytes
-rw-r--r--kugar/kudesigner/templates/General/crsc-action-template_us.svgzbin0 -> 1640 bytes
-rw-r--r--kugar/kudesigner/templates/Makefile.am1
-rw-r--r--kugar/kudesigner/toolbar/Makefile.am2
-rw-r--r--kugar/kudesigner/toolbar/cr22-action-frame_field.pngbin0 -> 406 bytes
-rw-r--r--kugar/kudesigner/toolbar/cr22-action-id.pngbin0 -> 1278 bytes
-rw-r--r--kugar/kudesigner/toolbar/cr22-action-idf.pngbin0 -> 1410 bytes
-rw-r--r--kugar/kudesigner/toolbar/cr22-action-idh.pngbin0 -> 1385 bytes
-rw-r--r--kugar/kudesigner/toolbar/cr22-action-ipf.pngbin0 -> 1345 bytes
-rw-r--r--kugar/kudesigner/toolbar/cr22-action-iph.pngbin0 -> 1360 bytes
-rw-r--r--kugar/kudesigner/toolbar/cr22-action-irf.pngbin0 -> 1436 bytes
-rw-r--r--kugar/kudesigner/toolbar/cr22-action-irh.pngbin0 -> 1431 bytes
93 files changed, 2172 insertions, 0 deletions
diff --git a/kugar/kudesigner/Makefile.am b/kugar/kudesigner/Makefile.am
new file mode 100644
index 00000000..24d4380e
--- /dev/null
+++ b/kugar/kudesigner/Makefile.am
@@ -0,0 +1,42 @@
+SUBDIRS = toolbar pics templates
+
+INCLUDES = -I$(srcdir)/../kudesigner_lib -I$(srcdir)/../lib \
+ $(KOPROPERTY_INCLUDES) $(KOFFICE_INCLUDES) $(all_includes)
+
+bin_PROGRAMS =
+
+lib_LTLIBRARIES = libkudesignercore.la
+libkudesignercore_la_SOURCES = kudesigner_view.cpp kudesigner_factory.cpp \
+ kudesigner_doc.cpp
+libkudesignercore_la_LDFLAGS = -avoid-version $(all_libraries) $(KDE_RPATH) -no-undefined
+libkudesignercore_la_LIBADD = ../kudesigner_lib/libkudesignercommon.la $(LIB_KOFFICEUI) $(LIB_KPARTS) $(LIB_KOFFICECORE) $(LIB_KOPROPERTY) $(LIB_KIO) $(LIB_KDEPRINT)
+
+## The part
+kde_module_LTLIBRARIES = libkudesignerpart.la
+libkudesignerpart_la_SOURCES = kudesigner_part.cpp
+libkudesignerpart_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) $(KDE_RPATH)
+libkudesignerpart_la_LIBADD = libkudesignercore.la $(LIB_KOFFICEUI) $(LIB_KPARTS) $(LIB_KOFFICECORE)
+
+## The kdeinit loadable module
+kdeinit_LTLIBRARIES = kudesigner.la
+kudesigner_la_SOURCES = main.cpp
+kudesigner_la_LDFLAGS = $(all_libraries) -module -avoid-version
+kudesigner_la_LIBADD = $(LIB_KOFFICECORE)
+
+xdg_apps_DATA = kudesigner.desktop
+
+METASOURCES = AUTO
+
+rcdir = $(kde_datadir)/kudesigner
+rc_DATA = kudesignerui.rc kudesigner_readonly.rc
+
+EXTRA_DIST = \
+ kudesigner_aboutdata.h \
+ kudesigner_factory.h \
+ kudesigner_part.h \
+ kudesigner_view.h \
+ $(rc_DATA) \
+ $(xdg_apps_DATA)
+
+KDE_CXXFLAGS = $(USE_EXCEPTIONS) -DKPROPERTY_EXPORT=
+
diff --git a/kugar/kudesigner/kudesigner.desktop b/kugar/kudesigner/kudesigner.desktop
new file mode 100644
index 00000000..0636987f
--- /dev/null
+++ b/kugar/kudesigner/kudesigner.desktop
@@ -0,0 +1,159 @@
+# KDE Config File
+[Desktop Entry]
+Type=Application
+Exec=kudesigner %u
+Icon=kudesigner
+DocPath=kugar/index.html
+Terminal=false
+Name=Kugar Designer
+Name[af]=Kugar Ontwerper
+Name[ar]=مُصَمِّم Kugar
+Name[bg]=Дизайнер за Kugar
+Name[br]=Ergrafer Kugar
+Name[ca]=Dissenyador Kugar
+Name[cy]=Dylunydd Kugar
+Name[de]=Kugar-Designer
+Name[el]=Σχεδιαστής Kugar
+Name[eo]=Kugar Kreilo
+Name[es]=Diseñador Kugar
+Name[eu]=Kugar diseinatzailea
+Name[fa]=طراح Kugar
+Name[fr]=Concepteur Kugar
+Name[fy]=Kugar ûntwerp
+Name[gl]=Deseñados de Kugar
+Name[hi]=कुगर डिज़ाइनर
+Name[hr]=Kugar dizajner
+Name[is]=Kugar hönnuður
+Name[ja]=Kugar デザイナー
+Name[km]=កម្មវិធី​រចនា Kugar
+Name[lo]=ອອກແບບລາຍງານ K
+Name[lv]=Kugar dizainers
+Name[ms]=Pereka Bentuk Kugar
+Name[mt]=Diżinjatur Kugar
+Name[nb]=Kugar designer
+Name[nds]=Kugar-Maker
+Name[ne]=कुगर डिजाइनर
+Name[pl]=Projektant Kugar
+Name[sk]=Návrhár Kugar
+Name[sl]=Snovalnik Kugar
+Name[sr]=Kugar дизајнер
+Name[sr@Latn]=Kugar dizajner
+Name[sv]=Kugar designer
+Name[ta]=Kugar வடிவமைப்பாளர்
+Name[tg]=Дизайнгари Kugar
+Name[th]=ออกแบบรายงาน K
+Name[tr]=Kugar Tasarım Programı
+Name[uk]=Дизайнер Kugar
+Name[uz]=Kugar dizayner
+Name[uz@cyrillic]=Kugar дизайнер
+Name[xh]=Umyili we Kugar
+Name[zh_CN]=Kugar 设计器
+Name[zh_TW]=Kugar 設計家
+GenericName=Report Template
+GenericName[bg]=Шаблон за отчети
+GenericName[ca]=Plantilla d'informe
+GenericName[cy]=Patrymlun Adroddiad
+GenericName[da]=Rapport-skabelon
+GenericName[de]=Berichtvorlage
+GenericName[el]=Πρότυπο αναφοράς
+GenericName[eo]=Raportŝablono
+GenericName[es]=Plantillas de informes
+GenericName[et]=Aruandemall
+GenericName[eu]=Txosten-txantiloia
+GenericName[fa]=قالب گزارش
+GenericName[fi]=Raporttipohja
+GenericName[fr]=Modèle de rapport
+GenericName[fy]=Rapportsjabloan
+GenericName[gl]=Modelo de informe
+GenericName[he]=תבנית דו"ח
+GenericName[hu]=Jelentéstervező
+GenericName[is]=Skýrslusnið
+GenericName[it]=Modello di rapporto
+GenericName[ja]=レポートテンプレート
+GenericName[km]=ពុម្ព​របាយការណ៍
+GenericName[lt]=Ataskaitos šablonas
+GenericName[lv]=Atskaites šablons
+GenericName[ms]=Templat Laporan
+GenericName[nb]=Utforming av rapportmaler
+GenericName[nds]=Berichtvörlaag
+GenericName[ne]=प्रतिवेदन टेम्प्लेट
+GenericName[nl]=Rapportsjabloon
+GenericName[nn]=Rapportmal
+GenericName[pl]=Szablon raportu
+GenericName[pt]=Modelo de Relatório
+GenericName[pt_BR]=Modelo de Relatório
+GenericName[ru]=Шаблон отчёта
+GenericName[se]=Raportamálle
+GenericName[sk]=Šablóna správ
+GenericName[sl]=Predloga za poročila
+GenericName[sr]=Шаблон за извештаје
+GenericName[sr@Latn]=Šablon za izveštaje
+GenericName[sv]=Rapportmall
+GenericName[uk]=Шаблон звіту
+GenericName[uz]=Hisobot namunasi
+GenericName[uz@cyrillic]=Ҳисобот намунаси
+GenericName[zh_CN]=报告模板
+GenericName[zh_TW]=報告範本
+Comment=Report Designer
+Comment[af]=Raporteer Ontwerper
+Comment[ar]=مُصَمِّم التَّقارير
+Comment[bg]=Създаване на отчети
+Comment[bs]=Dizajner izvještaja
+Comment[ca]=Dissenyador d'informes
+Comment[cs]=Návrhář reportů
+Comment[cy]=Dylunydd Adroddiad
+Comment[da]=Rapportdesigner
+Comment[de]=Bericht-Designer
+Comment[el]=Σχεδιαστής αναφορών
+Comment[eo]=Raporto-kreilo
+Comment[es]=Diseñador de informes
+Comment[et]=Aruandedisainer
+Comment[eu]=Txosten-diseinatzailea
+Comment[fa]=طراح گزارش
+Comment[fi]=Raporttisuunittelija
+Comment[fr]=Générateur de rapports
+Comment[fy]=Rapportengenerator
+Comment[gl]=Deseñador de informes
+Comment[he]=מעצב דו"חות
+Comment[hi]=रपट डिज़ाइनर
+Comment[hr]=Dizajner izvještaja
+Comment[hu]=Jelentéskészítő
+Comment[is]=Skýrsluhönnuður
+Comment[it]=Progettazione di rapporti
+Comment[ja]=レポートデザイナー
+Comment[km]=កម្មវិធី​រចនា​របាយការណ៍
+Comment[lo]=ຕົວອອກແບບລາຍງານ
+Comment[lv]=Reporta Dizainers
+Comment[ms]=Pereka Bentuk Laporan
+Comment[mt]=Diżinjatur tar-rapporti
+Comment[nb]=Formgivingsprogram for rapporter
+Comment[nds]=Bericht-Maker
+Comment[ne]=प्रतिवेदन डिजाइनर
+Comment[nl]=Rapportengenerator
+Comment[nn]=Rapportformgjevar
+Comment[pl]=Projektant raportów
+Comment[pt]=Desenhador de Relatórios
+Comment[pt_BR]=Gerador de Relatórios
+Comment[ru]=Дизайнер отчётов
+Comment[se]=Raportahápmejeaddji
+Comment[sk]=Návrhár reportov
+Comment[sl]=Snovalnik poročil
+Comment[sr]=Дизајнер извештаја
+Comment[sr@Latn]=Dizajner izveštaja
+Comment[sv]=Rapportdesign
+Comment[ta]=Report வடிவமைப்பலர்
+Comment[tg]=Ахборот барои Дизайнгар
+Comment[th]=ตัวออกแบบรายงาน
+Comment[tr]=Rapor Tasarım Programı
+Comment[uk]=Генератор звітів
+Comment[uz]=Hisobot dizayneri
+Comment[uz@cyrillic]=Ҳисобот дизайнери
+Comment[xh]=Umyili Wengxelo
+Comment[zh_CN]=报告设计器
+Comment[zh_TW]=簡報設計家
+MimeType=application/x-kudesigner
+X-KDE-NativeMimeType=application/x-kudesigner
+X-KDE-Library=libkudesignerpart
+ServiceTypes=KOfficePart,KParts/ReadOnlyPart,KParts/ReadWritePart
+
+Categories=Qt;KDE;Office;X-KDE-More;
diff --git a/kugar/kudesigner/kudesigner_aboutdata.h b/kugar/kudesigner/kudesigner_aboutdata.h
new file mode 100644
index 00000000..9be6a2de
--- /dev/null
+++ b/kugar/kudesigner/kudesigner_aboutdata.h
@@ -0,0 +1,56 @@
+/* This file is part of the KDE project
+ Copyright (C) 2002 Alexander Dymo <cloudtemple@mksat.net>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#ifndef KUDESIGNER_ABOUTDATA
+#define KUDESIGNER_ABOUTDATA
+
+#include <kaboutdata.h>
+#include <klocale.h>
+#include <kofficeversion.h>
+
+static const char* description = I18N_NOOP( "GUI report template designer for Kugar report engine" );
+static const char* version = KOFFICE_VERSION_STRING;
+
+KAboutData * newKudesignerAboutData()
+{
+ // Change this, of course
+ // The first argument of the KAboutData constructor is the instance name.
+ // It is very important, it's what's used for many things, like the subdir in share/apps, etc.
+ // It must also match the name of the application's .desktop file.
+ KAboutData * aboutData = new KAboutData( "kudesigner", I18N_NOOP( "Kugar Report Designer" ),
+ version, description, KAboutData::License_LGPL,
+ "(c) 2002,2003, Alexander Dymo (and the Kugar Team)" );
+ aboutData->addAuthor( "Alexander Dymo",
+ I18N_NOOP( "Maintainer, Report Designer, Kugar library enhancements" ),
+ "cloudtemple@mksat.net",
+ "http://www.cloudtemple.mksat.net" );
+ aboutData->addAuthor( "Joseph Wenninger",
+ I18N_NOOP( "Major bugfixes, additional features and Kexi integration" ),
+ "jowenn@kde.org",
+ "" );
+ aboutData->addCredit( "Per Winkvist",
+ I18N_NOOP( "Fast property editing for report items" ),
+ "per.winkvist@cellnetwork.com",
+ "" );
+ aboutData->setTranslator( I18N_NOOP( "_: NAME OF TRANSLATORS\nYour names" ),
+ I18N_NOOP( "_: EMAIL OF TRANSLATORS\nYour emails" ) );
+ return aboutData;
+}
+
+#endif
diff --git a/kugar/kudesigner/kudesigner_doc.cpp b/kugar/kudesigner/kudesigner_doc.cpp
new file mode 100644
index 00000000..eb240a88
--- /dev/null
+++ b/kugar/kudesigner/kudesigner_doc.cpp
@@ -0,0 +1,294 @@
+/* This file is part of the KDE project
+ Copyright (C) 2002 Alexander Dymo <cloudtemple@mksat.net>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+#include "kudesigner_doc.h"
+#include "kudesigner_factory.h"
+#include "kudesigner_view.h"
+
+#include <KoTemplateChooseDia.h>
+#include <kparts/componentfactory.h>
+#include <kdebug.h>
+#include <klocale.h>
+#include <kstandarddirs.h>
+#include <kcommand.h>
+
+#include <qpainter.h>
+#include <qprinter.h>
+#include <qpaintdevicemetrics.h>
+#include <qfileinfo.h>
+#include <qdockwindow.h>
+#include <qdom.h>
+#include <qtextstream.h>
+#include <qtextcodec.h>
+
+#include <canvas.h>
+#include <kugartemplate.h>
+
+#include "kudesigner_view.h"
+
+KudesignerDoc::KudesignerDoc( QWidget *parentWidget, const char *widgetName, QObject* parent, const char* name, bool singleViewMode )
+ : KoDocument( parentWidget, widgetName, parent, name, singleViewMode ), m_plugin( 0 ), m_propPos( DockRight ), m_modified( false )
+{
+ setInstance( KudesignerFactory::global(), false );
+ setTemplateType("kudesigner_template");
+ history = new KoCommandHistory( actionCollection() );
+
+ // connect( history, SIGNAL( documentRestored() ), this, SLOT( slotDocumentRestored() ) );
+ // connect( history, SIGNAL( commandExecuted() ), this, SLOT( slotCommandExecuted() ) );
+ docCanvas = new Kudesigner::Canvas( 100, 100 );
+ emit canvasChanged( docCanvas );
+}
+
+KudesignerDoc::~KudesignerDoc()
+{
+ delete history;
+}
+
+void KudesignerDoc::addCommand( KCommand *cmd )
+{
+ cmd->execute();
+ setModified( true );
+ /* history->addCommand(cmd);*/
+}
+
+bool KudesignerDoc::initDoc( InitDocFlags flags, QWidget* parentWidget )
+{
+ // If nothing is loaded, do initialize here
+ bool ok = FALSE;
+
+ // TODO if (flags==KoDocument::InitDocEmpty)
+
+ QString file;
+ KoTemplateChooseDia::DialogType dlgtype;
+ if ( flags != KoDocument::InitDocFileNew )
+ dlgtype = KoTemplateChooseDia::Everything;
+ else
+ dlgtype = KoTemplateChooseDia::OnlyTemplates;
+
+ KoTemplateChooseDia::ReturnType ret = KoTemplateChooseDia::choose(
+ KudesignerFactory::global(), file,
+ dlgtype, "kudesigner_template", parentWidget );
+ if ( ret == KoTemplateChooseDia::Template )
+ {
+ resetURL();
+ ok = loadNativeFormat( file );
+ if ( !ok )
+ showLoadingErrorDialog();
+ setEmpty();
+ }
+ else if ( ret == KoTemplateChooseDia::File )
+ {
+ KURL url( file );
+ ok = openURL( url );
+ }
+ else if ( ret == KoTemplateChooseDia::Empty )
+ {
+ QString fileName( locate( "kudesigner_template", "General/.source/A4.ktm", KudesignerFactory::global() ) );
+ resetURL();
+ ok = loadNativeFormat( fileName );
+ if ( !ok )
+ showLoadingErrorDialog();
+ setEmpty();
+ }
+ setModified( FALSE );
+
+ return ok;
+}
+
+void KudesignerDoc::initEmpty()
+{
+ QString fileName( locate( "kudesigner_template", "General/.source/A4.ktm", KudesignerFactory::global() ) );
+ bool ok = loadNativeFormat( fileName );
+ if ( !ok )
+ showLoadingErrorDialog();
+ setEmpty();
+ resetURL();
+ setModified(false);
+}
+
+KoView* KudesignerDoc::createViewInstance( QWidget* parent, const char* name )
+{
+ return new KudesignerView( this, parent, name );
+}
+
+bool KudesignerDoc::loadOasis( const QDomDocument&, KoOasisStyles&, const QDomDocument&, KoStore* )
+{
+ return false;
+}
+
+bool KudesignerDoc::saveOasis( KoStore*, KoXmlWriter* )
+{
+ return false;
+}
+
+void KudesignerDoc::paintContent( QPainter& painter, const QRect& rect, bool /*transparent*/,
+ double /*zoomX*/, double /*zoomY*/ )
+{
+ // ####### handle transparency
+
+ // Need to draw only the document rectangle described in the parameter rect.
+
+ canvas() ->drawArea( rect, &painter, TRUE );
+
+}
+
+void KudesignerDoc::commandExecuted()
+{
+ setModified( true );
+}
+
+void KudesignerDoc::documentRestored()
+{
+ setModified( false );
+}
+
+Kudesigner::Canvas *KudesignerDoc::canvas()
+{
+ return docCanvas;
+}
+
+int KudesignerDoc::supportedSpecialFormats() const
+{
+ return SaveAsDirectoryStore | SaveAsFlatXML;
+}
+
+QDomDocument KudesignerDoc::saveXML()
+{
+ QDomDocument doc;
+ doc.setContent( docCanvas->kugarTemplate() ->getXml() );
+ return doc;
+}
+
+bool KudesignerDoc::saveToStream( QIODevice * dev )
+{
+ QTextStream ts( dev );
+ ts.setCodec( QTextCodec::codecForName( "UTF-8" ) );
+ ts << docCanvas->kugarTemplate() ->getXml();
+ return true;
+}
+
+void KudesignerDoc::loadPlugin( const QString &name )
+{
+ kdDebug() << "Trying to load plugin: " << name << endl;
+ KuDesignerPlugin *plug = KParts::ComponentFactory::createInstanceFromLibrary<KuDesignerPlugin>( name.utf8(), this );
+ m_plugin = plug;
+ if ( m_plugin )
+ kdDebug() << "plugin has been loaded" << endl;
+ else
+ kdDebug() << "plugin couldn't be loaded :(" << endl;
+}
+
+bool KudesignerDoc::completeSaving( KoStore* store )
+{
+ if ( m_plugin )
+ return m_plugin->store( store );
+ return true;
+}
+
+bool KudesignerDoc::completeLoading( KoStore* store )
+{
+ if ( m_plugin )
+ return m_plugin->load( store );
+ return true;
+}
+
+KuDesignerPlugin *KudesignerDoc::plugin()
+{
+ return canvas() ->plugin();
+}
+
+Qt::Dock KudesignerDoc::propertyPosition()
+{
+ return m_propPos;
+}
+
+void KudesignerDoc::setForcedPropertyEditorPosition( Dock d )
+{
+ m_propPos = d;
+}
+
+void KudesignerDoc::setModified( const bool val )
+{
+ m_modified = val;
+ emit modificationMade( val );
+}
+
+bool KudesignerDoc::modified( ) const
+{
+ return m_modified;
+}
+
+bool KudesignerDoc::loadXML( QIODevice *, const QDomDocument &rt )
+{
+ QDomNode report, rep;
+ for ( QDomNode report = rt.firstChild(); !report.isNull(); report = report.nextSibling() )
+ {
+ if ( report.nodeName() == "KugarTemplate" )
+ {
+ rep = report;
+ break;
+ }
+ }
+ report = rep;
+
+ QDomNamedNodeMap attributes = report.attributes();
+ //getting the page width and height
+ int height = 297;
+ int width = 210;
+
+ if ( attributes.namedItem( "PageOrientation" ).nodeValue().toInt() )
+ {
+ int temp = height;
+ height = width;
+ width = temp;
+ }
+
+ //zooming canvas according to screen resolution
+ QPrinter* printer;
+
+ // Set the page size
+ printer = new QPrinter();
+ printer->setFullPage( true );
+ printer->setPageSize( ( QPrinter::PageSize ) attributes.namedItem( "PageSize" ).nodeValue().toInt() );
+ printer->setOrientation( ( QPrinter::Orientation ) attributes.namedItem( "PageOrientation" ).nodeValue().toInt() );
+
+ // Get the page metrics and set appropriate wigth and height
+ QPaintDeviceMetrics pdm( printer );
+ width = pdm.width();
+ height = pdm.height();
+
+ //this is not needed anymore
+ delete printer;
+
+ //creating canvas
+ if ( docCanvas )
+ delete docCanvas;
+ docCanvas = new Kudesigner::Canvas( width, height );
+ emit canvasChanged( docCanvas );
+
+ docCanvas->setAdvancePeriod( 30 );
+
+ return docCanvas->loadXML( report );
+}
+
+void KudesignerDoc::setModified()
+{
+ setModified( true );
+}
+
+#include "kudesigner_doc.moc"
diff --git a/kugar/kudesigner/kudesigner_doc.h b/kugar/kudesigner/kudesigner_doc.h
new file mode 100644
index 00000000..71fdde3c
--- /dev/null
+++ b/kugar/kudesigner/kudesigner_doc.h
@@ -0,0 +1,97 @@
+/* This file is part of the KDE project
+ Copyright (C) 2003-2004 Alexander Dymo <cloudtemple@mksat.net>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+#ifndef KUDESIGNER_DOC_H
+#define KUDESIGNER_DOC_H
+
+#include <KoDocument.h>
+#include <kcommand.h>
+#include <KoCommandHistory.h>
+#include "plugin.h"
+
+class QCanvas;
+class QDomNode;
+class QIODevice;
+class QDomDocument;
+
+namespace Kudesigner
+{
+class Canvas;
+}
+
+class KudesignerDoc: public KoDocument
+{
+ Q_OBJECT
+public:
+ KudesignerDoc( QWidget *parentWidget = 0, const char *widgetName = 0, QObject* parent = 0, const char* name = 0, bool singleViewMode = false );
+
+ ~KudesignerDoc();
+
+ virtual void paintContent( QPainter& painter, const QRect& rect, bool transparent = FALSE, double zoomX = 1.0, double zoomY = 1.0 );
+
+ virtual bool initDoc( InitDocFlags flags, QWidget* parentWidget );
+
+ virtual bool loadOasis( const QDomDocument&, KoOasisStyles&, const QDomDocument&, KoStore* );
+ virtual bool saveOasis( KoStore*, KoXmlWriter* );
+
+ virtual bool loadXML( QIODevice *, const QDomDocument & );
+ virtual QDomDocument saveXML();
+
+ virtual int supportedSpecialFormats() const;
+ virtual bool saveToStream( QIODevice * dev );
+
+ Kudesigner::Canvas *canvas();
+
+ void loadPlugin( const QString& name );
+ KuDesignerPlugin *plugin();
+ Dock propertyPosition();
+ void setForcedPropertyEditorPosition( Dock );
+
+ void addCommand( KCommand *cmd );
+
+ virtual bool modified() const;
+
+signals:
+ void canvasChanged( Kudesigner::Canvas * );
+ void modificationMade( bool );
+
+public slots:
+ virtual void setModified( const bool val );
+ virtual void setModified();
+ virtual void initEmpty();
+
+protected:
+ virtual KoView* createViewInstance( QWidget* parent, const char* name );
+ virtual bool completeSaving( KoStore* store );
+ virtual bool completeLoading( KoStore* store );
+
+protected slots:
+ void commandExecuted();
+ void documentRestored();
+
+private:
+ KoCommandHistory *history;
+
+ Kudesigner::Canvas *docCanvas;
+
+ KuDesignerPlugin *m_plugin;
+ Dock m_propPos;
+ bool m_modified;
+};
+
+#endif
diff --git a/kugar/kudesigner/kudesigner_factory.cpp b/kugar/kudesigner/kudesigner_factory.cpp
new file mode 100644
index 00000000..c83cedbf
--- /dev/null
+++ b/kugar/kudesigner/kudesigner_factory.cpp
@@ -0,0 +1,99 @@
+/* This file is part of the KDE project
+ Copyright (C) 2002 Alexander Dymo <cloudtemple@mksat.net>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#include <kudesigner_factory.h>
+#include <kudesigner_doc.h>
+#include <kudesigner_aboutdata.h>
+#include <kinstance.h>
+#include <kiconloader.h>
+#include <klocale.h>
+#include <kdebug.h>
+#include <kstandarddirs.h>
+
+KInstance* KudesignerFactory::s_global = 0L;
+KAboutData* KudesignerFactory::s_aboutData = 0L;
+
+KudesignerFactory::KudesignerFactory( QObject* parent, const char* name )
+ : KoFactory( parent, name )
+{
+ global();
+}
+
+KudesignerFactory::~KudesignerFactory()
+{
+ delete s_aboutData;
+ s_aboutData = 0L;
+ delete s_global;
+ s_global = 0L;
+}
+
+KParts::Part* KudesignerFactory::createPartObject( QWidget *parentWidget, const char *widgetName, QObject* parent, const char* name, const char* classname, const QStringList & data )
+{
+ // If classname is "KoDocument", our host is a koffice application
+ // otherwise, the host wants us as a simple part, so switch to readonly and single view.
+ bool bWantKoDocument = ( strcmp( classname, "KoDocument" ) == 0 );
+ // parentWidget and widgetName are used by KoDocument for the "readonly+singleView" case.
+ KudesignerDoc *part = new KudesignerDoc( parentWidget, widgetName, parent, name, !bWantKoDocument );
+
+ if ( !bWantKoDocument )
+ part->setReadWrite( false );
+
+ if ( bWantKoDocument && ( data.count() > 0 ) )
+ {
+ for ( QStringList::const_iterator it = data.begin();it != data.end();++it )
+ {
+ if ( ( *it ).startsWith( "plugin=" ) )
+ {
+ part->loadPlugin( ( *it ).right( ( *it ).length() - 7 ) );
+ }
+ else if ( ( *it ).startsWith( "forcePropertyEditorPosition=" ) )
+ {
+ QString tmp = ( *it ).right( ( *it ).length() - 28 ).upper();
+ kdDebug() << "forced property editor position: " << tmp << endl;
+ part->setForcedPropertyEditorPosition( tmp == "LEFT" ? DockLeft : DockRight );
+ }
+ }
+ }
+
+ return part;
+}
+
+KAboutData* KudesignerFactory::aboutData()
+{
+ if ( !s_aboutData )
+ s_aboutData = newKudesignerAboutData();
+ return s_aboutData;
+}
+
+KInstance* KudesignerFactory::global()
+{
+ if ( !s_global )
+ {
+ s_global = new KInstance( aboutData() );
+ // Add any application-specific resource directories here
+ s_global->dirs() ->addResourceType( "kudesigner_template",
+ KStandardDirs::kde_default( "data" ) + "kudesigner/templates/" );
+
+ // Tell the iconloader about share/apps/koffice/icons
+ s_global->iconLoader() ->addAppDir( "koffice" );
+ }
+ return s_global;
+}
+
+#include <kudesigner_factory.moc>
diff --git a/kugar/kudesigner/kudesigner_factory.h b/kugar/kudesigner/kudesigner_factory.h
new file mode 100644
index 00000000..ae660eb5
--- /dev/null
+++ b/kugar/kudesigner/kudesigner_factory.h
@@ -0,0 +1,47 @@
+/* This file is part of the KDE project
+ Copyright (C) 2002 Alexander Dymo <cloudtemple@mksat.net>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#ifndef KUDESIGNER_FACTORY_H
+#define KUDESIGNER_FACTORY_H
+
+#include <KoFactory.h>
+#include <koffice_export.h>
+class KInstance;
+class KAboutData;
+
+class KUGARDESIGNER_EXPORT KudesignerFactory : public KoFactory
+{
+ Q_OBJECT
+public:
+ KudesignerFactory( QObject* parent = 0, const char* name = 0 );
+ ~KudesignerFactory();
+
+ virtual KParts::Part *createPartObject( QWidget *parentWidget = 0, const char *widgetName = 0, QObject *parent = 0, const char *name = 0, const char *classname = "KoDocument", const QStringList &args = QStringList() );
+
+ static KInstance* global();
+
+ // _Creates_ a KAboutData but doesn't keep ownership
+ static KAboutData* aboutData();
+
+private:
+ static KInstance* s_global;
+ static KAboutData* s_aboutData;
+};
+
+#endif
diff --git a/kugar/kudesigner/kudesigner_part.cpp b/kugar/kudesigner/kudesigner_part.cpp
new file mode 100644
index 00000000..bf0fe2ba
--- /dev/null
+++ b/kugar/kudesigner/kudesigner_part.cpp
@@ -0,0 +1,22 @@
+/* This file is part of the KDE project
+ Copyright (C) 2003 Joseph Wenninger <jowenn@kde.org>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#include <kudesigner_factory.h>
+
+K_EXPORT_COMPONENT_FACTORY( libkudesignerpart, KudesignerFactory )
diff --git a/kugar/kudesigner/kudesigner_readonly.rc b/kugar/kudesigner/kudesigner_readonly.rc
new file mode 100644
index 00000000..a1d9a375
--- /dev/null
+++ b/kugar/kudesigner/kudesigner_readonly.rc
@@ -0,0 +1,8 @@
+<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd" >
+<kpartgui name="kudesigner" version="1">
+<MenuBar>
+ <Menu name="edit"><text>&amp;Edit</text>
+ <Action name="copy"/>
+ </Menu>
+</MenuBar>
+</kpartgui>
diff --git a/kugar/kudesigner/kudesigner_view.cpp b/kugar/kudesigner/kudesigner_view.cpp
new file mode 100644
index 00000000..713b8521
--- /dev/null
+++ b/kugar/kudesigner/kudesigner_view.cpp
@@ -0,0 +1,411 @@
+/* This file is part of the KDE project
+ Copyright (C) 2002-2004 Alexander Dymo <cloudtemple@mksat.net>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MEm_viewHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+#include "kudesigner_view.h"
+#include "kudesigner_factory.h"
+#include "kudesigner_doc.h"
+
+#include <map>
+
+#include <qpainter.h>
+#include <qiconset.h>
+#include <qinputdialog.h>
+#include <qevent.h>
+#include <qmainwindow.h>
+#include <qaction.h>
+#include <qlayout.h>
+#include <qdockwindow.h>
+#include <qmenubar.h>
+#include <qmessagebox.h>
+#include <qspinbox.h>
+#include <qlabel.h>
+
+#include <kaction.h>
+#include <kstdaction.h>
+#include <klocale.h>
+#include <kdebug.h>
+
+#include <KoMainWindow.h>
+
+#include <commdefs.h>
+#include <view.h>
+#include <structurewidget.h>
+#include <canvas.h>
+#include <command.h>
+
+#include <field.h>
+#include <calcfield.h>
+#include <label.h>
+#include <line.h>
+#include <specialfield.h>
+
+#include <kugartemplate.h>
+#include <reportheader.h>
+#include <reportfooter.h>
+#include <pageheader.h>
+#include <pagefooter.h>
+#include <detailheader.h>
+#include <detailfooter.h>
+#include <detail.h>
+
+#include <koproperty/editor.h>
+#include <koproperty/property.h>
+
+using namespace Kudesigner;
+
+KudesignerView::KudesignerView( KudesignerDoc* part, QWidget* parent, const char* name )
+ : KoView( part, parent, name ), m_propertyEditor( 0 ), m_doc( part )
+{
+ setInstance( KudesignerFactory::global() );
+ if ( !part->isReadWrite() ) // readonly case, e.g. when embedded into konqueror
+ setXMLFile( "kudesigner_readonly.rc" ); // simplified GUI
+ else
+ setXMLFile( "kudesignerui.rc" );
+
+ QVBoxLayout *l = new QVBoxLayout( this, 0, 0 );
+ m_view = new Kudesigner::View( part->canvas(), this );
+ if ( part->plugin() )
+ {
+ m_view->setAcceptDrops( part->plugin() ->acceptsDrops() );
+ m_view->viewport() ->setAcceptDrops( part->plugin() ->acceptsDrops() );
+ m_view->setPlugin( part->plugin() );
+ }
+ l->addWidget( m_view );
+
+ m_view->viewport() ->setFocusProxy( m_view );
+ m_view->viewport() ->setFocusPolicy( WheelFocus );
+ m_view->setFocus();
+
+ m_view->itemToInsert = 0;
+
+ QDockWindow *dw1 = new QDockWindow( QDockWindow::OutsideDock, shell() );
+ QDockWindow *dw2 = new QDockWindow( QDockWindow::OutsideDock, shell() );
+ m_structure = new Kudesigner::StructureWidget( dw1 );
+ m_propertyEditor = new Editor( dw2 );
+ dw1->boxLayout() ->addWidget( m_structure, 1 );
+ dw2->boxLayout() ->addWidget( m_propertyEditor, 1 );
+ dw1->setFixedExtentWidth( 400 );
+ dw1->setResizeEnabled( true );
+ dw2->setFixedExtentWidth( 400 );
+ dw2->setResizeEnabled( true );
+
+ if ( m_doc->plugin() )
+ {
+ // connect( m_propertyEditor, SIGNAL(createPluggedInEditor(QWidget*&, Editor *, Property*, Box *)),
+ // m_doc->plugin(), SLOT(createPluggedInEditor(QWidget*&, Editor *, Property*, Box *)));
+
+ kdDebug() << "*************Property and plugin have been connected" << endl;
+ }
+
+ shell() ->addDockWindow( dw1, m_doc->propertyPosition() );
+ shell() ->addDockWindow( dw2, m_doc->propertyPosition() );
+
+ m_structure->setDocument( m_doc->canvas() );
+
+ connect( m_doc, SIGNAL( canvasChanged( Kudesigner::Canvas * ) ),
+ m_structure, SLOT( setDocument( Kudesigner::Canvas * ) ) );
+ connect( m_doc->canvas(), SIGNAL( structureModified() ),
+ m_structure, SLOT( refresh() ) );
+
+ connect( m_view, SIGNAL( selectionMade( Buffer* ) ),
+ this, SLOT( populateProperties( Buffer* ) ) );
+
+ connect( m_view, SIGNAL( selectionClear() ),
+ m_propertyEditor, SLOT( clear() ) );
+
+ connect( m_view, SIGNAL( changed() ),
+ m_doc, SLOT( setModified() ) );
+
+ connect( m_view, SIGNAL( selectionMade( Buffer* ) ),
+ m_structure, SLOT( selectionMade() ) );
+ connect( m_view, SIGNAL( selectionClear() ),
+ m_structure, SLOT( selectionClear() ) );
+
+ connect( m_view, SIGNAL( selectedActionProcessed() ), this, SLOT( unselectItemAction() ) );
+ connect( m_view, SIGNAL( modificationPerformed() ), part, SLOT( setModified() ) );
+ connect( m_view, SIGNAL( itemPlaced( int, int, int, int ) ), this, SLOT( placeItem( int, int, int, int ) ) );
+
+ gridLabel = new QLabel( i18n( "Grid size:" ), shell() );
+ gridBox = new QSpinBox( 1, 100, 1, shell() );
+ gridBox->setValue( 10 );
+ connect( gridBox, SIGNAL( valueChanged( int ) ), m_view, SLOT( setGridSize( int ) ) );
+
+ initActions();
+
+ show();
+ m_view->show();
+ m_structure->refresh();
+}
+
+KudesignerView::~KudesignerView()
+{
+ delete gridLabel;
+ delete gridBox;
+}
+
+void KudesignerView::paintEvent( QPaintEvent* ev )
+{
+ QPainter painter;
+ painter.begin( this );
+
+ // ### TODO: Scaling
+
+ // Let the document do the drawing
+ koDocument() ->paintEverything( painter, ev->rect(), FALSE, this );
+
+ painter.end();
+}
+
+void KudesignerView::resizeEvent( QResizeEvent* /*_ev*/ )
+{
+ m_view->setGeometry( 0, 0, width(), height() );
+}
+
+void KudesignerView::initActions()
+{
+ cutAction = KStdAction::cut( this, SLOT( cut() ), actionCollection() );
+ copyAction = KStdAction::copy( this, SLOT( copy() ), actionCollection() );
+ pasteAction = KStdAction::paste( this, SLOT( paste() ), actionCollection() );
+ selectAllAction = KStdAction::selectAll( this, SLOT( selectAll() ), actionCollection() );
+ deleteAction = new KAction( i18n( "Delete" ), "editdelete", 0, this,
+ SLOT( deleteItems() ), actionCollection(), "edit_delete" );
+ cutAction->setEnabled( false );
+ copyAction->setEnabled( false );
+ pasteAction->setEnabled( false );
+ // deleteAction->setEnabled(false);
+
+ sectionsReportHeader = new KAction( i18n( "Report Header" ), "irh", 0, this,
+ SLOT( slotAddReportHeader() ), actionCollection(), "rheader" );
+ sectionsReportFooter = new KAction( i18n( "Report Footer" ), "irf", 0, this,
+ SLOT( slotAddReportFooter() ), actionCollection(), "rfooter" );
+ sectionsPageHeader = new KAction( i18n( "Page Header" ), "iph", 0, this,
+ SLOT( slotAddPageHeader() ), actionCollection(), "pheader" );
+ sectionsPageFooter = new KAction( i18n( "Page Footer" ), "ipf", 0, this,
+ SLOT( slotAddPageFooter() ), actionCollection(), "pfooter" );
+ sectionsDetailHeader = new KAction( i18n( "Detail Header" ), "idh", 0, this,
+ SLOT( slotAddDetailHeader() ), actionCollection(), "dheader" );
+ sectionsDetail = new KAction( i18n( "Detail" ), "id", 0, this,
+ SLOT( slotAddDetail() ), actionCollection(), "detail" );
+ sectionsDetailFooter = new KAction( i18n( "Detail Footer" ), "idf", 0, this,
+ SLOT( slotAddDetailFooter() ), actionCollection(), "dfooter" );
+
+ itemsNothing = new KRadioAction( i18n( "Clear Selection" ), "frame_edit", 0, this,
+ SLOT( slotAddItemNothing() ), actionCollection(), "nothing" );
+ itemsNothing->setExclusiveGroup( "itemsToolBar" );
+ itemsNothing->setChecked( true );
+ itemsLabel = new KRadioAction( i18n( "Label" ), "frame_text", 0, this,
+ SLOT( slotAddItemLabel() ), actionCollection(), "label" );
+ itemsLabel->setExclusiveGroup( "itemsToolBar" );
+ itemsField = new KRadioAction( i18n( "Field" ), "frame_field", 0, this,
+ SLOT( slotAddItemField() ), actionCollection(), "field" );
+ itemsField->setExclusiveGroup( "itemsToolBar" );
+ itemsSpecial = new KRadioAction( i18n( "Special Field" ), "frame_query", 0, this,
+ SLOT( slotAddItemSpecial() ), actionCollection(), "special" );
+ itemsSpecial->setExclusiveGroup( "itemsToolBar" );
+ itemsCalculated = new KRadioAction( i18n( "Calculated Field" ), "frame_formula", 0, this,
+ SLOT( slotAddItemCalculated() ), actionCollection(), "calcfield" );
+ itemsCalculated->setExclusiveGroup( "itemsToolBar" );
+ itemsLine = new KRadioAction( i18n( "Line" ), "frame_chart", 0, this,
+ SLOT( slotAddItemLine() ), actionCollection(), "line" );
+ itemsLine->setExclusiveGroup( "itemsToolBar" );
+
+ gridActionLabel = new KWidgetAction( gridLabel, i18n( "Grid Label" ), 0, this,
+ 0, actionCollection(), "gridlabel" );
+
+ gridAction = new KWidgetAction( gridBox, i18n( "Grid Size" ), 0, this,
+ 0, actionCollection(), "gridaction" );
+}
+
+void KudesignerView::updateReadWrite( bool /*readwrite*/ )
+{
+}
+
+void KudesignerView::guiActivateEvent( KParts::GUIActivateEvent *ev )
+{
+ if ( ev->activated() )
+ m_propertyEditor->show();
+ else
+ m_propertyEditor->hide();
+ KoView::guiActivateEvent( ev );
+}
+
+void KudesignerView::populateProperties( Buffer *buf )
+{
+ connect( buf, SIGNAL( propertyChanged() ), m_doc->canvas(), SLOT( changed() ) );
+ m_propertyEditor->changeSet( buf );
+}
+
+void KudesignerView::cut()
+{
+ // kdDebug(31000) << "KudesignerView::cut(): CUT called" << endl;
+}
+
+void KudesignerView::copy()
+{
+ // kdDebug(31000) << "KudesignerView::copy(): COPY called" << endl;
+}
+
+void KudesignerView::paste( )
+{}
+
+void KudesignerView::deleteItems( )
+{
+ if ( m_doc->canvas() ->selected.count() > 0 )
+ m_doc->addCommand( new DeleteReportItemsCommand( m_doc->canvas(), m_doc->canvas() ->selected ) );
+}
+
+void KudesignerView::selectAll( )
+{
+ m_doc->canvas() ->selectAll();
+}
+
+void KudesignerView::slotAddReportHeader()
+{
+ if ( !( ( ( KudesignerDoc * ) ( koDocument() ) ) ) ->canvas() ->kugarTemplate() ->reportHeader )
+ {
+ m_doc->addCommand( new AddReportHeaderCommand( m_doc->canvas() ) );
+ }
+}
+
+void KudesignerView::slotAddReportFooter()
+{
+ if ( !( ( ( KudesignerDoc * ) ( koDocument() ) ) ) ->canvas() ->kugarTemplate() ->reportFooter )
+ {
+ m_doc->addCommand( new AddReportFooterCommand( m_doc->canvas() ) );
+ }
+}
+
+void KudesignerView::slotAddPageHeader()
+{
+ if ( !( ( ( KudesignerDoc * ) ( koDocument() ) ) ) ->canvas() ->kugarTemplate() ->pageHeader )
+ {
+ m_doc->addCommand( new AddPageHeaderCommand( m_doc->canvas() ) );
+ }
+}
+
+void KudesignerView::slotAddPageFooter()
+{
+ if ( !( ( ( KudesignerDoc * ) ( koDocument() ) ) ) ->canvas() ->kugarTemplate() ->pageFooter )
+ {
+ m_doc->addCommand( new AddPageFooterCommand( m_doc->canvas() ) );
+ }
+}
+
+void KudesignerView::slotAddDetailHeader()
+{
+ bool Ok = false;
+ unsigned int level = QInputDialog::getInteger( tr( "Add Detail Header" ), tr( "Enter detail level:" ),
+ 0, 0, 100, 1, &Ok, this );
+ if ( !Ok )
+ return ;
+ if ( m_doc->canvas() ->kugarTemplate() ->detailsCount >= level )
+ {
+ m_doc->addCommand( new AddDetailHeaderCommand( level, m_doc->canvas() ) );
+ }
+}
+
+void KudesignerView::slotAddDetail()
+{
+ bool Ok = false;
+ unsigned int level = QInputDialog::getInteger( tr( "Add Detail" ), tr( "Enter detail level:" ),
+ 0, 0, 100, 1, &Ok, this );
+ if ( !Ok )
+ return ;
+ if ( ( ( level == 0 ) && ( m_doc->canvas() ->kugarTemplate() ->detailsCount == 0 ) )
+ || ( m_doc->canvas() ->kugarTemplate() ->detailsCount == level ) )
+ {
+ m_doc->addCommand( new AddDetailCommand( level, m_doc->canvas() ) );
+ }
+}
+
+void KudesignerView::slotAddDetailFooter()
+{
+ bool Ok = false;
+ unsigned int level = QInputDialog::getInteger( tr( "Add Detail Footer" ), tr( "Enter detail level:" ),
+ 0, 0, 100, 1, &Ok, this );
+ if ( !Ok )
+ return ;
+
+ if ( m_doc->canvas() ->kugarTemplate() ->detailsCount >= level )
+ {
+ m_doc->addCommand( new AddDetailFooterCommand( level, m_doc->canvas() ) );
+ }
+}
+
+void KudesignerView::slotAddItemNothing()
+{
+ if ( m_doc->canvas() )
+ {
+ if ( m_view->itemToInsert )
+ {
+ m_view->itemToInsert = 0;
+ }
+ }
+}
+
+void KudesignerView::slotAddItemLabel()
+{
+ if ( m_doc->canvas() )
+ {
+ m_view->itemToInsert = Rtti_Label;
+ }
+}
+
+void KudesignerView::slotAddItemField()
+{
+ if ( m_doc->canvas() )
+ {
+ m_view->itemToInsert = Rtti_Field;
+ }
+}
+
+void KudesignerView::slotAddItemSpecial()
+{
+ if ( m_doc->canvas() )
+ {
+ m_view->itemToInsert = Rtti_Special;
+ }
+}
+
+void KudesignerView::slotAddItemCalculated()
+{
+ if ( m_doc->canvas() )
+ {
+ m_view->itemToInsert = Rtti_Calculated;
+ }
+}
+
+void KudesignerView::slotAddItemLine()
+{
+ if ( m_doc->canvas() )
+ {
+ m_view->itemToInsert = Rtti_Line;
+ }
+}
+
+void KudesignerView::unselectItemAction()
+{
+ /* itemsNothing->setOn(true);*/
+}
+
+void KudesignerView::placeItem( int x, int y, int band, int bandLevel )
+{
+ m_doc->addCommand( new AddReportItemCommand( m_doc->canvas(), m_view, x, y, ( Kudesigner::RttiValues ) band, bandLevel ) );
+}
+
+#include "kudesigner_view.moc"
diff --git a/kugar/kudesigner/kudesigner_view.h b/kugar/kudesigner/kudesigner_view.h
new file mode 100644
index 00000000..e2cd9ed0
--- /dev/null
+++ b/kugar/kudesigner/kudesigner_view.h
@@ -0,0 +1,140 @@
+/* This file is part of the KDE project
+ Copyright (C) 2003-2004 Alexander Dymo <cloudtemple@mksat.net>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MEm_viewHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+#ifndef KUDESIGNER_VIEW_H
+#define KUDESIGNER_VIEW_H
+
+#include <KoView.h>
+#include <kparts/event.h>
+
+#include <qdom.h>
+
+#include <set>
+
+class QLabel;
+class QSpinBox;
+class QAction;
+class QPaintEvent;
+class QDockWindow;
+class QToolBar;
+
+class KAction;
+class KRadioAction;
+class KWidgetAction;
+
+class KudesignerDoc;
+
+
+namespace KoProperty
+{
+class Editor;
+class Buffer;
+}
+using namespace KoProperty;
+
+namespace Kudesigner
+{
+class View;
+class StructureWidget;
+class ReportItem;
+}
+
+class KudesignerView: public KoView
+{
+ Q_OBJECT
+ friend class Kudesigner::View;
+
+public:
+ KudesignerView( KudesignerDoc* part, QWidget* parent = 0, const char* name = 0 );
+ virtual ~KudesignerView();
+
+ Kudesigner::View *view()
+ {
+ return m_view;
+ }
+
+protected slots:
+ void populateProperties( Buffer *buf );
+ void cut();
+ void copy();
+ void paste();
+ void deleteItems();
+ void selectAll();
+ void slotAddItemNothing();
+ void slotAddDetailFooter();
+ void slotAddDetail();
+ void slotAddDetailHeader();
+ void slotAddPageFooter();
+ void slotAddPageHeader();
+ void slotAddReportFooter();
+ void slotAddReportHeader();
+ void slotAddItemLine();
+ void slotAddItemCalculated();
+ void slotAddItemSpecial();
+ void slotAddItemField();
+ void slotAddItemLabel();
+ void unselectItemAction();
+ void placeItem( int x, int y, int band, int bandLevel );
+
+protected:
+ void initActions();
+
+ void paintEvent( QPaintEvent* );
+ virtual void resizeEvent( QResizeEvent* _ev );
+ virtual void updateReadWrite( bool readwrite );
+ virtual void guiActivateEvent( KParts::GUIActivateEvent *ev );
+
+private:
+ Kudesigner::View *m_view;
+ Kudesigner::StructureWidget *m_structure;
+ KoProperty::Editor *m_propertyEditor;
+ KoProperty::Buffer *m_buffer;
+
+ KudesignerDoc *m_doc;
+
+ KAction* sectionsReportHeader;
+ KAction* sectionsReportFooter;
+ KAction* sectionsPageFooter;
+ KAction* sectionsPageHeader;
+ KAction* sectionsDetailHeader;
+ KAction* sectionsDetail;
+ KAction* sectionsDetailFooter;
+
+ KRadioAction* itemsNothing;
+ KRadioAction* itemsLabel;
+ KRadioAction* itemsField;
+ KRadioAction* itemsSpecial;
+ KRadioAction* itemsCalculated;
+ KRadioAction* itemsLine;
+
+ KAction* cutAction;
+ KAction* copyAction;
+ KAction* pasteAction;
+ KAction* selectAllAction;
+ KAction* deleteAction;
+
+ KWidgetAction *gridActionLabel;
+ KWidgetAction *gridAction;
+ QLabel *gridLabel;
+ QSpinBox *gridBox;
+
+ KActionCollection *itemsCollection;
+ KActionCollection *sectionsCollection;
+};
+
+#endif
diff --git a/kugar/kudesigner/kudesignerui.rc b/kugar/kudesigner/kudesignerui.rc
new file mode 100644
index 00000000..5c01758d
--- /dev/null
+++ b/kugar/kudesigner/kudesignerui.rc
@@ -0,0 +1,68 @@
+<!DOCTYPE kpartgui>
+<kpartgui name="kudesigner" version="2">
+<MenuBar>
+ <Menu name="Edit"><text>&amp;Edit</text>
+<!-- <Action name="koffice_undo"/>
+ <Action name="koffice_redo"/>
+ <Separator/>
+ <Action name="edit_cut"/>
+ <Action name="edit_copy"/>
+ <Action name="edit_paste"/>
+ <Separator/>
+ <Action name="edit_select_all"/>
+ <Separator/> -->
+ <Action name="edit_delete"/>
+ </Menu>
+ <Menu name="sections"><text>Sec&amp;tions</text>
+ <Action name="rheader"/>
+ <Action name="pheader"/>
+ <Action name="dheader"/>
+ <Action name="detail"/>
+ <Action name="dfooter"/>
+ <Action name="pfooter"/>
+ <Action name="rfooter"/>
+ </Menu>
+ <Menu name="items"><text>&amp;Items</text>
+ <Action name="nothing"/>
+ <Separator/>
+ <Action name="label"/>
+ <Action name="field"/>
+ <Action name="calcfield"/>
+ <Action name="special"/>
+ <Separator/>
+ <Action name="line"/>
+ </Menu>
+</MenuBar>
+<ToolBar fullWidth="false" name="edit_toolbar" position="top"><Text>Edit</Text>
+<!-- <Action name="koffice_undo"/>
+ <Action name="koffice_redo"/>
+ <Separator/>
+ <Action name="edit_cut"/>
+ <Action name="edit_copy"/>
+ <Action name="edit_paste"/>
+ <Separator/> -->
+ <Action name="edit_delete"/>
+ <Separator/>
+ <Action name="gridlabel"/>
+ <Action name="gridaction"/>
+ </ToolBar>
+<ToolBar name="sectionsToolBar" position="bottom" noMerge="1"><text>Sections</text>
+ <Action name="rheader"/>
+ <Action name="pheader"/>
+ <Action name="dheader"/>
+ <Action name="detail"/>
+ <Action name="dfooter"/>
+ <Action name="pfooter"/>
+ <Action name="rfooter"/>
+</ToolBar>
+<ToolBar name="itemsToolBar" position="left" noMerge="1"><text>Items</text>
+ <Action name="nothing" group="item operations"/>
+ <Separator/>
+ <Action name="label" group="item operations"/>
+ <Action name="field" group="item operations"/>
+ <Action name="calcfield" group="item operations"/>
+ <Action name="special" group="item operations"/>
+ <Separator/>
+ <Action name="line" group="item operations"/>
+</ToolBar>
+</kpartgui>
diff --git a/kugar/kudesigner/main.cpp b/kugar/kudesigner/main.cpp
new file mode 100644
index 00000000..6a8435a2
--- /dev/null
+++ b/kugar/kudesigner/main.cpp
@@ -0,0 +1,46 @@
+/* This file is part of the KDE project
+ Copyright (C) 2002 Alexander Dymo <cloudtemple@mksat.net>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#include <KoApplication.h>
+#include <KoDocument.h>
+#include <KoMainWindow.h>
+#include <kcmdlineargs.h>
+#include <klocale.h>
+#include <dcopclient.h>
+#include "kudesigner_aboutdata.h"
+
+
+static const KCmdLineOptions options[] =
+ {
+ {"+[file]", I18N_NOOP( "File to open" ), 0
+ },
+ KCmdLineLastOption
+ };
+
+extern "C" KUGARDESIGNER_EXPORT int kdemain( int argc, char **argv )
+{
+ KLocale::setMainCatalogue( "kugar" );
+ KCmdLineArgs::init( argc, argv, newKudesignerAboutData() );
+ KCmdLineArgs::addCmdLineOptions( options );
+ KoApplication app;
+
+ if ( !app.start() ) // parses command line args, create initial docs and shells
+ return 1;
+ return app.exec();
+}
diff --git a/kugar/kudesigner/pics/Makefile.am b/kugar/kudesigner/pics/Makefile.am
new file mode 100644
index 00000000..d4466288
--- /dev/null
+++ b/kugar/kudesigner/pics/Makefile.am
@@ -0,0 +1 @@
+KDE_ICON = kudesigner \ No newline at end of file
diff --git a/kugar/kudesigner/pics/lo16-app-kudesigner.png b/kugar/kudesigner/pics/lo16-app-kudesigner.png
new file mode 100644
index 00000000..b4b302b0
--- /dev/null
+++ b/kugar/kudesigner/pics/lo16-app-kudesigner.png
Binary files differ
diff --git a/kugar/kudesigner/pics/lo32-app-kudesigner.png b/kugar/kudesigner/pics/lo32-app-kudesigner.png
new file mode 100644
index 00000000..3a566751
--- /dev/null
+++ b/kugar/kudesigner/pics/lo32-app-kudesigner.png
Binary files differ
diff --git a/kugar/kudesigner/templates/General/.directory b/kugar/kudesigner/templates/General/.directory
new file mode 100644
index 00000000..15190ef7
--- /dev/null
+++ b/kugar/kudesigner/templates/General/.directory
@@ -0,0 +1,55 @@
+[Desktop Entry]
+Name=General
+Name[af]=Algemeen
+Name[ar]=عام
+Name[bg]=Основен
+Name[br]=Pennañ
+Name[bs]=Općenito
+Name[cy]=Cyffredinol
+Name[da]=Generelt
+Name[de]=Allgemein
+Name[el]=Γενικά
+Name[eo]=Ĝenerala
+Name[et]=Üldine
+Name[fa]=عمومی
+Name[fo]=Alment
+Name[fr]=Général
+Name[fy]=Algemien
+Name[ga]=Ginearálta
+Name[gl]=Xeral
+Name[he]=כללי
+Name[hi]=सामान्य
+Name[hr]=Općenito
+Name[hu]=Általános
+Name[is]=Almennt
+Name[it]=Generale
+Name[ja]=一般
+Name[km]=ទូទៅ
+Name[lo]=ທົ່ວໄປ
+Name[lv]=Pamata
+Name[mt]=Ġenerali
+Name[nb]=Generelt
+Name[nds]=Allgemeen
+Name[ne]=साधारण
+Name[nl]=Algemeen
+Name[pl]=Ogólny
+Name[pt]=Geral
+Name[pt_BR]=Geral
+Name[ru]=Общие
+Name[se]=Oppalaš
+Name[sk]=Všeobecná
+Name[sl]=Splošno
+Name[sr]=Опште
+Name[sr@Latn]=Opšte
+Name[sv]=Allmänt
+Name[ta]= பொதுவான
+Name[tg]=Умумӣ
+Name[th]=ทั่วไป
+Name[tr]=Genel
+Name[uk]=Загальне
+Name[uz]=Umumiy
+Name[uz@cyrillic]=Умумий
+Name[wa]=Djenerå
+Name[xh]=Ngokubanzi
+Name[zh_CN]=常规
+Name[zh_TW]=一般的
diff --git a/kugar/kudesigner/templates/General/A0.desktop b/kugar/kudesigner/templates/General/A0.desktop
new file mode 100644
index 00000000..572cf70f
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A0.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Link
+URL=.source/A0.ktm
+Name=A0
+Name[hi]=ए0
+Name[sr]=А0
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/A0.ktm b/kugar/kudesigner/templates/General/A0.ktm
new file mode 100644
index 00000000..6831e87a
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A0.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="5" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/A1.desktop b/kugar/kudesigner/templates/General/A1.desktop
new file mode 100644
index 00000000..443f487d
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A1.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Link
+URL=.source/A1.ktm
+Name=A1
+Name[hi]=ए1
+Name[sr]=А1
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/A1.ktm b/kugar/kudesigner/templates/General/A1.ktm
new file mode 100644
index 00000000..908b2f03
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A1.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="6" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/A2.desktop b/kugar/kudesigner/templates/General/A2.desktop
new file mode 100644
index 00000000..c94e0aa6
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A2.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Link
+URL=.source/A2.ktm
+Name=A2
+Name[hi]=ए2
+Name[sr]=А2
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/A2.ktm b/kugar/kudesigner/templates/General/A2.ktm
new file mode 100644
index 00000000..4ce84d05
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A2.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="7" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/A3.desktop b/kugar/kudesigner/templates/General/A3.desktop
new file mode 100644
index 00000000..85ccc526
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A3.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Link
+URL=.source/A3.ktm
+Name=A3
+Name[hi]=ए3
+Name[sr]=А3
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/A3.ktm b/kugar/kudesigner/templates/General/A3.ktm
new file mode 100644
index 00000000..725e7ef6
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A3.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="8" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/A4.desktop b/kugar/kudesigner/templates/General/A4.desktop
new file mode 100644
index 00000000..49fe464b
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A4.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Link
+URL=.source/A4.ktm
+Name=A4
+Name[hi]=ए4
+Name[ru]=А4
+Name[sr]=А4
+Name[zu]=u-A4
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/A4.ktm b/kugar/kudesigner/templates/General/A4.ktm
new file mode 100644
index 00000000..17c2ff4e
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A4.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="0" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/A5.desktop b/kugar/kudesigner/templates/General/A5.desktop
new file mode 100644
index 00000000..32bd6df9
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A5.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Type=Link
+URL=.source/A5.ktm
+Name=A5
+Name[sr]=А5
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/A5.ktm b/kugar/kudesigner/templates/General/A5.ktm
new file mode 100644
index 00000000..64b65b52
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A5.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="9" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/A6.desktop b/kugar/kudesigner/templates/General/A6.desktop
new file mode 100644
index 00000000..1771ebfd
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A6.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Link
+URL=.source/A6.ktm
+Name=A6
+Name[hi]=ए6
+Name[sr]=А6
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/A6.ktm b/kugar/kudesigner/templates/General/A6.ktm
new file mode 100644
index 00000000..e69da18e
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A6.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="10" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/A7.desktop b/kugar/kudesigner/templates/General/A7.desktop
new file mode 100644
index 00000000..d39d93f2
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A7.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Link
+URL=.source/A7.ktm
+Name=A7
+Name[hi]=ए7
+Name[sr]=А7
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/A7.ktm b/kugar/kudesigner/templates/General/A7.ktm
new file mode 100644
index 00000000..c62e8489
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A7.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="11" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/A8.desktop b/kugar/kudesigner/templates/General/A8.desktop
new file mode 100644
index 00000000..89a0308f
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A8.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Link
+URL=.source/A8.ktm
+Name=A8
+Name[hi]=ए8
+Name[sr]=А8
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/A8.ktm b/kugar/kudesigner/templates/General/A8.ktm
new file mode 100644
index 00000000..6cbd58d4
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A8.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="12" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/A9.desktop b/kugar/kudesigner/templates/General/A9.desktop
new file mode 100644
index 00000000..7bc343ac
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A9.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Link
+URL=.source/A9.ktm
+Name=A9
+Name[hi]=ए9
+Name[sr]=А9
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/A9.ktm b/kugar/kudesigner/templates/General/A9.ktm
new file mode 100644
index 00000000..f819153f
--- /dev/null
+++ b/kugar/kudesigner/templates/General/A9.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="13" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/B0.desktop b/kugar/kudesigner/templates/General/B0.desktop
new file mode 100644
index 00000000..04899b4c
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B0.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Link
+URL=.source/B0.ktm
+Name=B0
+Name[hi]=बी0
+Name[lo]=ຮອຍເປື້້້້້້້້້້້້ອນ
+Name[sr]=Б0
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/B0.ktm b/kugar/kudesigner/templates/General/B0.ktm
new file mode 100644
index 00000000..93bb7e00
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B0.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="14" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/B1.desktop b/kugar/kudesigner/templates/General/B1.desktop
new file mode 100644
index 00000000..af075cc6
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B1.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Link
+URL=.source/B1.ktm
+Name=B1
+Name[hi]=बी1
+Name[lo]=ຮອຍເປືອນ
+Name[sr]=Б1
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/B1.ktm b/kugar/kudesigner/templates/General/B1.ktm
new file mode 100644
index 00000000..00512408
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B1.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="15" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/B10.desktop b/kugar/kudesigner/templates/General/B10.desktop
new file mode 100644
index 00000000..006b8359
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B10.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Link
+URL=.source/B10.ktm
+Name=B10
+Name[hi]=बी10
+Name[lo]=ຖະຫນົນ
+Name[sr]=Б10
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/B10.ktm b/kugar/kudesigner/templates/General/B10.ktm
new file mode 100644
index 00000000..99070c77
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B10.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="16" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/B2.desktop b/kugar/kudesigner/templates/General/B2.desktop
new file mode 100644
index 00000000..8164d68c
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B2.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Link
+URL=.source/B2.ktm
+Name=B2
+Name[hi]=बी2
+Name[lo]=ຮອຍເປືອນ
+Name[sr]=Б2
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/B2.ktm b/kugar/kudesigner/templates/General/B2.ktm
new file mode 100644
index 00000000..c31af4ce
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B2.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="17" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/B3.desktop b/kugar/kudesigner/templates/General/B3.desktop
new file mode 100644
index 00000000..afedc22d
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B3.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Link
+URL=.source/B3.ktm
+Name=B3
+Name[hi]=बी3
+Name[lo]=ຫນອນຜືງ
+Name[sr]=Б3
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/B3.ktm b/kugar/kudesigner/templates/General/B3.ktm
new file mode 100644
index 00000000..31bf80db
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B3.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="18" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/B4.desktop b/kugar/kudesigner/templates/General/B4.desktop
new file mode 100644
index 00000000..3d99217b
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B4.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Link
+URL=.source/B4.ktm
+Name=B4
+Name[hi]=बी4
+Name[sr]=Б4
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/B4.ktm b/kugar/kudesigner/templates/General/B4.ktm
new file mode 100644
index 00000000..aeac2cfa
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B4.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="19" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/B5.desktop b/kugar/kudesigner/templates/General/B5.desktop
new file mode 100644
index 00000000..bb6d533a
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B5.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Link
+URL=.source/B5.ktm
+Name=B5
+Name[hi]=बी5
+Name[lo]=ຮອຍເປືອນ
+Name[sr]=Б5
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/B5.ktm b/kugar/kudesigner/templates/General/B5.ktm
new file mode 100644
index 00000000..9de7d62b
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B5.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="1" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/B6.desktop b/kugar/kudesigner/templates/General/B6.desktop
new file mode 100644
index 00000000..3c64ab83
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B6.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Link
+URL=.source/B6.ktm
+Name=B6
+Name[hi]=बी6
+Name[lo]=ຮອຍເປືອນ
+Name[sr]=Б6
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/B6.ktm b/kugar/kudesigner/templates/General/B6.ktm
new file mode 100644
index 00000000..48e21a22
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B6.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="20" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/B7.desktop b/kugar/kudesigner/templates/General/B7.desktop
new file mode 100644
index 00000000..03011986
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B7.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Link
+URL=.source/B7.ktm
+Name=B7
+Name[hi]=बी7
+Name[lo]=ຮອຍເປືອນ
+Name[sr]=Б7
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/B7.ktm b/kugar/kudesigner/templates/General/B7.ktm
new file mode 100644
index 00000000..61e59b66
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B7.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="21" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/B8.desktop b/kugar/kudesigner/templates/General/B8.desktop
new file mode 100644
index 00000000..928fafb9
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B8.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Link
+URL=.source/B8.ktm
+Name=B8
+Name[hi]=बी8
+Name[lo]=B8
+Name[sr]=Б8
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/B8.ktm b/kugar/kudesigner/templates/General/B8.ktm
new file mode 100644
index 00000000..b7fb2b57
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B8.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="22" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/B9.desktop b/kugar/kudesigner/templates/General/B9.desktop
new file mode 100644
index 00000000..1d4cd393
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B9.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Link
+URL=.source/B9.ktm
+Name=B9
+Name[hi]=बी9
+Name[lo]=B9
+Name[sr]=Б9
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/B9.ktm b/kugar/kudesigner/templates/General/B9.ktm
new file mode 100644
index 00000000..5c71ef55
--- /dev/null
+++ b/kugar/kudesigner/templates/General/B9.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="23" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/C5E.desktop b/kugar/kudesigner/templates/General/C5E.desktop
new file mode 100644
index 00000000..1201eb65
--- /dev/null
+++ b/kugar/kudesigner/templates/General/C5E.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Link
+URL=.source/C5E.ktm
+Name=C5E
+Name[hi]=सी5ई
+Name[lo]=C5E
+Name[sr]=Ц5Е
+Icon=template_iso
diff --git a/kugar/kudesigner/templates/General/C5E.ktm b/kugar/kudesigner/templates/General/C5E.ktm
new file mode 100644
index 00000000..5d120ec3
--- /dev/null
+++ b/kugar/kudesigner/templates/General/C5E.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="24" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/Comm10E.desktop b/kugar/kudesigner/templates/General/Comm10E.desktop
new file mode 100644
index 00000000..48fa7bef
--- /dev/null
+++ b/kugar/kudesigner/templates/General/Comm10E.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Link
+URL=.source/Comm10E.ktm
+Name=Comm10E
+Name[hi]=कॉम10ई
+Name[lo]=ຖະຫນົນ
+Name[sr]=Comm10Е
+Icon=template_us
diff --git a/kugar/kudesigner/templates/General/Comm10E.ktm b/kugar/kudesigner/templates/General/Comm10E.ktm
new file mode 100644
index 00000000..7a6e512e
--- /dev/null
+++ b/kugar/kudesigner/templates/General/Comm10E.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="25" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/DLE.desktop b/kugar/kudesigner/templates/General/DLE.desktop
new file mode 100644
index 00000000..8a2a0b74
--- /dev/null
+++ b/kugar/kudesigner/templates/General/DLE.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Link
+URL=.source/DLE.ktm
+Name=DLE
+Name[hi]=डीएलई
+Name[lo]=DLE
+Icon=template_us
diff --git a/kugar/kudesigner/templates/General/DLE.ktm b/kugar/kudesigner/templates/General/DLE.ktm
new file mode 100644
index 00000000..66875800
--- /dev/null
+++ b/kugar/kudesigner/templates/General/DLE.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="26" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/Executive.desktop b/kugar/kudesigner/templates/General/Executive.desktop
new file mode 100644
index 00000000..5d6ce348
--- /dev/null
+++ b/kugar/kudesigner/templates/General/Executive.desktop
@@ -0,0 +1,24 @@
+[Desktop Entry]
+Type=Link
+URL=.source/Executive.ktm
+Name=Executive
+Name[ar]=تنفيذي
+Name[ca]=Executiu
+Name[cy]=Gweithredwr
+Name[da]=Udøvende
+Name[eu]=Betearazlea
+Name[fa]=اجرایی
+Name[hi]=एक्जीक्यूटिव
+Name[km]= ប្រតិបត្តិ​
+Name[lo]=ເອົາແຜ່ນອອກ
+Name[ms]=Eksekutif
+Name[nds]=US Executive
+Name[ne]=कार्यकारिणी
+Name[pt_BR]=Executivo
+Name[sk]=Úradnícky
+Name[ta]=நிறைவேற்று
+Name[tg]=Иҷроӣ
+Name[tr]=Yönetici
+Name[xh]=Isekela lomphathi
+Name[zh_CN]=行政
+Icon=template_us
diff --git a/kugar/kudesigner/templates/General/Executive.ktm b/kugar/kudesigner/templates/General/Executive.ktm
new file mode 100644
index 00000000..9fe71873
--- /dev/null
+++ b/kugar/kudesigner/templates/General/Executive.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="4" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/Folio.desktop b/kugar/kudesigner/templates/General/Folio.desktop
new file mode 100644
index 00000000..64a8f65f
--- /dev/null
+++ b/kugar/kudesigner/templates/General/Folio.desktop
@@ -0,0 +1,21 @@
+[Desktop Entry]
+Type=Link
+URL=.source/Folio.ktm
+Name=Folio
+Name[bg]=Фолио
+Name[ca]=Foli
+Name[cy]=Ffolio
+Name[et]=Foolio
+Name[eu]=Folioa
+Name[fa]=دفتر یادداشت
+Name[ga]=Fóilió
+Name[hi]=फोलियो
+Name[hr]=Portfolio
+Name[km]= សន្លឹក​ក្រដាសធំ​បត់ជាពីរ​
+Name[lo]=ສາຍນໍ້າ
+Name[lv]=Kolontituls
+Name[ne]=फोलियो
+Name[sk]=Fólia
+Name[tr]=Folyo
+Name[zh_CN]=对开
+Icon=template_us
diff --git a/kugar/kudesigner/templates/General/Folio.ktm b/kugar/kudesigner/templates/General/Folio.ktm
new file mode 100644
index 00000000..832a1d59
--- /dev/null
+++ b/kugar/kudesigner/templates/General/Folio.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="27" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/Ledger.desktop b/kugar/kudesigner/templates/General/Ledger.desktop
new file mode 100644
index 00000000..2c2dbeab
--- /dev/null
+++ b/kugar/kudesigner/templates/General/Ledger.desktop
@@ -0,0 +1,24 @@
+[Desktop Entry]
+Type=Link
+URL=.source/Ledger.ktm
+Name=Ledger
+Name[br]=Karger
+Name[cy]=Llyfr Cyfrifon
+Name[da]=Hovedbog
+Name[fa]=دفتر کل
+Name[ga]=Mórleabhar
+Name[hi]=लेजर
+Name[hr]=Knjiga salda
+Name[km]=បញ្ជី​កត់​ចេញ​ចូល
+Name[lo]=Ledger
+Name[lv]=Virsgrāmata
+Name[ms]=Lejar
+Name[ne]=लेजर
+Name[pt_BR]=Carta
+Name[sk]=Kniha
+Name[tg]=Гроссбух
+Name[tr]=Ana Defter
+Name[xh]=Incwadi ye akhawunti
+Name[zh_CN]=帐册
+Name[zh_TW]=分類帳
+Icon=template_us
diff --git a/kugar/kudesigner/templates/General/Ledger.ktm b/kugar/kudesigner/templates/General/Ledger.ktm
new file mode 100644
index 00000000..db605f13
--- /dev/null
+++ b/kugar/kudesigner/templates/General/Ledger.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="28" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/Legal.desktop b/kugar/kudesigner/templates/General/Legal.desktop
new file mode 100644
index 00000000..41f49f56
--- /dev/null
+++ b/kugar/kudesigner/templates/General/Legal.desktop
@@ -0,0 +1,26 @@
+[Desktop Entry]
+Type=Link
+URL=.source/Legal.ktm
+Name=Legal
+Name[af]=Wettig
+Name[az]=Qanuni
+Name[bg]=Юридически формат (Legal)
+Name[br]=Lisans
+Name[cy]=Cyfreithiol
+Name[eu]=Legala
+Name[fa]=مجاز
+Name[fo]=US Legal (216×356 mm, amerikansk pappírsstødd)
+Name[ga]=Dlí
+Name[hi]=लीगल
+Name[hr]=Pravno
+Name[it]=US legal
+Name[nds]=US Legal
+Name[ne]=कानूनी
+Name[pl]=Wzorce
+Name[sr]=Легал
+Name[tr]=Yasal
+Name[ven]=Zwa milayo
+Name[wa]=Legal US
+Name[xh]=Esemthethweni
+Name[zu]=Okusemthethweni
+Icon=template_us
diff --git a/kugar/kudesigner/templates/General/Legal.ktm b/kugar/kudesigner/templates/General/Legal.ktm
new file mode 100644
index 00000000..85953bb8
--- /dev/null
+++ b/kugar/kudesigner/templates/General/Legal.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="3" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/Letter.desktop b/kugar/kudesigner/templates/General/Letter.desktop
new file mode 100644
index 00000000..04da6d49
--- /dev/null
+++ b/kugar/kudesigner/templates/General/Letter.desktop
@@ -0,0 +1,33 @@
+[Desktop Entry]
+Type=Link
+URL=.source/Letter.ktm
+Name=US Letter
+Name[af]=Us Brief
+Name[az]=Zərf
+Name[bg]=Американско писмо
+Name[br]=Lizher US
+Name[ca]=Carta US
+Name[cy]=Llythyr US
+Name[es]=Carta de EEUU
+Name[eu]=AEBetako gutuna
+Name[fa]=حروف آمریکایی
+Name[fo]=US Letter (216×279 mm, amerikansk pappírsstødd)
+Name[ga]=Litir Mheiriceánach (US Letter)
+Name[gl]=Carta dos EUA
+Name[hi]=यूएस पत्र
+Name[hr]=US pismo
+Name[id]=Letter AS
+Name[km]=សំបុត្រ​អាមេរិក
+Name[lv]=ASV Vēstule
+Name[ne]=US अक्षर
+Name[pt]=Carta dos EUA
+Name[pt_BR]=Carta US
+Name[sk]=List
+Name[ta]=US எழுத்து
+Name[tg]=Мактуби US
+Name[tr]=Zarf
+Name[ven]=Vhurifhi ha Amerika
+Name[xh]=Ileta ye-US
+Name[zh_CN]=美式信函
+Name[zu]=Incwadi ye US
+Icon=template_us
diff --git a/kugar/kudesigner/templates/General/Letter.ktm b/kugar/kudesigner/templates/General/Letter.ktm
new file mode 100644
index 00000000..d6838210
--- /dev/null
+++ b/kugar/kudesigner/templates/General/Letter.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="2" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/Makefile.am b/kugar/kudesigner/templates/General/Makefile.am
new file mode 100644
index 00000000..984321e5
--- /dev/null
+++ b/kugar/kudesigner/templates/General/Makefile.am
@@ -0,0 +1,15 @@
+templates_DATA = .directory A0.desktop A5.desktop B0.desktop B4.desktop B9.desktop Folio.desktop Tabloid.desktop \
+A1.desktop A6.desktop B1.desktop B5.desktop C5E.desktop Ledger.desktop \
+A2.desktop A7.desktop B10.desktop B6.desktop Comm10E.desktop Legal.desktop \
+A3.desktop A8.desktop B2.desktop B7.desktop DLE.desktop Letter.desktop \
+A4.desktop A9.desktop B3.desktop B8.desktop Executive.desktop NPageSize.desktop
+templatesdir = $(kde_datadir)/kudesigner/templates/General
+
+templatesrc_DATA = A0.ktm A4.ktm A8.ktm B10.ktm B5.ktm B9.ktm Executive.ktm Letter.ktm \
+A1.ktm A5.ktm A9.ktm B2.ktm B6.ktm C5E.ktm Folio.ktm \
+A2.ktm A6.ktm B0.ktm B3.ktm B7.ktm Comm10E.ktm Ledger.ktm Tabloid.ktm \
+A3.ktm A7.ktm B1.ktm B4.ktm B8.ktm DLE.ktm Legal.ktm
+templatesrcdir = $(kde_datadir)/kudesigner/templates/General/.source
+
+templateicons_ICON = AUTO
+templateiconsdir = $(kde_datadir)/kudesigner/icons
diff --git a/kugar/kudesigner/templates/General/NPageSize.desktop b/kugar/kudesigner/templates/General/NPageSize.desktop
new file mode 100644
index 00000000..e1e3e173
--- /dev/null
+++ b/kugar/kudesigner/templates/General/NPageSize.desktop
@@ -0,0 +1,2 @@
+[Desktop Entry]
+Hidden=true
diff --git a/kugar/kudesigner/templates/General/Tabloid.desktop b/kugar/kudesigner/templates/General/Tabloid.desktop
new file mode 100644
index 00000000..2403bc86
--- /dev/null
+++ b/kugar/kudesigner/templates/General/Tabloid.desktop
@@ -0,0 +1,28 @@
+[Desktop Entry]
+Type=Link
+URL=.source/Tabloid.ktm
+Name=Tabloid
+Name[ar]=صحيفة نصفيّة
+Name[bg]=Таблоид
+Name[ca]=Tabloide
+Name[da]=Infospalte
+Name[eu]=Tabloidea
+Name[fa]=چکیده
+Name[fi]=Tabloidi
+Name[fr]=Tabloïd
+Name[ga]=Tablóid
+Name[gl]=Tablóide
+Name[hi]=टेब्लॉइड
+Name[km]=ការសែត​ទំហំ​សន្លឹកតូច​តែងលំអ​ដោយ​រូបភាព​ច្រើន​
+Name[lo]=ລາຍໄມ້
+Name[lv]=Tabloīds
+Name[nds]=US Tabloid
+Name[ne]=ट्याबलोइड
+Name[pt]=Tablóide
+Name[pt_BR]=Tablóide
+Name[sk]=Noviny
+Name[wa]=Tabloyide
+Name[xh]=Iphepha ndaba lobuxoki
+Name[zh_CN]=小报
+Name[zh_TW]=文摘
+Icon=template_us
diff --git a/kugar/kudesigner/templates/General/Tabloid.ktm b/kugar/kudesigner/templates/General/Tabloid.ktm
new file mode 100644
index 00000000..5bccc107
--- /dev/null
+++ b/kugar/kudesigner/templates/General/Tabloid.ktm
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE KugarTemplate SYSTEM "kugartemplate.dtd">
+
+<KugarTemplate PageSize="29" PageOrientation="0" TopMargin="20"
+ BottomMargin="20" LeftMargin="20" RightMargin="20">
+
+</KugarTemplate>
+ \ No newline at end of file
diff --git a/kugar/kudesigner/templates/General/cr48-action-template_iso.png b/kugar/kudesigner/templates/General/cr48-action-template_iso.png
new file mode 100644
index 00000000..6da59f12
--- /dev/null
+++ b/kugar/kudesigner/templates/General/cr48-action-template_iso.png
Binary files differ
diff --git a/kugar/kudesigner/templates/General/cr48-action-template_us.png b/kugar/kudesigner/templates/General/cr48-action-template_us.png
new file mode 100644
index 00000000..ab392628
--- /dev/null
+++ b/kugar/kudesigner/templates/General/cr48-action-template_us.png
Binary files differ
diff --git a/kugar/kudesigner/templates/General/crsc-action-template_iso.svgz b/kugar/kudesigner/templates/General/crsc-action-template_iso.svgz
new file mode 100644
index 00000000..728e0b9c
--- /dev/null
+++ b/kugar/kudesigner/templates/General/crsc-action-template_iso.svgz
Binary files differ
diff --git a/kugar/kudesigner/templates/General/crsc-action-template_us.svgz b/kugar/kudesigner/templates/General/crsc-action-template_us.svgz
new file mode 100644
index 00000000..5aab2fdf
--- /dev/null
+++ b/kugar/kudesigner/templates/General/crsc-action-template_us.svgz
Binary files differ
diff --git a/kugar/kudesigner/templates/Makefile.am b/kugar/kudesigner/templates/Makefile.am
new file mode 100644
index 00000000..ced250c7
--- /dev/null
+++ b/kugar/kudesigner/templates/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = General
diff --git a/kugar/kudesigner/toolbar/Makefile.am b/kugar/kudesigner/toolbar/Makefile.am
new file mode 100644
index 00000000..a75bd30b
--- /dev/null
+++ b/kugar/kudesigner/toolbar/Makefile.am
@@ -0,0 +1,2 @@
+kudesignericondir = $(kde_datadir)/kudesigner/icons
+kudesignericon_ICON = AUTO
diff --git a/kugar/kudesigner/toolbar/cr22-action-frame_field.png b/kugar/kudesigner/toolbar/cr22-action-frame_field.png
new file mode 100644
index 00000000..cf298d77
--- /dev/null
+++ b/kugar/kudesigner/toolbar/cr22-action-frame_field.png
Binary files differ
diff --git a/kugar/kudesigner/toolbar/cr22-action-id.png b/kugar/kudesigner/toolbar/cr22-action-id.png
new file mode 100644
index 00000000..897ed023
--- /dev/null
+++ b/kugar/kudesigner/toolbar/cr22-action-id.png
Binary files differ
diff --git a/kugar/kudesigner/toolbar/cr22-action-idf.png b/kugar/kudesigner/toolbar/cr22-action-idf.png
new file mode 100644
index 00000000..301de61d
--- /dev/null
+++ b/kugar/kudesigner/toolbar/cr22-action-idf.png
Binary files differ
diff --git a/kugar/kudesigner/toolbar/cr22-action-idh.png b/kugar/kudesigner/toolbar/cr22-action-idh.png
new file mode 100644
index 00000000..dbbc71a8
--- /dev/null
+++ b/kugar/kudesigner/toolbar/cr22-action-idh.png
Binary files differ
diff --git a/kugar/kudesigner/toolbar/cr22-action-ipf.png b/kugar/kudesigner/toolbar/cr22-action-ipf.png
new file mode 100644
index 00000000..549a5450
--- /dev/null
+++ b/kugar/kudesigner/toolbar/cr22-action-ipf.png
Binary files differ
diff --git a/kugar/kudesigner/toolbar/cr22-action-iph.png b/kugar/kudesigner/toolbar/cr22-action-iph.png
new file mode 100644
index 00000000..b3e395fb
--- /dev/null
+++ b/kugar/kudesigner/toolbar/cr22-action-iph.png
Binary files differ
diff --git a/kugar/kudesigner/toolbar/cr22-action-irf.png b/kugar/kudesigner/toolbar/cr22-action-irf.png
new file mode 100644
index 00000000..5a14a544
--- /dev/null
+++ b/kugar/kudesigner/toolbar/cr22-action-irf.png
Binary files differ
diff --git a/kugar/kudesigner/toolbar/cr22-action-irh.png b/kugar/kudesigner/toolbar/cr22-action-irh.png
new file mode 100644
index 00000000..416368ac
--- /dev/null
+++ b/kugar/kudesigner/toolbar/cr22-action-irh.png
Binary files differ