summaryrefslogtreecommitdiffstats
path: root/kdewidgets
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commitce4a32fe52ef09d8f5ff1dd22c001110902b60a2 (patch)
tree5ac38a06f3dde268dc7927dc155896926aaf7012 /kdewidgets
downloadtdelibs-ce4a32fe52ef09d8f5ff1dd22c001110902b60a2.tar.gz
tdelibs-ce4a32fe52ef09d8f5ff1dd22c001110902b60a2.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kdewidgets')
-rw-r--r--kdewidgets/AUTHORS3
-rw-r--r--kdewidgets/Makefile.am40
-rw-r--r--kdewidgets/README65
-rw-r--r--kdewidgets/classpreviews.cpp29
-rw-r--r--kdewidgets/classpreviews.h41
-rw-r--r--kdewidgets/kde.widgets306
-rw-r--r--kdewidgets/makekdewidgets.cpp242
-rw-r--r--kdewidgets/pics/Makefile.am17
-rw-r--r--kdewidgets/pics/kactionselector.pngbin0 -> 282 bytes
-rw-r--r--kdewidgets/pics/kactivelabel.pngbin0 -> 1271 bytes
-rw-r--r--kdewidgets/pics/kcharselect.pngbin0 -> 1288 bytes
-rw-r--r--kdewidgets/pics/kcmodule.pngbin0 -> 1340 bytes
-rw-r--r--kdewidgets/pics/kcolorbutton.pngbin0 -> 226 bytes
-rw-r--r--kdewidgets/pics/kcolorcombo.pngbin0 -> 557 bytes
-rw-r--r--kdewidgets/pics/kcombobox.pngbin0 -> 1212 bytes
-rw-r--r--kdewidgets/pics/kdatepicker.pngbin0 -> 965 bytes
-rw-r--r--kdewidgets/pics/kdatetable.pngbin0 -> 268 bytes
-rw-r--r--kdewidgets/pics/kdatetimewidget.pngbin0 -> 702 bytes
-rw-r--r--kdewidgets/pics/kdatewidget.pngbin0 -> 1232 bytes
-rw-r--r--kdewidgets/pics/kdialog.pngbin0 -> 1077 bytes
-rw-r--r--kdewidgets/pics/kdoublenuminput.pngbin0 -> 833 bytes
-rw-r--r--kdewidgets/pics/kdoublespinbox.pngbin0 -> 833 bytes
-rw-r--r--kdewidgets/pics/kdualcolorbutton.pngbin0 -> 377 bytes
-rw-r--r--kdewidgets/pics/keditlistbox.pngbin0 -> 662 bytes
-rw-r--r--kdewidgets/pics/kfontcombo.pngbin0 -> 1194 bytes
-rw-r--r--kdewidgets/pics/kfontrequester.pngbin0 -> 1035 bytes
-rw-r--r--kdewidgets/pics/kgradientselector.pngbin0 -> 180 bytes
-rw-r--r--kdewidgets/pics/khistorycombo.pngbin0 -> 1262 bytes
-rw-r--r--kdewidgets/pics/khsselector.pngbin0 -> 693 bytes
-rw-r--r--kdewidgets/pics/kiconbutton.pngbin0 -> 1170 bytes
-rw-r--r--kdewidgets/pics/kiconview.pngbin0 -> 662 bytes
-rw-r--r--kdewidgets/pics/kintnuminput.pngbin0 -> 805 bytes
-rw-r--r--kdewidgets/pics/kintspinbox.pngbin0 -> 1288 bytes
-rw-r--r--kdewidgets/pics/kkeybutton.pngbin0 -> 771 bytes
-rw-r--r--kdewidgets/pics/kled.pngbin0 -> 557 bytes
-rw-r--r--kdewidgets/pics/klineedit.pngbin0 -> 1170 bytes
-rw-r--r--kdewidgets/pics/klistbox.pngbin0 -> 1035 bytes
-rw-r--r--kdewidgets/pics/klistview.pngbin0 -> 1185 bytes
-rw-r--r--kdewidgets/pics/kpalettetable.pngbin0 -> 236 bytes
-rw-r--r--kdewidgets/pics/kpasswordedit.pngbin0 -> 568 bytes
-rw-r--r--kdewidgets/pics/kprogress.pngbin0 -> 1068 bytes
-rw-r--r--kdewidgets/pics/kpushbutton.pngbin0 -> 1221 bytes
-rw-r--r--kdewidgets/pics/krestrictedline.pngbin0 -> 688 bytes
-rw-r--r--kdewidgets/pics/kruler.pngbin0 -> 226 bytes
-rw-r--r--kdewidgets/pics/ksqueezedtextlabel.pngbin0 -> 170 bytes
-rw-r--r--kdewidgets/pics/ktextbrowser.pngbin0 -> 1448 bytes
-rw-r--r--kdewidgets/pics/ktextedit.pngbin0 -> 1451 bytes
-rw-r--r--kdewidgets/pics/ktimewidget.pngbin0 -> 818 bytes
-rw-r--r--kdewidgets/pics/kurlcomborequester.pngbin0 -> 823 bytes
-rw-r--r--kdewidgets/pics/kurllabel.pngbin0 -> 320 bytes
-rw-r--r--kdewidgets/pics/kurlrequester.pngbin0 -> 569 bytes
-rw-r--r--kdewidgets/tests/Makefile.am31
-rw-r--r--kdewidgets/tests/README6
-rw-r--r--kdewidgets/tests/sums2
-rw-r--r--kdewidgets/tests/test.widgets267
55 files changed, 1049 insertions, 0 deletions
diff --git a/kdewidgets/AUTHORS b/kdewidgets/AUTHORS
new file mode 100644
index 000000000..1c8341527
--- /dev/null
+++ b/kdewidgets/AUTHORS
@@ -0,0 +1,3 @@
+Daniel Molkentin <[email protected]>
+Malte Starostik <[email protected]>
+Nick Betcher <[email protected]>
diff --git a/kdewidgets/Makefile.am b/kdewidgets/Makefile.am
new file mode 100644
index 000000000..ee1fd209b
--- /dev/null
+++ b/kdewidgets/Makefile.am
@@ -0,0 +1,40 @@
+
+# This file is part of the KDE libraries
+# Copyright (C) 1997 Matthias Kalle Dalheimer ([email protected])
+# (C) 1997 Stephan Kulow ([email protected])
+
+# 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 General Public License
+# along with this library; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+
+SUBDIRS=. pics tests
+AM_CXXFLAGS = -DQT_PLUGIN
+
+INCLUDES = -I$(top_srcdir)/kfile $(all_includes)
+
+bin_PROGRAMS = makekdewidgets
+makekdewidgets_SOURCES = makekdewidgets.cpp
+makekdewidgets_LDFLAGS = $(KDE_RPATH) $(all_libraries)
+makekdewidgets_LDADD = $(LIB_QT) ../kdecore/libkdecore.la
+
+kde_widget_LTLIBRARIES = kdewidgets.la
+kdewidgets_la_LDFLAGS = $(KDE_PLUGIN) -module $(all_libraries)
+kdewidgets_la_LIBADD = $(LIB_KIO) $(LIB_KABC)
+kdewidgets_la_SOURCES = classpreviews.cpp kdewidgets.cpp
+
+kdewidgets.cpp: $(srcdir)/kde.widgets makekdewidgets
+ ./makekdewidgets -o kdewidgets.cpp $(srcdir)/kde.widgets
+
+CLEANFILES = kdewidgets.cpp
+
diff --git a/kdewidgets/README b/kdewidgets/README
new file mode 100644
index 000000000..eaa3de347
--- /dev/null
+++ b/kdewidgets/README
@@ -0,0 +1,65 @@
+KDE Custom Widgets for Qt Designer 2
+====================================
+
+
+Summary:
+========
+
+This directory contains KDE custom widgets for designer 2 which comes with
+Qt 3. Just make sure your plugin path in qtconfig includes
+$KDEDIR/lib/kde3/plugins . With the KDE build system nothing special
+(i.e. editing the plugin path) is needed, as uic will automatically be
+called with -L <path to the kdewidgets plugin> .
+
+This plugin uses the QWidget plugin API of Qt >= 3.0
+Don't expect it to work with any other versions of Qt.
+
+
+Known Bugs:
+===========
+
+Designer crashes when using widgets that use the kapp pointer.
+
+HOWTO Add Widgets:
+==================
+Just add new widgets to kde.widgets like this:
+[ClassName]
+IncludeFile=myheader.h
+IconSet=mycoolwidget.png
+ToolTip=My Cool Widget
+WhatsThis=Long description of my cool widget
+ConstructorArgs=(parent, name, otherNeccessaryArg)
+IsContainer=true
+Group=MyWidgetCollection
+
+Everything but [ClassName] is optional.
+IncludeFile defaults to classname.h (all lowercase)
+IconSet defaults to classname.png (all lowercase)
+ToolTip defaults to ClassName
+WhatsThis defaults to ClassName
+ConstructorArgs=(parent, name)
+IsContainer defaults to false - note, any value except an empty one is
+ interpreted as true, even if the value
+ is "false" :) So, if the widget is not a
+ container, just omit this line.
+Group defaults to "KDE"
+
+Don't forget to add an icon to the pics directory. Try to make it look similar to the other icons and be the same size.
+
+There are some global options that you can have.
+
+[Global]
+Init=new InitCode();
+Destroy= delete object;
+PluginName=MyPlugin
+
+PluginName overrides the passed in value at the command line and is optional.
+Init and Destroy are both optional arguments that can be used for custom build
+up and tear down code.
+
+Have fun!
+
+
+Ian Reinhart Geiser <[email protected]>
+Daniel Molkentin <[email protected]>
+Malte Starostik <[email protected]>
diff --git a/kdewidgets/classpreviews.cpp b/kdewidgets/classpreviews.cpp
new file mode 100644
index 000000000..0c32142e1
--- /dev/null
+++ b/kdewidgets/classpreviews.cpp
@@ -0,0 +1,29 @@
+/* This file is part of the KDE libraries
+ Copyright (C) 2001 Daniel Molkentin <[email protected]>
+
+ 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 "classpreviews.h"
+
+KDialogPreview::KDialogPreview(QWidget * parent , const char * /* name , bool, WFlagsf */)
+{
+ if (parent)
+ reparent(parent, QPoint(0,0), true);
+ else
+ qDebug("Error while reparenting!");
+}
+
diff --git a/kdewidgets/classpreviews.h b/kdewidgets/classpreviews.h
new file mode 100644
index 000000000..2e5190000
--- /dev/null
+++ b/kdewidgets/classpreviews.h
@@ -0,0 +1,41 @@
+/* This file is part of the KDE libraries
+ Copyright (C) 2001 Daniel Molkentin <[email protected]>
+
+ 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.
+*/
+
+/*
+
+ This class is intended as a place to widgets previews for designer. Simply inherit
+ your widget and modify its behavior (i.e. enter example data or do a reparent()).
+
+ This will only affect the preview, designer/uic will still use the original widget
+ in the final source output!
+
+ */
+
+#ifndef __classimpls__
+#define __classimpls__
+
+#include <kdialog.h>
+
+class KDialogPreview : public KDialog
+{
+public:
+ KDialogPreview(QWidget * parent = 0 , const char * name = 0/*, bool modal = false, WFlags f = 0*/);
+};
+
+#endif
diff --git a/kdewidgets/kde.widgets b/kdewidgets/kde.widgets
new file mode 100644
index 000000000..0503bac48
--- /dev/null
+++ b/kdewidgets/kde.widgets
@@ -0,0 +1,306 @@
+[Global]
+PluginName=KDEWidgets
+Includes=kinstance.h,classpreviews.h
+Init=new KInstance("kdewidgets");
+
+[KActiveLabel]
+ToolTip=Active Label (KDE)
+WhatsThis=A label with support for selection and clickable links
+Group=Display (KDE)
+
+[KCharSelect]
+ToolTip=Character Selection Widget (KDE)
+WhatsThis=A widget that allows selection a character out ot a table
+Group=Graphics (KDE)
+
+[KColorButton]
+ToolTip=Color Chooser Button (KDE)
+WhatsThis=A button that allows selecting a color
+Group=Graphics (KDE)
+
+[KColorCombo]
+ToolTip=Color Combo Box (KDE)
+Group=Graphics (KDE)
+
+[KComboBox]
+ToolTip=Combo Box (KDE)
+Group=Input (KDE)
+
+[KCModule]
+ToolTip=KControl Center Module (KDE)
+IsContainer=true
+Group=Container (KDE)
+
+[KDateWidget]
+ToolTip=Date preview (KDE)
+Group=Input (KDE)
+
+[KDatePicker]
+ToolTip=A date selection widget (KDE)
+WhatsThis=Provides a widget for calendar date input
+ConstructorArgs=(parent, QDate::currentDate(), name)
+Group=Input (KDE)
+
+[KDialog]
+IsContainer=true
+ImplClass=KDialogPreview
+ToolTip=Class for simple Dialogs (KDE)
+Group=Container (KDE)
+
+[KDualColorButton]
+ToolTip=A widget for selecting two related colors (KDE)
+Group=Graphics (KDE)
+
+[KEditListBox]
+ToolTip=Fullfeatured edit box with buttons (KDE)
+Group=Views (KDE)
+
+[KFontCombo]
+ToolTip=Font Combo Box (KDE)
+WhatsThis=A QCombo Box showing the installed system fonts (with preview)
+Group=Input (KDE)
+
+[KFontChooser]
+IncludeFile=kfontdialog.h
+IconSet=kfontcombo.png
+ToolTip=Font Chooser (KDE)
+WhatsThis=A font type, size and style selection widget complete with preview
+Group=Input (KDE)
+
+[KFontRequester]
+IncludeFile=kfontrequester.h
+ToolTip=Font Requester (KDE)
+WhatsThis=A compact font selection and preview widget
+Group=Input (KDE)
+
+[KGradientSelector]
+IncludeFile=kselect.h
+WhatsThis=A widget that allows the user to select two colors to form a gradient
+Group=Graphics (KDE)
+
+[KHistoryCombo]
+IncludeFile=kcombobox.h
+ToolTip=A combobox for offering a history and completion (KDE)
+WhatsThis=A combobox which implements a history like a unix shell
+Group=Input (KDE)
+
+[KHSSelector]
+IncludeFile=kcolordialog.h
+ToolTip=Widget for Hue/Saturation selection (KDE)
+Group=Graphics (KDE)
+
+[KLed]
+ToolTip=LED Widget (KDE)
+WhatsThis=A widget showing a light emitter diode
+Group=Display (KDE)
+
+[KListBox]
+ToolTip=Extended List Box (KDE)
+WhatsThis=An improved version of the QListBox that follows KDE settings
+Group=Views (KDE)
+
+[KListView]
+ToolTip=Extended List View (KDE)
+WhatsThis=An improved version of the QListView that allows certain KDE extensions
+Group=Views (KDE)
+
+[KLineEdit]
+ToolTip=Line Edit (KDE)
+Group=Input (KDE)
+
+[KListViewSearchLine]
+ToolTip=ListView Search Line (KDE)
+Group=Input (KDE)
+ConstructorArgs=(parent, 0, name)
+
+[KListViewSearchLineWidget]
+ToolTip=ListView Search Line Widget (KDE)
+IncludeFile=klistviewsearchline.h
+Group=Input (KDE)
+ConstructorArgs=(0, parent, name)
+
+[KPasswordEdit]
+IncludeFile=kpassdlg.h
+ToolTip=Safe Password LineEdit (KDE)
+WhatsThis=A KLineEdit that is safe for prompting the user for passwords
+Group=Input (KDE)
+
+[KProgress]
+ToolTip=Progress Bar (KDE)
+WhatsThis=An improved progress bar for KDE that uses QFrame and QRangeControl
+Group=Display (KDE)
+
+[KPushButton]
+ToolTip=Improved QPushButton (KDE)
+WhatsThis=An improved QPushButton to follow KDE settings
+Group=Buttons (KDE)
+
+[KKeyButton]
+ToolTip=Keyboard Key Button. (KDE)
+WhatsThis=A push button that looks like a keyboard key.
+IncludeFile=kkeybutton.h
+Group=Buttons (KDE)
+
+[KRestrictedLine]
+ToolTip=Line Edit for restricted input (KDE)
+Group=Input (KDE)
+
+[KIconButton]
+IncludeFile=kicondialog.h
+ToolTip=Button for selecting an icon (KDE)
+Group=Buttons (KDE)
+
+[KIconView]
+IncludeFile=kiconview.h
+ToolTip=Extended Icon View (KDE)
+WhatsThis=An improved version of the QIconView that allows certain KDE extensions
+Group=Views (KDE)
+
+[KIntSpinBox]
+IncludeFile=knuminput.h
+ToolTip=Enhanced Spinbox for Integer Values (KDE)
+Group=Input (KDE)
+
+[KRuler]
+ToolTip=Measuring Ruler Widget (KDE)
+WhatsThis=A measuring ruler widget as seen in KWord for page widths and heights
+Group=Display (KDE)
+
+[KSqueezedTextLabel]
+ToolTip=A QLabel that squeezes its text (KDE)
+WhatsThis=If the text is too long to fit into the label it is divided into remaining left and right parts which are separated by three dots
+ConstructorArgs=("KSqueezedTextLabel", parent, name)
+Group=Display (KDE)
+
+[KTextBrowser]
+ToolTip=Improved QTextBrowser (KDE)
+WhatsThis=An improved version of the QTextBrowser with mail or system browser invocation support
+Group=Display (KDE)
+
+[KTextEdit]
+ToolTip=Improved QTextEdit (KDE)
+WhatsThis=An improved version of the QTextEdit with mail or system browser invocation support
+Group=Input (KDE)
+
+[KURLLabel]
+ToolTip=URL Label (KDE)
+ConstructorArgs=("KURLLabel", QString::null, parent, name)
+Group=Display (KDE)
+
+[KURLComboRequester]
+ToolTip=URL Requester (KDE)
+WhatsThis=A widget holding a combobox and a pushbutton. A "file open" dialog opened when clicking on the pushbutton
+IncludeFile=kurlrequester.h
+Group=Input (KDE)
+
+[KURLRequester]
+ToolTip=URL Requester (KDE)
+WhatsThis=A widget holding a lineedit and a pushbutton. A "file open" dialog opened when clicking on the pushbutton
+Group=Input (KDE)
+
+[KIntNumInput]
+ToolTip=Integer Input Widget (KDE)
+WhatsThis=An input widget for integer numbers, consisting of a spinbox and a slider.
+IncludeFile=knuminput.h
+Group=Input (KDE)
+
+[KDoubleNumInput]
+ToolTip=Floating Point Number Input Widget (KDE)
+WhatsThis=An input widget for floating point numbers, consisting of a spinbox and a slider.
+IncludeFile=knuminput.h
+Group=Input (KDE)
+
+[KDoubleSpinBox]
+ToolTip=Enhanced Spinbox for Floating Point Values (KDE)
+WhatsThis=A spinbox widget for floating point numbers.
+IncludeFile=knuminput.h
+Group=Input (KDE)
+
+[KTimeWidget]
+ToolTip=This widget can be used to display or allow user selection of time. (KDE)
+IncludeFile=ktimewidget.h
+Group=Input (KDE)
+
+[KDateTimeWidget]
+ToolTip=This widget can be used to display or allow user selection of date and time. (KDE)
+IncludeFile=kdatetimewidget.h
+Group=Input (KDE)
+
+[KDateTable]
+IncludeFile=kdatetbl.h
+Group=Input (KDE)
+ConstructorArgs=(parent, QDate::currentDate(), name)
+
+[KLanguageButton]
+IncludeFile=klanguagebutton.h
+ToolTip=A widget for selecting a language
+WhatsThis=A combobox suitable for selecting a language
+Group=Input (KDE)
+
+[KImageFilePreview]
+IncludeFile=kimagefilepreview.h
+ToolTip=A widget that provides a image preview of a URL
+Group=Display (KDE)
+ConstructorArgs=(parent)
+
+[KActionSelector]
+IncludeFile=kactionselector.h
+ToolTip=A widget for selecting and arranging actions/objects
+Group=Views (KDE)
+
+[KWritePermsIcon]
+IncludeFile=kauthicon.h
+ToolTip=Auth icon for write permission display.
+ConstructorArgs=("", parent, name)
+Group=Display (KDE)
+
+[KRootPermsIcon]
+IncludeFile=kauthicon.h
+ToolTip=Icon to show whether or not a user has root permissions.
+Group=Display (KDE)
+
+[KColorPatch]
+IncludeFile=kcolordialog.h
+ToolTip=The KColorPatch widget is a (usually small) widget showing a selected color.
+Group=Display (KDE)
+ConstructorArgs=(parent)
+
+[KPaletteTable]
+IncludeFile=kcolordialog.h
+ToolTip=A color palette in table form.
+Group=Display (KDE)
+ConstructorArgs=(parent, 210, 16)
+
+[KABC::LdapConfigWidget]
+IncludeFile=kabc/ldapconfigwidget.h
+ToolTip=A widget which allows the user to set up LDAP connection parameters
+Group=Input (KDE)
+ConstructorArgs=(KABC::LdapConfigWidget::W_ALL, parent, name)
+
+[KArrowButton]
+IncludeFile=karrowbutton.h
+ToolTip=Draws a button which shows an arrow pointing into a certain direction.
+Group=Buttons (KDE)
+ConstructorArgs=(parent,Qt::UpArrow,name)
+
+[KAnimWidget]
+IncludeFile=kanimwidget.h
+ToolTip=This is a widget used to display animation using multiple individual pixmaps.
+Group=Display (KDE)
+ConstructorArgs=("kde",0,parent,name)
+
+[KValueSelector]
+IncludeFile=kcolordialog.h
+ToolTip=Widget for color value selection.
+Group=Graphics (KDE)
+
+[KSeparator]
+IncludeFile=kseparator.h
+ToolTip=Standard horizontal or vertical separator.
+Group=Display (KDE)
+
+[KTabWidget]
+IncludeFile=ktabwidget.h
+ToolTip=KDE tab widget container.
+IsContainer=true
+Group=Container (KDE)
diff --git a/kdewidgets/makekdewidgets.cpp b/kdewidgets/makekdewidgets.cpp
new file mode 100644
index 000000000..71421e856
--- /dev/null
+++ b/kdewidgets/makekdewidgets.cpp
@@ -0,0 +1,242 @@
+/* Copyright (C) 2004-2005 ian reinhart geiser <[email protected]> */
+#include <kaboutdata.h>
+#include <kinstance.h>
+#include <kcmdlineargs.h>
+#include <kconfig.h>
+#include <kmacroexpander.h>
+#include <kdebug.h>
+
+#include <qtextstream.h>
+#include <qfileinfo.h>
+#include <qfile.h>
+#include <qbuffer.h>
+#include <qimage.h>
+
+static const char description[] = I18N_NOOP( "Builds Qt widget plugins from an ini style description file." );
+static const char version[] = "0.2";
+static const char classHeader[] = "/**\n"
+ "* This file was autogenerated by makekdewidgets. Any changes will be lost!\n"
+ "* The generated code in this file is licensed under the same license that the\n"
+ "* input file.\n"
+ "*/\n"
+ "#include <qwidgetplugin.h>\n";
+static const char classDef[] = "#ifndef EMBED_IMAGES\n"
+ "#include <kstandarddirs.h>\n"
+ "#endif\n"
+ "\n"
+ "class %PluginName : public QWidgetPlugin\n"
+ "{\n"
+ "public:\n"
+ " %PluginName();\n"
+ " \n"
+ " virtual ~%PluginName();\n"
+ " \n"
+ " virtual QStringList keys() const\n"
+ " {\n"
+ " QStringList result;\n"
+ " for (WidgetInfos::ConstIterator it = m_widgets.begin(); it != m_widgets.end(); ++it)\n"
+ " result << it.key();\n"
+ " return result;\n"
+ " }\n"
+ " \n"
+ " virtual QWidget *create(const QString &key, QWidget *parent = 0, const char *name = 0);\n"
+ " \n"
+ " virtual QIconSet iconSet(const QString &key) const\n"
+ " {\n"
+ "#ifdef EMBED_IMAGES\n"
+ " QPixmap pix(m_widgets[key].iconSet);\n"
+ "#else\n"
+ " QPixmap pix(locate( \"data\", \n"
+ " QString::fromLatin1(\"%PluginNameLower/pics/\") + m_widgets[key].iconSet));\n"
+ "#endif\n"
+ " return QIconSet(pix);\n"
+ " }\n"
+ " \n"
+ " virtual bool isContainer(const QString &key) const { return m_widgets[key].isContainer; }\n"
+ " \n"
+ " virtual QString group(const QString &key) const { return m_widgets[key].group; }\n"
+ " \n"
+ " virtual QString includeFile(const QString &key) const { return m_widgets[key].includeFile; }\n"
+ " \n"
+ " virtual QString toolTip(const QString &key) const { return m_widgets[key].toolTip; }\n"
+ " \n"
+ " virtual QString whatsThis(const QString &key) const { return m_widgets[key].whatsThis; }\n"
+ "private:\n"
+ " struct WidgetInfo\n"
+ " {\n"
+ " QString group;\n"
+ "#ifdef EMBED_IMAGES\n"
+ " QPixmap iconSet;\n"
+ "#else\n"
+ " QString iconSet;\n"
+ "#endif\n"
+ " QString includeFile;\n"
+ " QString toolTip;\n"
+ " QString whatsThis;\n"
+ " bool isContainer;\n"
+ " };\n"
+ " typedef QMap<QString, WidgetInfo> WidgetInfos;\n"
+ " WidgetInfos m_widgets;\n"
+ "};\n"
+ "%PluginName::%PluginName()\n"
+ "{\n"
+ " WidgetInfo widget;\n";
+static const char widgetDef[] = " widget.group = QString::fromLatin1(\"%Group\");\n"
+ "#ifdef EMBED_IMAGES\n"
+ " widget.iconSet = QPixmap(%Pixmap);\n"
+ "#else\n"
+ " widget.iconSet = QString::fromLatin1(\"%IconSet\");\n"
+ "#endif\n"
+ " widget.includeFile = QString::fromLatin1(\"%IncludeFile\");\n"
+ " widget.toolTip = QString::fromLatin1(\"%ToolTip\");\n"
+ " widget.whatsThis = QString::fromLatin1(\"%WhatsThis\");\n"
+ " widget.isContainer = %IsContainer;\n"
+ " m_widgets.insert(QString::fromLatin1(\"%Class\"), widget);\n";
+static const char endCtor[] = " %Init\n"
+ "}\n"
+ "%PluginName::~%PluginName()\n"
+ "{\n"
+ " %Destroy\n"
+ "}\n"
+ "QWidget *%PluginName::create(const QString &key, QWidget *parent, const char *name)\n"
+ "{\n";
+static const char widgetCreate[] = " if (key == QString::fromLatin1(\"%Class\"))\n"
+ " return new %ImplClass%ConstructorArgs;\n";
+static const char endCreate[] = " return 0;\n"
+ "}\n"
+ "KDE_Q_EXPORT_PLUGIN(%PluginName)\n";
+
+
+static KCmdLineOptions options[] =
+ {
+ { "+file", I18N_NOOP( "Input file" ), 0 },
+ { "o <file>", I18N_NOOP( "Output file" ), 0 },
+ { "n <plugin name>", I18N_NOOP( "Name of the plugin class to generate" ), "WidgetsPlugin" },
+ { "g <group>", I18N_NOOP( "Default widget group name to display in designer" ), "Custom" },
+ { "p <pixmap dir>", I18N_NOOP( "Embed pixmaps from a source directory" ), 0 },
+ KCmdLineLastOption
+ };
+
+static QString buildWidgetDef( const QString &name, KConfig &input, const QString &group );
+static QString buildWidgetCreate( const QString &name, KConfig &input );
+static QString buildWidgetInclude( const QString &name, KConfig &input );
+static void buildFile( QTextStream &stream, const QString& group, const QString& fileName, const QString& pluginName, const QString& iconPath );
+static QString buildPixmap( const QString &name, KConfig &input, const QString &iconPath );
+
+int main( int argc, char **argv ) {
+ new KInstance( "makekdewidgets" );
+
+ KAboutData about( "makekdewidgets", I18N_NOOP( "makekdewidgets" ), version, description, KAboutData::License_GPL, "(C) 2004-2005 ian reinhart geiser", 0, 0, "[email protected]" );
+ about.addAuthor( "ian reinhart geiser", 0, "[email protected]" );
+ KCmdLineArgs::init( argc, argv, &about );
+ KCmdLineArgs::addCmdLineOptions( options );
+ KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+ if ( args->count() < 1 ) {
+ args->usage();
+ return ( 1 );
+ }
+
+ QFileInfo fi( args->arg( args->count() - 1 ) );
+
+ QString outputFile = args->getOption( "o" );
+ QString pluginName = args->getOption( "n" );
+ QString group = args->getOption( "g" );
+ QString iconPath = "";
+ if ( args->isSet( "p" ) )
+ iconPath = args->getOption( "p" );
+ QString fileName = fi.absFilePath();
+
+ if ( args->isSet( "o" ) ) {
+ QFile output( outputFile );
+ if ( output.open( IO_WriteOnly ) ) {
+ QTextStream ts( &output );
+ buildFile( ts, group, fileName , pluginName, iconPath );
+ }
+ output.close();
+ } else {
+ QTextStream ts( stdout, IO_WriteOnly );
+ buildFile( ts, group, fileName , pluginName, iconPath );
+ }
+}
+
+void buildFile( QTextStream &ts, const QString& group, const QString& fileName, const QString& pluginName, const QString& iconPath ) {
+ KConfig input( fileName, true, false );
+ input.setGroup( "Global" );
+ QMap<QString, QString> MainMap;
+ MainMap.insert( "PluginName", input.readEntry( "PluginName", pluginName ) );
+ MainMap.insert( "PluginNameLower", input.readEntry( "PluginName", pluginName ).lower() );
+ MainMap.insert( "Init", input.readEntry( "Init", "" ) );
+ MainMap.insert( "Destroy", input.readEntry( "Destroy", "" ) );
+ ts << classHeader << endl;
+ QStringList includes = input.readListEntry( "Includes", ',' );
+ for ( uint idx = 0; idx < includes.count(); ++idx )
+ ts << "#include <" << includes[ idx ] << ">" << endl;
+ QStringList classes = input.groupList();
+ classes.remove( classes.find( "Global" ) );
+ // Autogenerate widget includes here
+ for ( uint idx = 0; idx < classes.count(); ++idx )
+ ts << buildWidgetInclude( classes[ idx ], input ) << endl;
+ // Generate embedded icons
+ if ( !iconPath.isEmpty() ) {
+ for ( uint idx = 0; idx < classes.count(); ++idx )
+ ts << buildPixmap( classes[ idx ], input, iconPath ) << endl;
+ ts << "#define EMBED_IMAGES" << endl;
+ }
+ // Generate the main class code.
+ ts << KMacroExpander::expandMacros( classDef, MainMap ) << endl;
+ // Autogenerate widget defs here
+ for ( uint idx = 0; idx < classes.count(); ++idx )
+ ts << buildWidgetDef( classes[ idx ], input, group ) << endl;
+ ts << KMacroExpander::expandMacros( endCtor, MainMap ) << endl;
+ // Autogenerate create code here...
+ for ( uint idx = 0; idx < classes.count(); ++idx )
+ ts << buildWidgetCreate( classes[ idx ], input ) << endl;
+ ts << KMacroExpander::expandMacros( endCreate, MainMap ) << endl;
+
+}
+
+QString buildWidgetDef( const QString &name, KConfig &input, const QString &group ) {
+ input.setGroup( name );
+ QMap<QString, QString> defMap;
+ defMap.insert( "Group", input.readEntry( "Group", group ).replace( "\"", "\\\"" ) );
+ defMap.insert( "IconSet", input.readEntry( "IconSet", name.lower() + ".png" ).replace( ":", "_" ) );
+ defMap.insert( "Pixmap", name.lower().replace( ":", "_" ) + "_xpm" );
+ defMap.insert( "IncludeFile", input.readEntry( "IncludeFile", name.lower() + ".h" ).remove( ":" ) );
+ defMap.insert( "ToolTip", input.readEntry( "ToolTip", name + " Widget" ).replace( "\"", "\\\"" ) );
+ defMap.insert( "WhatsThis", input.readEntry( "WhatsThis", name + " Widget" ).replace( "\"", "\\\"" ) );
+ defMap.insert( "IsContainer", input.readEntry( "IsContainer", "false" ) );
+ defMap.insert( "Class", name );
+ return KMacroExpander::expandMacros( widgetDef, defMap );
+}
+
+QString buildWidgetCreate( const QString &name, KConfig &input ) {
+ input.setGroup( name );
+ QMap<QString, QString> createMap;
+ createMap.insert( "ImplClass", input.readEntry( "ImplClass", name ) );
+ createMap.insert( "ConstructorArgs", input.readEntry( "ConstructorArgs", "(parent, name)" ) );
+ createMap.insert( "Class", name );
+ return KMacroExpander::expandMacros( widgetCreate, createMap );
+}
+
+QString buildWidgetInclude( const QString &name, KConfig &input ) {
+ input.setGroup( name );
+ return "#include <" + input.readEntry( "IncludeFile", name.lower() + ".h" ) + ">";
+}
+
+QString buildPixmap( const QString &name, KConfig &input, const QString &iconPath ) {
+ input.setGroup( name );
+ QString cleanName = name.lower().replace( ":", "_" );
+ QString iconName = input.readEntry( "IconSet", cleanName + ".png" );
+
+ QFileInfo fi( iconPath + "/" + iconName );
+ QImage pix( fi.absFilePath() );
+ QCString xpm;
+ QBuffer buff( xpm );
+ buff.open( IO_WriteOnly );
+ QImageIO io( &buff, "XPM" );
+ io.setFileName( cleanName + "_xpm" );
+ io.setImage( pix );
+ io.write();
+ buff.close();
+ return xpm;
+}
diff --git a/kdewidgets/pics/Makefile.am b/kdewidgets/pics/Makefile.am
new file mode 100644
index 000000000..83e8aa357
--- /dev/null
+++ b/kdewidgets/pics/Makefile.am
@@ -0,0 +1,17 @@
+kdewidgetsdata_DATA = klineedit.png ktextbrowser.png kpasswordedit.png kdatewidget.png \
+ kfontrequester.png kurlrequester.png kcombobox.png kiconview.png kintspinbox.png \
+ kled.png ksqueezedtextlabel.png kprogress.png kurllabel.png \
+ kruler.png kcmodule.png kdoublespinbox.png kdoublenuminput.png \
+ klistbox.png klistview.png kactivelabel.png kiconbutton.png \
+ kcolorcombo.png khsselector.png kcolorbutton.png \
+ kgradientselector.png kdualcolorbutton.png ktimewidget.png \
+ kpushbutton.png kcharselect.png kdatepicker.png \
+ kdialog.png keditlistbox.png kfontcombo.png khistorycombo.png \
+ kintnuminput.png krestrictedline.png ktextedit.png \
+ kurlcomborequester.png kkeybutton.png kpalettetable.png \
+ kactionselector.png kdatetable.png kdatetimewidget.png
+
+
+kdewidgetsdatadir = $(kde_datadir)/kdewidgets/pics
+
+EXTRA_DIST = $(kdewidgetsdata_DATA)
diff --git a/kdewidgets/pics/kactionselector.png b/kdewidgets/pics/kactionselector.png
new file mode 100644
index 000000000..acfdce496
--- /dev/null
+++ b/kdewidgets/pics/kactionselector.png
Binary files differ
diff --git a/kdewidgets/pics/kactivelabel.png b/kdewidgets/pics/kactivelabel.png
new file mode 100644
index 000000000..4b935a008
--- /dev/null
+++ b/kdewidgets/pics/kactivelabel.png
Binary files differ
diff --git a/kdewidgets/pics/kcharselect.png b/kdewidgets/pics/kcharselect.png
new file mode 100644
index 000000000..0bdeec8ff
--- /dev/null
+++ b/kdewidgets/pics/kcharselect.png
Binary files differ
diff --git a/kdewidgets/pics/kcmodule.png b/kdewidgets/pics/kcmodule.png
new file mode 100644
index 000000000..1a6a9dc17
--- /dev/null
+++ b/kdewidgets/pics/kcmodule.png
Binary files differ
diff --git a/kdewidgets/pics/kcolorbutton.png b/kdewidgets/pics/kcolorbutton.png
new file mode 100644
index 000000000..14a237249
--- /dev/null
+++ b/kdewidgets/pics/kcolorbutton.png
Binary files differ
diff --git a/kdewidgets/pics/kcolorcombo.png b/kdewidgets/pics/kcolorcombo.png
new file mode 100644
index 000000000..7f987ea63
--- /dev/null
+++ b/kdewidgets/pics/kcolorcombo.png
Binary files differ
diff --git a/kdewidgets/pics/kcombobox.png b/kdewidgets/pics/kcombobox.png
new file mode 100644
index 000000000..6fa07065b
--- /dev/null
+++ b/kdewidgets/pics/kcombobox.png
Binary files differ
diff --git a/kdewidgets/pics/kdatepicker.png b/kdewidgets/pics/kdatepicker.png
new file mode 100644
index 000000000..4bcc64500
--- /dev/null
+++ b/kdewidgets/pics/kdatepicker.png
Binary files differ
diff --git a/kdewidgets/pics/kdatetable.png b/kdewidgets/pics/kdatetable.png
new file mode 100644
index 000000000..f8cea6970
--- /dev/null
+++ b/kdewidgets/pics/kdatetable.png
Binary files differ
diff --git a/kdewidgets/pics/kdatetimewidget.png b/kdewidgets/pics/kdatetimewidget.png
new file mode 100644
index 000000000..bdef7bc4f
--- /dev/null
+++ b/kdewidgets/pics/kdatetimewidget.png
Binary files differ
diff --git a/kdewidgets/pics/kdatewidget.png b/kdewidgets/pics/kdatewidget.png
new file mode 100644
index 000000000..e2fa34682
--- /dev/null
+++ b/kdewidgets/pics/kdatewidget.png
Binary files differ
diff --git a/kdewidgets/pics/kdialog.png b/kdewidgets/pics/kdialog.png
new file mode 100644
index 000000000..7d62678c8
--- /dev/null
+++ b/kdewidgets/pics/kdialog.png
Binary files differ
diff --git a/kdewidgets/pics/kdoublenuminput.png b/kdewidgets/pics/kdoublenuminput.png
new file mode 100644
index 000000000..09b0418a4
--- /dev/null
+++ b/kdewidgets/pics/kdoublenuminput.png
Binary files differ
diff --git a/kdewidgets/pics/kdoublespinbox.png b/kdewidgets/pics/kdoublespinbox.png
new file mode 100644
index 000000000..09b0418a4
--- /dev/null
+++ b/kdewidgets/pics/kdoublespinbox.png
Binary files differ
diff --git a/kdewidgets/pics/kdualcolorbutton.png b/kdewidgets/pics/kdualcolorbutton.png
new file mode 100644
index 000000000..1d67cc4c6
--- /dev/null
+++ b/kdewidgets/pics/kdualcolorbutton.png
Binary files differ
diff --git a/kdewidgets/pics/keditlistbox.png b/kdewidgets/pics/keditlistbox.png
new file mode 100644
index 000000000..67fd7eac0
--- /dev/null
+++ b/kdewidgets/pics/keditlistbox.png
Binary files differ
diff --git a/kdewidgets/pics/kfontcombo.png b/kdewidgets/pics/kfontcombo.png
new file mode 100644
index 000000000..87835d6ce
--- /dev/null
+++ b/kdewidgets/pics/kfontcombo.png
Binary files differ
diff --git a/kdewidgets/pics/kfontrequester.png b/kdewidgets/pics/kfontrequester.png
new file mode 100644
index 000000000..a01f4d692
--- /dev/null
+++ b/kdewidgets/pics/kfontrequester.png
Binary files differ
diff --git a/kdewidgets/pics/kgradientselector.png b/kdewidgets/pics/kgradientselector.png
new file mode 100644
index 000000000..f022d63cc
--- /dev/null
+++ b/kdewidgets/pics/kgradientselector.png
Binary files differ
diff --git a/kdewidgets/pics/khistorycombo.png b/kdewidgets/pics/khistorycombo.png
new file mode 100644
index 000000000..9d2dd22e4
--- /dev/null
+++ b/kdewidgets/pics/khistorycombo.png
Binary files differ
diff --git a/kdewidgets/pics/khsselector.png b/kdewidgets/pics/khsselector.png
new file mode 100644
index 000000000..aabb41a35
--- /dev/null
+++ b/kdewidgets/pics/khsselector.png
Binary files differ
diff --git a/kdewidgets/pics/kiconbutton.png b/kdewidgets/pics/kiconbutton.png
new file mode 100644
index 000000000..0a6028b77
--- /dev/null
+++ b/kdewidgets/pics/kiconbutton.png
Binary files differ
diff --git a/kdewidgets/pics/kiconview.png b/kdewidgets/pics/kiconview.png
new file mode 100644
index 000000000..b4a7db351
--- /dev/null
+++ b/kdewidgets/pics/kiconview.png
Binary files differ
diff --git a/kdewidgets/pics/kintnuminput.png b/kdewidgets/pics/kintnuminput.png
new file mode 100644
index 000000000..bdfeef776
--- /dev/null
+++ b/kdewidgets/pics/kintnuminput.png
Binary files differ
diff --git a/kdewidgets/pics/kintspinbox.png b/kdewidgets/pics/kintspinbox.png
new file mode 100644
index 000000000..a095e2cc4
--- /dev/null
+++ b/kdewidgets/pics/kintspinbox.png
Binary files differ
diff --git a/kdewidgets/pics/kkeybutton.png b/kdewidgets/pics/kkeybutton.png
new file mode 100644
index 000000000..c5a9a1e09
--- /dev/null
+++ b/kdewidgets/pics/kkeybutton.png
Binary files differ
diff --git a/kdewidgets/pics/kled.png b/kdewidgets/pics/kled.png
new file mode 100644
index 000000000..cf998e189
--- /dev/null
+++ b/kdewidgets/pics/kled.png
Binary files differ
diff --git a/kdewidgets/pics/klineedit.png b/kdewidgets/pics/klineedit.png
new file mode 100644
index 000000000..81d313913
--- /dev/null
+++ b/kdewidgets/pics/klineedit.png
Binary files differ
diff --git a/kdewidgets/pics/klistbox.png b/kdewidgets/pics/klistbox.png
new file mode 100644
index 000000000..f7405b39f
--- /dev/null
+++ b/kdewidgets/pics/klistbox.png
Binary files differ
diff --git a/kdewidgets/pics/klistview.png b/kdewidgets/pics/klistview.png
new file mode 100644
index 000000000..932d910c8
--- /dev/null
+++ b/kdewidgets/pics/klistview.png
Binary files differ
diff --git a/kdewidgets/pics/kpalettetable.png b/kdewidgets/pics/kpalettetable.png
new file mode 100644
index 000000000..8964305fd
--- /dev/null
+++ b/kdewidgets/pics/kpalettetable.png
Binary files differ
diff --git a/kdewidgets/pics/kpasswordedit.png b/kdewidgets/pics/kpasswordedit.png
new file mode 100644
index 000000000..e783b2092
--- /dev/null
+++ b/kdewidgets/pics/kpasswordedit.png
Binary files differ
diff --git a/kdewidgets/pics/kprogress.png b/kdewidgets/pics/kprogress.png
new file mode 100644
index 000000000..57a33db0f
--- /dev/null
+++ b/kdewidgets/pics/kprogress.png
Binary files differ
diff --git a/kdewidgets/pics/kpushbutton.png b/kdewidgets/pics/kpushbutton.png
new file mode 100644
index 000000000..f1b30dfa3
--- /dev/null
+++ b/kdewidgets/pics/kpushbutton.png
Binary files differ
diff --git a/kdewidgets/pics/krestrictedline.png b/kdewidgets/pics/krestrictedline.png
new file mode 100644
index 000000000..0f7eb9ad3
--- /dev/null
+++ b/kdewidgets/pics/krestrictedline.png
Binary files differ
diff --git a/kdewidgets/pics/kruler.png b/kdewidgets/pics/kruler.png
new file mode 100644
index 000000000..6e696751b
--- /dev/null
+++ b/kdewidgets/pics/kruler.png
Binary files differ
diff --git a/kdewidgets/pics/ksqueezedtextlabel.png b/kdewidgets/pics/ksqueezedtextlabel.png
new file mode 100644
index 000000000..d30f94645
--- /dev/null
+++ b/kdewidgets/pics/ksqueezedtextlabel.png
Binary files differ
diff --git a/kdewidgets/pics/ktextbrowser.png b/kdewidgets/pics/ktextbrowser.png
new file mode 100644
index 000000000..b9b0a64d1
--- /dev/null
+++ b/kdewidgets/pics/ktextbrowser.png
Binary files differ
diff --git a/kdewidgets/pics/ktextedit.png b/kdewidgets/pics/ktextedit.png
new file mode 100644
index 000000000..7325b3dd1
--- /dev/null
+++ b/kdewidgets/pics/ktextedit.png
Binary files differ
diff --git a/kdewidgets/pics/ktimewidget.png b/kdewidgets/pics/ktimewidget.png
new file mode 100644
index 000000000..1b0d79afe
--- /dev/null
+++ b/kdewidgets/pics/ktimewidget.png
Binary files differ
diff --git a/kdewidgets/pics/kurlcomborequester.png b/kdewidgets/pics/kurlcomborequester.png
new file mode 100644
index 000000000..f23c6bb6c
--- /dev/null
+++ b/kdewidgets/pics/kurlcomborequester.png
Binary files differ
diff --git a/kdewidgets/pics/kurllabel.png b/kdewidgets/pics/kurllabel.png
new file mode 100644
index 000000000..055cdfce5
--- /dev/null
+++ b/kdewidgets/pics/kurllabel.png
Binary files differ
diff --git a/kdewidgets/pics/kurlrequester.png b/kdewidgets/pics/kurlrequester.png
new file mode 100644
index 000000000..6885167de
--- /dev/null
+++ b/kdewidgets/pics/kurlrequester.png
Binary files differ
diff --git a/kdewidgets/tests/Makefile.am b/kdewidgets/tests/Makefile.am
new file mode 100644
index 000000000..3a4a9566a
--- /dev/null
+++ b/kdewidgets/tests/Makefile.am
@@ -0,0 +1,31 @@
+
+# This file is part of the KDE libraries
+# Copyright (C) 1997 Matthias Kalle Dalheimer ([email protected])
+# (C) 1997 Stephan Kulow ([email protected])
+
+# 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 General Public License
+# along with this library; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+
+check-local: testwithpixmaps.cpp testkde.cpp
+# Broken and not informative enough about the changes
+# md5sum -c $(srcdir)/sums
+
+testwithpixmaps.cpp: $(srcdir)/test.widgets
+ ../makekdewidgets -o testwithpixmaps.cpp -p $(top_srcdir)/kdewidgets/pics $(srcdir)/test.widgets
+testkde.cpp: $(srcdir)/test.widgets
+ ../makekdewidgets -o testkde.cpp $(srcdir)/test.widgets
+
+CLEANFILES = testwithpixmaps.cpp testkde.cpp
+
diff --git a/kdewidgets/tests/README b/kdewidgets/tests/README
new file mode 100644
index 000000000..9dd2132fa
--- /dev/null
+++ b/kdewidgets/tests/README
@@ -0,0 +1,6 @@
+These are the tests for the current makekdewidgets.
+
+Currently there are two modes generated, and the checksums checked.
+These files are correct and build plugins that are functionally
+just as TrollTech wants them for designer. If at any time the
+code is changed then these md5 sums should be updated.
diff --git a/kdewidgets/tests/sums b/kdewidgets/tests/sums
new file mode 100644
index 000000000..8b1f80899
--- /dev/null
+++ b/kdewidgets/tests/sums
@@ -0,0 +1,2 @@
+ff629a98965347ed3303a2c70f35af51 testwithpixmaps.cpp
+f736575862f21dc175e1778bc159afbf testkde.cpp
diff --git a/kdewidgets/tests/test.widgets b/kdewidgets/tests/test.widgets
new file mode 100644
index 000000000..b67abedee
--- /dev/null
+++ b/kdewidgets/tests/test.widgets
@@ -0,0 +1,267 @@
+[Global]
+PluginName=KDEWidgets
+Includes=kinstance.h,classpreviews.h
+Init=new KInstance("kdewidgets");
+
+[KActiveLabel]
+ToolTip=Active Label (KDE)
+WhatsThis=A label with support for selection and clickable links
+Group=Display (KDE)
+
+[KCharSelect]
+ToolTip=Character Selection Widget (KDE)
+WhatsThis=A widget that allows selection a character out ot a table
+Group=Graphics (KDE)
+
+[KColorButton]
+ToolTip=Color Chooser Button (KDE)
+WhatsThis=A button that allows selecting a color
+Group=Graphics (KDE)
+
+[KColorCombo]
+ToolTip=Color Combo Box (KDE)
+Group=Graphics (KDE)
+
+[KComboBox]
+ToolTip=Combo Box (KDE)
+Group=Input (KDE)
+
+[KCModule]
+ToolTip=KControl Center Module (KDE)
+IsContainer=true
+Group=Container (KDE)
+
+[KDateWidget]
+ToolTip=Date preview (KDE)
+Group=Input (KDE)
+
+[KDatePicker]
+ToolTip=A date selection widget (KDE)
+WhatsThis=Provides a widget for calendar date input
+ConstructorArgs=(parent, QDate::currentDate(), name)
+Group=Input (KDE)
+
+[KDialog]
+IsContainer=true
+ImplClass=KDialogPreview
+ToolTip=Class for simple Dialogs (KDE)
+Group=Container (KDE)
+
+[KDualColorButton]
+ToolTip=A widget for selecting two related colors (KDE)
+Group=Graphics (KDE)
+
+[KEditListBox]
+ToolTip=Fullfeatured edit box with buttons (KDE)
+Group=Views (KDE)
+
+[KFontCombo]
+ToolTip=Font Combo Box (KDE)
+WhatsThis=A QCombo Box showing the installed system fonts (with preview)
+Group=Input (KDE)
+
+[KFontChooser]
+IncludeFile=kfontdialog.h
+IconSet=kfontcombo.png
+ToolTip=Font Chooser (KDE)
+WhatsThis=A font type, size and style selection widget complete with preview
+Group=Input (KDE)
+
+[KFontRequester]
+IncludeFile=kfontrequester.h
+ToolTip=Font Requester (KDE)
+WhatsThis=A compact font selection and preview widget
+Group=Input (KDE)
+
+[KGradientSelector]
+IncludeFile=kselect.h
+WhatsThis=A widget that allows the user to select two colors to form a gradient
+Group=Graphics (KDE)
+
+[KHistoryCombo]
+IncludeFile=kcombobox.h
+ToolTip=A combobox for offering a history and completion (KDE)
+WhatsThis=A combobox which implements a history like a unix shell
+Group=Input (KDE)
+
+[KHSSelector]
+IncludeFile=kcolordialog.h
+ToolTip=Widget for Hue/Saturation selection (KDE)
+Group=Graphics (KDE)
+
+[KLed]
+ToolTip=LED Widget (KDE)
+WhatsThis=A widget showing a light emitter diode
+Group=Display (KDE)
+
+[KListBox]
+ToolTip=Extended List Box (KDE)
+WhatsThis=An improved version of the QListBox that follows KDE settings
+Group=Views (KDE)
+
+[KListView]
+ToolTip=Extended List View (KDE)
+WhatsThis=An improved version of the QListView that allows certain KDE extensions
+Group=Views (KDE)
+
+[KLineEdit]
+ToolTip=Line Edit (KDE)
+Group=Input (KDE)
+
+[KPasswordEdit]
+IncludeFile=kpassdlg.h
+ToolTip=Safe Password LineEdit (KDE)
+WhatsThis=A KLineEdit that is safe for prompting the user for passwords
+Group=Input (KDE)
+
+[KProgress]
+ToolTip=Progress Bar (KDE)
+WhatsThis=An improved progress bar for KDE that uses QFrame and QRangeControl
+Group=Display (KDE)
+
+[KPushButton]
+ToolTip=Improved QPushButton (KDE)
+WhatsThis=An improved QPushButton to follow KDE settings
+Group=Buttons (KDE)
+
+[KKeyButton]
+ToolTip=Keyboard Key Button. (KDE)
+WhatsThis=A push button that looks like a keyboard key.
+IncludeFile=kkeybutton.h
+Group=Buttons (KDE)
+
+[KRestrictedLine]
+ToolTip=Line Edit for restricted input (KDE)
+Group=Input (KDE)
+
+[KIconButton]
+IncludeFile=kicondialog.h
+ToolTip=Button for selecting an icon (KDE)
+Group=Buttons (KDE)
+
+[KIconView]
+IncludeFile=kiconview.h
+ToolTip=Extended Icon View (KDE)
+WhatsThis=An improved version of the QIconView that allows certain KDE extensions
+Group=Views (KDE)
+
+[KIntSpinBox]
+IncludeFile=knuminput.h
+ToolTip=Enhanced Spinbox for Integer Values (KDE)
+Group=Input (KDE)
+
+[KRuler]
+ToolTip=Measuring Ruler Widget (KDE)
+WhatsThis=A measuring ruler widget as seen in KWord for page widths and heights
+Group=Display (KDE)
+
+[KSqueezedTextLabel]
+ToolTip=A QLabel that squeezes its text (KDE)
+WhatsThis=If the text is too long to fit into the label it is divided into remaining left and right parts which are separated by three dots
+ConstructorArgs=("KSqueezedTextLabel", parent, name)
+Group=Display (KDE)
+
+[KTextBrowser]
+ToolTip=Improved QTextBrowser (KDE)
+WhatsThis=An improved version of the QTextBrowser with mail or system browser invocation support
+Group=Display (KDE)
+
+[KTextEdit]
+ToolTip=Improved QTextEdit (KDE)
+WhatsThis=An improved version of the QTextEdit with mail or system browser invocation support
+Group=Input (KDE)
+
+[KURLLabel]
+ToolTip=URL Label (KDE)
+ConstructorArgs=("KURLLabel", QString::null, parent, name)
+Group=Display (KDE)
+
+[KURLComboRequester]
+ToolTip=URL Requester (KDE)
+WhatsThis=A widget holding a combobox and a pushbutton. A "file open" dialog opened when clicking on the pushbutton
+IncludeFile=kurlrequester.h
+Group=Input (KDE)
+
+[KURLRequester]
+ToolTip=URL Requester (KDE)
+WhatsThis=A widget holding a lineedit and a pushbutton. A "file open" dialog opened when clicking on the pushbutton
+Group=Input (KDE)
+
+[KIntNumInput]
+ToolTip=Integer Input Widget (KDE)
+WhatsThis=An input widget for integer numbers, consisting of a spinbox and a slider.
+IncludeFile=knuminput.h
+Group=Input (KDE)
+
+[KDoubleNumInput]
+ToolTip=Floating Point Number Input Widget (KDE)
+WhatsThis=An input widget for floating point numbers, consisting of a spinbox and a slider.
+IncludeFile=knuminput.h
+Group=Input (KDE)
+
+[KDoubleSpinBox]
+ToolTip=Enhanced Spinbox for Floating Point Values (KDE)
+WhatsThis=A spinbox widget for floating point numbers.
+IncludeFile=knuminput.h
+Group=Input (KDE)
+
+[KTimeWidget]
+ToolTip=This widget can be used to display or allow user selection of time. (KDE)
+IncludeFile=ktimewidget.h
+Group=Input (KDE)
+
+[KDateTimeWidget]
+ToolTip=This widget can be used to display or allow user selection of date and time. (KDE)
+IncludeFile=kdatetimewidget.h
+Group=Input (KDE)
+
+[KDateTable]
+IncludeFile=kdatetbl.h
+Group=Input (KDE)
+ConstructorArgs=(parent, QDate::currentDate(), name)
+
+[KLanguageButton]
+IncludeFile=klanguagebutton.h
+ToolTip=A widget for selecting a language
+WhatsThis=A combobox suitable for selecting a language
+Group=Input (KDE)
+
+[KImageFilePreview]
+IncludeFile=kimagefilepreview.h
+ToolTip=A widget that provides a image preview of a URL
+Group=Display (KDE)
+ConstructorArgs=(parent)
+
+[KActionSelector]
+IncludeFile=kactionselector.h
+ToolTip=A widget for selecting and arranging actions/objects
+Group=Views (KDE)
+
+[KWritePermsIcon]
+IncludeFile=kauthicon.h
+ToolTip=Auth icon for write permission display.
+ConstructorArgs=("", parent, name)
+Group=Display (KDE)
+
+[KRootPermsIcon]
+IncludeFile=kauthicon.h
+ToolTip=Icon to show whether or not a user has root permissions.
+Group=Display (KDE)
+
+[KColorPatch]
+IncludeFile=kcolordialog.h
+ToolTip=The KColorPatch widget is a (usually small) widget showing a selected color.
+Group=Display (KDE)
+ConstructorArgs=(parent)
+
+[KPaletteTable]
+IncludeFile=kcolordialog.h
+ToolTip=A color palette in table form.
+Group=Display (KDE)
+ConstructorArgs=(parent, 210, 16)
+
+[KABC::AddressLineEdit]
+IncludeFile=kabc/addresslineedit.h
+ToolTip=A lineedit with LDAP and kabc completion.
+Group=Input (KDE)
+ConstructorArgs=(parent, true, name)