Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
git-svn-id: http://svn.osgeo.org/qgis/trunk@4608 c8812cc2-4d05-0410-92ff-de0c093fc19c
- Loading branch information
timlinux
committed
Jan 8, 2006
1 parent
e3fe7f1
commit b228a67
Showing
3 changed files
with
261 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
# Copyright (C) 2005 Tim Sutton <tim at linfiniti.com> | ||
# | ||
# This file is free software; as a special exception the author gives | ||
# unlimited permission to copy and/or distribute it, with or without | ||
# modifications, as long as this notice is preserved. | ||
# | ||
# This program is distributed in the hope that it will be useful, but | ||
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the | ||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
# | ||
# $Id: Makefile.am 4490 2006-01-07 01:09:27Z timlinux $ | ||
|
||
|
||
plugindir = ${pkglibdir}/designer | ||
|
||
%.moc.cpp: %.h | ||
$(MOC) -o $@ $< | ||
|
||
# name of the designer plugin | ||
plugin_LTLIBRARIES = qgisdesignerwidgets.la | ||
|
||
qgisdesignerwidgets_la_SOURCES = qgsdesignerwidgets.cpp \ | ||
qgsdesignerwidgets.h \ | ||
$(projectionselector_la_MOC) | ||
|
||
qgisdesignerwidgets_la_MOC = qgsprojectionselectorplugin.moc.cpp | ||
|
||
projectionselector_la_LIBADD = ../src/libqgis.la $(QT_LDADD) | ||
#qgisdesignerwidgets_la_LIBADD = $(QT_LDADD) ../widgets/projectionselector/libqgsprojectionselector.la | ||
qgisdesignerwidgets_la_LDFLAGS = -avoid-version -module | ||
qgisdesignerwidgets_la_CXXFLAGS = $(CXXFLAGS) $(EXTRA_CXXFLAGS) $(QT_CXXFLAGS) $(DEBUG_QGIS) -I../ -I../legend |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,207 @@ | ||
#include "qgsdesignerwidgets.h" | ||
#include <qstringlist.h> | ||
#include <qimage.h> | ||
#include <q3dragobject.h> | ||
#include "qgslegend.h" | ||
#include "qgsmapcanvas.h" | ||
#include "qgslinestylewidget.h" | ||
#include "qgsfillstylewidget.h" | ||
#include "qgspointstylewidget.h" | ||
#include "qgsvectorsymbologywidget.h" | ||
//Added by qt3to4: | ||
#include <QPixmap> | ||
#include <Q3ValueList> | ||
static const char *legend_pixmap[] = { | ||
"22 22 8 1", | ||
" c Gray100", | ||
". c Gray97", | ||
"X c #4f504f", | ||
"o c #00007f", | ||
"O c Gray0", | ||
"+ c none", | ||
"@ c Gray0", | ||
"# c Gray0", | ||
"++++++++++++++++++++++", | ||
"++++++++++++++++++++++", | ||
"++++++++++++++++++++++", | ||
"++++++++++++++++++++++", | ||
"+OOOOOOOOOOOOOOOOOOOO+", | ||
"OOXXXXXXXXXXXXXXXXXXOO", | ||
"OXX. O", | ||
"OX. ooooooooo O", | ||
"OX. o o .O", | ||
"OX o o O", | ||
"OX o o O", | ||
"O o o O", | ||
"OX o o o O", | ||
"OX o o o O", | ||
"OX o o O", | ||
"OX ooooooooo o O", | ||
"OO..................OO", | ||
"+OOOOOOOOOOOOOOOOOOOO+", | ||
"++++++++++++++++++++++", | ||
"++++++++++++++++++++++", | ||
"++++++++++++++++++++++", | ||
"++++++++++++++++++++++" | ||
}; | ||
|
||
//shamelessly snarfed from qwt stuff - a very nice simple neat way to | ||
//accommodate building multiple widgets...Tim | ||
namespace | ||
{ | ||
struct Entry | ||
{ | ||
Entry() {} | ||
Entry( QString theClassname, QString theHeader, QString thePixmap, | ||
QString theTooltip, QString theWhatsThisString): | ||
classname(theClassname), | ||
header(theHeader), | ||
pixmap(thePixmap), | ||
tooltip(theTooltip), | ||
whatshis(theWhatsThisString) | ||
{} | ||
|
||
QString classname; | ||
QString header; | ||
QString pixmap; | ||
QString tooltip; | ||
QString whatshis; | ||
}; | ||
|
||
Q3ValueList<Entry> mEntriesVector; | ||
|
||
const Entry *entry(const QString& theString) | ||
{ | ||
for ( uint i = 0; i < mEntriesVector.count(); i++ ) | ||
{ | ||
if (theString == mEntriesVector[i].classname) | ||
return &mEntriesVector[i]; | ||
} | ||
return NULL; | ||
} | ||
} | ||
|
||
QgsDesignerWidgets::QgsDesignerWidgets(QObject *parent) | ||
: QObject(parent) | ||
|
||
{ | ||
mInitialized = false; | ||
|
||
mEntriesVector.append(Entry("QgsLegend", "qgslegend.h", | ||
"", "A legend widget that shows layers associated with a mapcanvas.", "A legend widget that shows layers associated with a mapcanvas")); | ||
mEntriesVector.append(Entry("QgsMapCanvas", "qgsmapcanvas.h", | ||
"", "A map canvas widget", "A map canvas is an interactive map that can be panned and zoomed.")); | ||
mEntriesVector.append(Entry("QgsLineStyleWidget", "qgslinestylewidget.h", | ||
"", "A widget that lets you select a line style.", "A widget that lets you select a line style")); | ||
mEntriesVector.append(Entry("QgsFillStyleWidget", "qgsfillstylewidget.h", | ||
"", "A widget that lets you select a fill style.", "A widget that lets you select a fill style")); | ||
mEntriesVector.append(Entry("QgsPointStyleWidget", "qgspointstylewidget.h", | ||
"", "A widget that lets you select a point style.", "A widget that lets you select a point style")); | ||
mEntriesVector.append(Entry("QgsVectorSymbologyWidget", "QgsVectorSymbologyWidget", | ||
"", "A widget that lets you select vector symbology.", "A widget that lets you select vector symbology")); | ||
} | ||
|
||
|
||
void QgsDesignerWidgets::initialize(QDesignerFormEditorInterface * core ) | ||
{ | ||
if (mInitialized) | ||
return; | ||
|
||
mInitialized = true; | ||
} | ||
|
||
bool QgsDesignerWidgets::isInitialized() const | ||
{ | ||
return mInitialized; | ||
} | ||
|
||
QWidget* QgsDesignerWidgets::create(const QString &key, | ||
QWidget* parent, const char* name) | ||
{ | ||
if ( key == "QgsLegend" ) | ||
return new QgsLegend( parent, name ); | ||
else if ( key == "QgsMapCanvas" ) | ||
return new QgsMapCanvas ( parent, name ); | ||
else if ( key == "QgsLineStyleWidget" ) | ||
return new QgsLineStyleWidget ( parent, name ); | ||
else if ( key == "QgsFillStyleWidget" ) | ||
return new QgsFillStyleWidget ( parent, name ); | ||
else if ( key == "QgsPointStyleWidget" ) | ||
return new QgsPointStyleWidget ( parent, name ); | ||
else if ( key == "QgsVectorSymbologyWidget" ) | ||
return new QgsVectorSymbologyWidget( parent, name ); | ||
return 0; | ||
} | ||
|
||
|
||
QStringList QgsDesignerWidgets::keys() const | ||
{ | ||
QStringList list; | ||
|
||
for (unsigned i = 0; i < mEntriesVector.count(); i++) | ||
list += mEntriesVector[i].classname; | ||
|
||
return list; | ||
} | ||
|
||
QString QgsDesignerWidgets::group( const QString& feature ) const | ||
{ | ||
if (entry(feature) != NULL ) | ||
return QString("QGIS"); | ||
return QString::null; | ||
} | ||
|
||
QIcon QgsDesignerWidgets::iconSet( const QString& thePixmap) const | ||
{ | ||
QString pixmapKey("qwtwidget.png"); | ||
if (entry(thePixmap) != NULL ) | ||
pixmapKey = entry(thePixmap)->pixmap; | ||
|
||
const QMimeSource *ms = | ||
Q3MimeSourceFactory::defaultFactory()->data(pixmapKey); | ||
|
||
QPixmap pixmap; | ||
Q3ImageDrag::decode(ms, pixmap); | ||
|
||
return QIcon(pixmap); | ||
} | ||
|
||
QString QgsDesignerWidgets::includeFile( const QString& feature ) const | ||
{ | ||
if (entry(feature) != NULL) | ||
return entry(feature)->header; | ||
return QString::null; | ||
} | ||
|
||
QString QgsDesignerWidgets::toolTip( const QString& feature ) const | ||
{ | ||
if (entry(feature) != NULL ) | ||
return entry(feature)->tooltip; | ||
return QString::null; | ||
} | ||
|
||
QString QgsDesignerWidgets::whatsThis( const QString& feature ) const | ||
{ | ||
if (entry(feature) != NULL) | ||
return entry(feature)->whatshis; | ||
return QString::null; | ||
} | ||
|
||
bool QgsDesignerWidgets::isContainer( const QString& ) const | ||
{ | ||
return FALSE; | ||
} | ||
|
||
/* | ||
The Q_EXPORT_PLUGIN macro. | ||
Q_EXPORT_PLUGIN( CustomWidgetPlugin ) | ||
This macro identifies the module as a plugin -- all the other code simply | ||
implements the relevant interface, i.e. wraps the classes you wish to make available. | ||
This macro must appear once in your plugin. It should be copied with the class name | ||
changed to the name of your plugin's class. (See the Qt Plugin documentation for more | ||
information on the plugin entry point.) | ||
Each widget you wrap in a widget plugin implementation becomes a class that the | ||
plugin implementation offers. There is no limit to the number of classes that you | ||
may include in an plugin implementation. | ||
*/ | ||
Q_EXPORT_PLUGIN( QgsDesignerWidgets ) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#include <QDesignerCustomWidgetInterface> | ||
|
||
class QgsDesignerWidgets : public QObject, public QDesignerCustomWidgetInterface | ||
{ | ||
Q_OBJECT; | ||
Q_INTERFACES(QDesignerCustomWidgetInterface); | ||
|
||
|
||
public: | ||
QgsDesignerWidgets(QObject *parent = 0); | ||
void initialize(QDesignerFormEditorInterface *core); | ||
QStringList keys() const; | ||
QWidget* create( const QString &classname, QWidget* parent = 0, const char* name = 0 ); | ||
QString group( const QString& ) const; | ||
QIcon iconSet( const QString& ) const; | ||
QString includeFile( const QString& ) const; | ||
QString toolTip( const QString& ) const; | ||
QString whatsThis( const QString& ) const; | ||
bool isContainer( const QString& ) const; | ||
bool isInitialized() const; | ||
private: | ||
bool mInitialized; | ||
}; |