[QGIS Commit] r14897 - in trunk/qgis: images images/themes/default python python/plugins/GdalTools python/plugins/fTools python/plugins/fTools/icons python/plugins/mapserver_export python/plugins/osm python/plugins/plugin_installer src/app src/gui src/plugins src/plugins/coordinate_capture src/plugins/copyright_label src/plugins/delimited_text src/plugins/dxf2shp_converter src/plugins/geoprocessing src/plugins/georeferencer src/plugins/gps_importer src/plugins/grass src/plugins/interpolation src/plugins/north_arrow src/plugins/offline_editing src/plugins/ogr_converter src/plugins/oracle_raster src/plugins/plugin_template src/plugins/quick_print src/plugins/raster_terrain_analysis src/plugins/scale_bar src/plugins/spatialquery src/plugins/spit src/plugins/wfs

svn_qgis at osgeo.org svn_qgis at osgeo.org
Sun Dec 12 14:19:54 EST 2010


Author: wonder
Date: 2010-12-12 11:19:54 -0800 (Sun, 12 Dec 2010)
New Revision: 14897

Added:
   trunk/qgis/images/themes/default/plugin.png
   trunk/qgis/python/plugins/fTools/icons/logo_small.png
Modified:
   trunk/qgis/images/images.qrc
   trunk/qgis/python/plugins/GdalTools/__init__.py
   trunk/qgis/python/plugins/fTools/__init__.py
   trunk/qgis/python/plugins/fTools/icons/CMakeLists.txt
   trunk/qgis/python/plugins/mapserver_export/__init__.py
   trunk/qgis/python/plugins/osm/__init__.py
   trunk/qgis/python/plugins/plugin_installer/__init__.py
   trunk/qgis/python/utils.py
   trunk/qgis/src/app/qgspluginmanager.cpp
   trunk/qgis/src/gui/qgsdetaileditemdelegate.cpp
   trunk/qgis/src/plugins/coordinate_capture/coordinatecapture.cpp
   trunk/qgis/src/plugins/copyright_label/plugin.cpp
   trunk/qgis/src/plugins/delimited_text/qgsdelimitedtextplugin.cpp
   trunk/qgis/src/plugins/dxf2shp_converter/dxf2shpconverter.cpp
   trunk/qgis/src/plugins/geoprocessing/qgspggeoprocessing.cpp
   trunk/qgis/src/plugins/georeferencer/qgsgeorefplugin.cpp
   trunk/qgis/src/plugins/gps_importer/qgsgpsplugin.cpp
   trunk/qgis/src/plugins/grass/qgsgrassplugin.cpp
   trunk/qgis/src/plugins/interpolation/qgsinterpolationplugin.cpp
   trunk/qgis/src/plugins/north_arrow/plugin.cpp
   trunk/qgis/src/plugins/offline_editing/offline_editing_plugin.cpp
   trunk/qgis/src/plugins/ogr_converter/plugin.cpp
   trunk/qgis/src/plugins/oracle_raster/qgsoracle_plugin.cpp
   trunk/qgis/src/plugins/plugin_template/plugin.cpp
   trunk/qgis/src/plugins/qgisplugin.h
   trunk/qgis/src/plugins/quick_print/quickprintplugin.cpp
   trunk/qgis/src/plugins/raster_terrain_analysis/qgsrasterterrainanalysisplugin.cpp
   trunk/qgis/src/plugins/scale_bar/plugin.cpp
   trunk/qgis/src/plugins/spatialquery/qgsspatialqueryplugin.cpp
   trunk/qgis/src/plugins/spit/qgsspitplugin.cpp
   trunk/qgis/src/plugins/wfs/qgswfsplugin.cpp
Log:
[FEATURE] Support for icons of plugins in the plugin manager dialog.

Both C++ and Python plugins now can implement icon() metadata function which returns path to the icon file name.
The icon file is passed to QPixmap() constructor. For C++ it's preferred to use an icon from the resource file
(e.g. ":/plugins/foo/foo_icon.png") because plugin's resource file gets loaded automatically when the plugin is loaded.
Python plugins can use either relative path to the icon ("images/plugin-icon.png") or icon from the resource file
(starting with a colon). The relative path is preferred, since it doesn't require the plugin to load its resource file
and plugin repository will not have a trouble to fetch the icon automatically.

Updated C++ plugins and Python plugins to include icon where applicable.

Default plugin icon is (c) Anna Shlyapnikova, licensed under Creative Commons (Attribution 3.0 Unported).


Modified: trunk/qgis/images/images.qrc
===================================================================
--- trunk/qgis/images/images.qrc	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/images/images.qrc	2010-12-12 19:19:54 UTC (rev 14897)
@@ -247,6 +247,7 @@
     <file>themes/default/mIconUnknownLayerType.png</file>
     <file>themes/default/mIconWaitingForLayerType.png</file>
     <file>themes/default/mMapserverExport.png</file>
+    <file>themes/default/plugin.png</file>
     <file>themes/default/rendererCategorizedSymbol.png</file>
     <file>themes/default/rendererGraduatedSymbol.png</file>
     <file>themes/default/rendererSingleSymbol.png</file>

Added: trunk/qgis/images/themes/default/plugin.png
===================================================================
(Binary files differ)


Property changes on: trunk/qgis/images/themes/default/plugin.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Modified: trunk/qgis/python/plugins/GdalTools/__init__.py
===================================================================
--- trunk/qgis/python/plugins/GdalTools/__init__.py	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/python/plugins/GdalTools/__init__.py	2010-12-12 19:19:54 UTC (rev 14897)
@@ -25,6 +25,8 @@
   return "Version 1.2.18" 
 def qgisMinimumVersion():
   return "1.0"
+def icon():
+  return "icons/raster-info.png"
 def classFactory(iface): 
   # load GdalTools class from file GdalTools
   from GdalTools import GdalTools 

Modified: trunk/qgis/python/plugins/fTools/__init__.py
===================================================================
--- trunk/qgis/python/plugins/fTools/__init__.py	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/python/plugins/fTools/__init__.py	2010-12-12 19:19:54 UTC (rev 14897)
@@ -25,6 +25,9 @@
   
 def qgisMinimumVersion():
 	return "1.0"
+
+def icon():
+	return "icons/logo_small.png"
 	
 def authorName():
 	return "Carson J. Q. Farmer"

Modified: trunk/qgis/python/plugins/fTools/icons/CMakeLists.txt
===================================================================
--- trunk/qgis/python/plugins/fTools/icons/CMakeLists.txt	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/python/plugins/fTools/icons/CMakeLists.txt	2010-12-12 19:19:54 UTC (rev 14897)
@@ -5,6 +5,6 @@
 logo.svg
 menu_icons.svg
 )
-INSTALL(FILES ${VECTOR_GRAPHICS_FILES} DESTINATION ${QGIS_DATA_DIR}/python/plugins/fTools/icons)
+INSTALL(FILES ${VECTOR_GRAPHICS_FILES} logo_small.png DESTINATION ${QGIS_DATA_DIR}/python/plugins/fTools/icons)
 
 SUBDIRS(default gis)

Added: trunk/qgis/python/plugins/fTools/icons/logo_small.png
===================================================================
(Binary files differ)


Property changes on: trunk/qgis/python/plugins/fTools/icons/logo_small.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Modified: trunk/qgis/python/plugins/mapserver_export/__init__.py
===================================================================
--- trunk/qgis/python/plugins/mapserver_export/__init__.py	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/python/plugins/mapserver_export/__init__.py	2010-12-12 19:19:54 UTC (rev 14897)
@@ -27,6 +27,8 @@
   return "Version 0.4.3" 
 def qgisMinimumVersion(): 
   return "1.0"
+def icon():
+  return "mapserver_export.png"
 def authorName():
   return "Gary E. Sherman"
 def classFactory(iface): 

Modified: trunk/qgis/python/plugins/osm/__init__.py
===================================================================
--- trunk/qgis/python/plugins/osm/__init__.py	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/python/plugins/osm/__init__.py	2010-12-12 19:19:54 UTC (rev 14897)
@@ -51,7 +51,11 @@
 
     return "1.0.0"
 
+def icon():
+    import resources_rc
+    return ":/plugins/osm_plugin/images/osm_load.png"
 
+
 def classFactory(iface):
     """Function returns OSM Plugin instance.
 

Modified: trunk/qgis/python/plugins/plugin_installer/__init__.py
===================================================================
--- trunk/qgis/python/plugins/plugin_installer/__init__.py	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/python/plugins/plugin_installer/__init__.py	2010-12-12 19:19:54 UTC (rev 14897)
@@ -23,6 +23,10 @@
 def qgisMinimumVersion():
   return "1.0"
 
+def icon():
+  import resources_rc
+  return ":/plugins/installer/plugin_installer.png"
+
 def authorName():
   return "Matthew Perry, Borys Jurgiel"
 

Modified: trunk/qgis/python/utils.py
===================================================================
--- trunk/qgis/python/utils.py	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/python/utils.py	2010-12-12 19:19:54 UTC (rev 14897)
@@ -266,6 +266,10 @@
     iface.openURL(url,False)
 
 
+def pluginDirectory(packageName):
+  """ return directory where the plugin resides. Plugin must be loaded already """
+  return os.path.dirname(sys.modules[packageName].__file__)
+
 #######################
 # IMPORT wrapper
 

Modified: trunk/qgis/src/app/qgspluginmanager.cpp
===================================================================
--- trunk/qgis/src/app/qgspluginmanager.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/app/qgspluginmanager.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -44,7 +44,7 @@
 #include "qgslogger.h"
 
 // Do we need this?
-// #define TESTLIB 
+// #define TESTLIB
 #ifdef TESTLIB
 // This doesn't work on WIN32 and causes problems with plugins
 // on OS X (the code doesn't cause a problem but including dlfcn.h
@@ -174,8 +174,9 @@
     QString pluginName  = mPythonUtils->getPluginMetadata( packageName, "name" );
     QString description = mPythonUtils->getPluginMetadata( packageName, "description" );
     QString version     = mPythonUtils->getPluginMetadata( packageName, "version" );
+    QString iconName    = mPythonUtils->getPluginMetadata( packageName, "icon" );
 
-    if ( pluginName == "???" || description == "???" || version == "???" ) continue;
+    if ( pluginName == "__error__" || description == "__error__" || version == "__error__" ) continue;
 
     bool isCompatible = QgsPluginRegistry::instance()->isPythonPluginCompatible( packageName );
     QString compatibleString; // empty by default
@@ -200,6 +201,19 @@
     myData.setCheckable( true );
     myData.setRenderAsWidget( false );
     myData.setChecked( false ); //start off assuming false
+    if ( iconName == "__error__" )
+      myData.setIcon( QPixmap( QgsApplication::defaultThemePath() + "/plugin.png" ) );
+    else
+    {
+      bool relative = QFileInfo( iconName ).isRelative();
+      if ( relative )
+      {
+        QString pluginDir;
+        mPythonUtils->evalString( QString( "qgis.utils.pluginDirectory('%1')" ).arg( packageName ), pluginDir );
+        iconName = pluginDir + "/" + iconName;
+      }
+      myData.setIcon( QPixmap( iconName ) );
+    }
 
     // check to see if the plugin is loaded and set the checkbox accordingly
     QgsPluginRegistry *pRegistry = QgsPluginRegistry::instance();
@@ -296,6 +310,7 @@
     name_t *pName = ( name_t * ) cast_to_fptr( myLib->resolve( "name" ) );
     description_t *pDesc = ( description_t * ) cast_to_fptr( myLib->resolve( "description" ) );
     version_t *pVersion = ( version_t * ) cast_to_fptr( myLib->resolve( "version" ) );
+    icon_t* pIcon = ( icon_t * ) cast_to_fptr( myLib->resolve( "icon" ) );
 
     // show the values (or lack of) for each function
     if ( pName )
@@ -322,6 +337,10 @@
     {
       QgsDebugMsg( "Plugin version not returned when queried" );
     }
+    if ( pIcon )
+    {
+      QgsDebugMsg( "Plugin icon: " + pIcon() );
+    }
 
     if ( !pName || !pDesc || !pVersion )
     {
@@ -333,6 +352,7 @@
     QString pluginName = pName();
     QString pluginDesc = pDesc();
     QString pluginVersion = pVersion();
+    QString pluginIconFileName = ( pIcon ? pIcon() : QString() );
     QString baseName = QFileInfo( lib ).baseName();
 
     QString myLibraryName = pluginDir[i];
@@ -347,6 +367,10 @@
     myData.setRenderAsWidget( false );
     myData.setCheckable( true );
     myData.setChecked( false ); //start unchecked - we will check it later if needed
+    if ( pluginIconFileName.isEmpty() )
+      myData.setIcon( QPixmap( QgsApplication::defaultThemePath() + "/plugin.png" ) );
+    else
+      myData.setIcon( QPixmap( pluginIconFileName ) );
 
     QgsDebugMsg( "Getting an instance of the QgsPluginRegistry" );
 

Modified: trunk/qgis/src/gui/qgsdetaileditemdelegate.cpp
===================================================================
--- trunk/qgis/src/gui/qgsdetaileditemdelegate.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/gui/qgsdetaileditemdelegate.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -147,10 +147,28 @@
   QPixmap myDecoPixmap = theData.icon();
   if ( !myDecoPixmap.isNull() )
   {
-    thepPainter->drawPixmap( myTextStartX,
-                             myTextStartY + ( myDecoPixmap.height() / 2 ),
-                             myDecoPixmap );
-    myTextStartX += myDecoPixmap.width() + horizontalSpacing();
+    int iconWidth = 32, iconHeight = 32;
+
+    if ( myDecoPixmap.width() <= iconWidth && myDecoPixmap.height() <= iconHeight )
+    {
+      // the pixmap has reasonable size
+      int offsetX = 0, offsetY = 0;
+      if ( myDecoPixmap.width() < iconWidth )
+        offsetX = ( iconWidth - myDecoPixmap.width() ) / 2;
+      if ( myDecoPixmap.height() < iconHeight )
+        offsetY = ( iconHeight - myDecoPixmap.height() ) / 2;
+
+      thepPainter->drawPixmap( myTextStartX + offsetX,
+                               myTextStartY + offsetY,
+                               myDecoPixmap );
+    }
+    else
+    {
+      // shrink the pixmap, it's too big
+      thepPainter->drawPixmap( myTextStartX, myTextStartY, iconWidth, iconHeight, myDecoPixmap );
+    }
+
+    myTextStartX += iconWidth + horizontalSpacing();
   }
   //
   // Draw the title

Modified: trunk/qgis/src/plugins/coordinate_capture/coordinatecapture.cpp
===================================================================
--- trunk/qgis/src/plugins/coordinate_capture/coordinatecapture.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/coordinate_capture/coordinatecapture.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -53,6 +53,7 @@
 static const QString sName = QObject::tr( "Coordinate Capture" );
 static const QString sDescription = QObject::tr( "Capture mouse coordinates in different CRS" );
 static const QString sPluginVersion = QObject::tr( "Version 0.1" );
+static const QString sPluginIcon = ":/coordinate_capture/coordinate_capture.png";
 static const QgisPlugin::PLUGINTYPE sPluginType = QgisPlugin::UI;
 
 //////////////////////////////////////////////////////////////////////
@@ -343,6 +344,11 @@
   return sPluginVersion;
 }
 
+QGISEXTERN QString icon()
+{
+  return sPluginIcon;
+}
+
 // Delete ourself
 QGISEXTERN void unload( QgisPlugin * thePluginPointer )
 {

Modified: trunk/qgis/src/plugins/copyright_label/plugin.cpp
===================================================================
--- trunk/qgis/src/plugins/copyright_label/plugin.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/copyright_label/plugin.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -51,6 +51,7 @@
 static const QString name_ = QObject::tr( "CopyrightLabel" );
 static const QString description_ = QObject::tr( "Draws copyright information" );
 static const QString version_ = QObject::tr( "Version 0.1" );
+static const QString icon_ = ":/copyright_label.png";
 static const QgisPlugin::PLUGINTYPE type_ = QgisPlugin::UI;
 
 
@@ -318,6 +319,11 @@
   return version_;
 }
 
+QGISEXTERN QString icon()
+{
+  return icon_;
+}
+
 // Delete ourself
 QGISEXTERN void unload( QgisPlugin * thePluginPointer )
 {

Modified: trunk/qgis/src/plugins/delimited_text/qgsdelimitedtextplugin.cpp
===================================================================
--- trunk/qgis/src/plugins/delimited_text/qgsdelimitedtextplugin.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/delimited_text/qgsdelimitedtextplugin.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -43,6 +43,8 @@
 
 static const QString pluginVersion = QObject::tr( "Version 0.2" );
 static const QString description_ = QObject::tr( "Loads and displays delimited text files containing x,y coordinates" );
+static const QString icon_ = ":/delimited_text.png";
+
 /**
  * Constructor for the plugin. The plugin is passed a pointer to the main app
  * and an interface object that provides access to exposed functions in QGIS.
@@ -206,6 +208,11 @@
   return pluginVersion;
 }
 
+QGISEXTERN QString icon()
+{
+  return icon_;
+}
+
 // Delete ourself
 QGISEXTERN void unload( QgisPlugin * theQgsDelimitedTextPluginPointer )
 {

Modified: trunk/qgis/src/plugins/dxf2shp_converter/dxf2shpconverter.cpp
===================================================================
--- trunk/qgis/src/plugins/dxf2shp_converter/dxf2shpconverter.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/dxf2shp_converter/dxf2shpconverter.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -40,6 +40,7 @@
 static const QString sDescription = QObject::tr( "Converts from dxf to shp file format" );
 static const QString sPluginVersion = QObject::tr( "Version 0.1" );
 static const QgisPlugin::PLUGINTYPE sPluginType = QgisPlugin::UI;
+static const QString sPluginIcon = ":/dxf2shp_converter.png";
 
 //////////////////////////////////////////////////////////////////////
 //
@@ -194,6 +195,11 @@
   return sPluginVersion;
 }
 
+QGISEXTERN QString icon()
+{
+  return sPluginIcon;
+}
+
 // Delete ourself
 QGISEXTERN void unload( QgisPlugin *thePluginPointer )
 {

Modified: trunk/qgis/src/plugins/geoprocessing/qgspggeoprocessing.cpp
===================================================================
--- trunk/qgis/src/plugins/geoprocessing/qgspggeoprocessing.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/geoprocessing/qgspggeoprocessing.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -46,6 +46,7 @@
 static const QString description_ = QObject::tr( "Geoprocessing functions for working with PostgreSQL/PostGIS layers" );
 static const QString version_ = QObject::tr( "Version 0.1" );
 static const QgisPlugin::PLUGINTYPE type_ = QgisPlugin::UI;
+static const QString icon_ = ":/geoprocessing.png";
 
 
 /**
@@ -478,6 +479,11 @@
   return version_;
 }
 
+QGISEXTERN QString icon()
+{
+  return icon_;
+}
+
 // Delete ourself
 QGISEXTERN void unload( QgisPlugin * p )
 {

Modified: trunk/qgis/src/plugins/georeferencer/qgsgeorefplugin.cpp
===================================================================
--- trunk/qgis/src/plugins/georeferencer/qgsgeorefplugin.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/georeferencer/qgsgeorefplugin.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -66,6 +66,7 @@
 static const QString sDescription = QObject::tr( "Georeferencing rasters using GDAL" );
 static const QString sPluginVersion = QObject::tr( "Version 3.1.9" );
 static const QgisPlugin::PLUGINTYPE sPluginType = QgisPlugin::UI;
+static const QString sPluginIcon = ":/icons/mGeorefRun.png";
 
 //////////////////////////////////////////////////////////////////////
 //
@@ -236,6 +237,11 @@
   return sPluginVersion;
 }
 
+QGISEXTERN QString icon()
+{
+  return sPluginIcon;
+}
+
 // Delete ourself
 QGISEXTERN void unload( QgisPlugin * thePluginPointer )
 {

Modified: trunk/qgis/src/plugins/gps_importer/qgsgpsplugin.cpp
===================================================================
--- trunk/qgis/src/plugins/gps_importer/qgsgpsplugin.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/gps_importer/qgsgpsplugin.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -54,6 +54,7 @@
 static const QString description_ = QObject::tr( "Tools for loading and importing GPS data" );
 static const QString version_ = QObject::tr( "Version 0.1" );
 static const QgisPlugin::PLUGINTYPE type_ = QgisPlugin::UI;
+static const QString icon_ = ":/gps_importer.png";
 
 
 /**
@@ -733,6 +734,11 @@
   return version_;
 }
 
+QGISEXTERN QString icon()
+{
+  return icon_;
+}
+
 // Delete ourself
 QGISEXTERN void unload( QgisPlugin * thePluginPointer )
 {

Modified: trunk/qgis/src/plugins/grass/qgsgrassplugin.cpp
===================================================================
--- trunk/qgis/src/plugins/grass/qgsgrassplugin.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/grass/qgsgrassplugin.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -50,6 +50,7 @@
 }
 
 static const QString pluginVersion = QObject::tr( "Version 0.1" );
+static const QString pluginIcon = ":/images/themes/default/grass/grass_tools.png";
 
 /**
  * Constructor for the plugin. The plugin is passed a pointer to the main app
@@ -909,6 +910,11 @@
   return pluginVersion;
 }
 
+QGISEXTERN QString icon()
+{
+  return pluginIcon;
+}
+
 // Delete ourself
 QGISEXTERN void unload( QgisPlugin * thePluginPointer )
 {

Modified: trunk/qgis/src/plugins/interpolation/qgsinterpolationplugin.cpp
===================================================================
--- trunk/qgis/src/plugins/interpolation/qgsinterpolationplugin.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/interpolation/qgsinterpolationplugin.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -25,6 +25,7 @@
 static const QString name_ = QObject::tr( "Interpolation plugin" );
 static const QString description_ = QObject::tr( "A plugin for interpolation based on vertices of a vector layer" );
 static const QString version_ = QObject::tr( "Version 0.001" );
+static const QString icon_ = ":/interpolation.png";
 
 QgsInterpolationPlugin::QgsInterpolationPlugin( QgisInterface* iface ): mIface( iface ), mInterpolationAction( 0 )
 {
@@ -107,6 +108,11 @@
   return version_;
 }
 
+QGISEXTERN QString icon()
+{
+  return icon_;
+}
+
 QGISEXTERN int type()
 {
   return QgisPlugin::UI;

Modified: trunk/qgis/src/plugins/north_arrow/plugin.cpp
===================================================================
--- trunk/qgis/src/plugins/north_arrow/plugin.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/north_arrow/plugin.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -60,6 +60,7 @@
 static const QString description_ = QObject::tr( "Displays a north arrow overlayed onto the map" );
 static const QString version_ = QObject::tr( "Version 0.1" );
 static const QgisPlugin::PLUGINTYPE type_ = QgisPlugin::UI;
+static const QString icon_ = ":/north_arrow.png";
 
 const double QgsNorthArrowPlugin::PI = 3.14159265358979323846;
 //  const double QgsNorthArrowPlugin::DEG2RAD = 0.0174532925199433;
@@ -455,6 +456,11 @@
   return version_;
 }
 
+QGISEXTERN QString icon()
+{
+  return icon_;
+}
+
 // Delete ourself
 QGISEXTERN void unload( QgisPlugin * thePluginPointer )
 {

Modified: trunk/qgis/src/plugins/offline_editing/offline_editing_plugin.cpp
===================================================================
--- trunk/qgis/src/plugins/offline_editing/offline_editing_plugin.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/offline_editing/offline_editing_plugin.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -32,6 +32,7 @@
 static const QString sDescription = QObject::tr( "Allow offline editing and synchronizing with database" );
 static const QString sPluginVersion = QObject::tr( "Version 0.1" );
 static const QgisPlugin::PLUGINTYPE sPluginType = QgisPlugin::UI;
+static const QString sPluginIcon = ":/offline_editing/offline_editing_copy.png";
 
 QgsOfflineEditingPlugin::QgsOfflineEditingPlugin( QgisInterface* theQgisInterface )
     : QgisPlugin( sName, sDescription, sPluginVersion, sPluginType ),
@@ -174,6 +175,11 @@
   return sPluginVersion;
 }
 
+QGISEXTERN QString icon()
+{
+  return sPluginIcon;
+}
+
 // Delete ourself
 QGISEXTERN void unload( QgisPlugin * thePluginPointer )
 {

Modified: trunk/qgis/src/plugins/ogr_converter/plugin.cpp
===================================================================
--- trunk/qgis/src/plugins/ogr_converter/plugin.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/ogr_converter/plugin.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -34,6 +34,7 @@
 static const QString sDescription = QObject::tr( "Translates vector layers between formats supported by OGR library" );
 static const QString sPluginVersion = QObject::tr( "Version 0.1" );
 static const QgisPlugin::PLUGINTYPE sPluginType = QgisPlugin::UI;
+static const QString sPluginIcon = ":/ogr_converter.png";
 
 //////////////////////////////////////////////////////////////////////////////
 // THE FOLLOWING METHODS ARE MANDATORY FOR ALL PLUGINS
@@ -166,6 +167,11 @@
   return sPluginVersion;
 }
 
+QGISEXTERN QString icon()
+{
+  return sPluginIcon;
+}
+
 // Delete ourself
 QGISEXTERN void unload( QgisPlugin * thePluginPointer )
 {

Modified: trunk/qgis/src/plugins/oracle_raster/qgsoracle_plugin.cpp
===================================================================
--- trunk/qgis/src/plugins/oracle_raster/qgsoracle_plugin.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/oracle_raster/qgsoracle_plugin.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -22,6 +22,7 @@
 static const QString sDescription = QObject::tr( "Access Oracle Spatial GeoRaster" );
 static const QString sPluginVersion = QObject::tr( "Version 0.1" );
 static const QgisPlugin::PLUGINTYPE sPluginType = QgisPlugin::UI;
+static const QString sPluginIcon = ":/oracleplugin/oracleplugin.png";
 
 //////////////////////////////////////////////////////////////////////
 //
@@ -145,6 +146,11 @@
   return sPluginVersion;
 }
 
+QGISEXTERN QString icon()
+{
+  return sPluginIcon;
+}
+
 // Delete ourself
 
 QGISEXTERN void unload( QgisPlugin * thePluginPointer )

Modified: trunk/qgis/src/plugins/plugin_template/plugin.cpp
===================================================================
--- trunk/qgis/src/plugins/plugin_template/plugin.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/plugin_template/plugin.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -39,6 +39,7 @@
 static const QString sDescription = QObject::tr( "[plugindescription]" );
 static const QString sPluginVersion = QObject::tr( "Version 0.1" );
 static const QgisPlugin::PLUGINTYPE sPluginType = QgisPlugin::UI;
+static const QString sPluginIcon = ":/[pluginlcasename]/[pluginlcasename].png";
 
 //////////////////////////////////////////////////////////////////////
 //
@@ -154,6 +155,11 @@
   return sPluginVersion;
 }
 
+QGISEXTERN QString icon()
+{
+  return sPluginIcon;
+}
+
 // Delete ourself
 QGISEXTERN void unload( QgisPlugin * thePluginPointer )
 {

Modified: trunk/qgis/src/plugins/qgisplugin.h
===================================================================
--- trunk/qgis/src/plugins/qgisplugin.h	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/qgisplugin.h	2010-12-12 19:19:54 UTC (rev 14897)
@@ -178,5 +178,8 @@
 //! Typedef for getting the plugin version without instantiating the plugin
 typedef QString version_t();
 
+//! Typedef for getting the plugin icon file name without instantiating the plugin
+typedef QString icon_t();
 
+
 #endif //qgisplugin_h

Modified: trunk/qgis/src/plugins/quick_print/quickprintplugin.cpp
===================================================================
--- trunk/qgis/src/plugins/quick_print/quickprintplugin.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/quick_print/quickprintplugin.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -40,6 +40,7 @@
 static const QString sDescription = QObject::tr( "Quick Print is a plugin to quickly print a map with minimal effort." );
 static const QString sPluginVersion = QObject::tr( "Version 0.1" );
 static const QgisPlugin::PLUGINTYPE sPluginType = QgisPlugin::UI;
+static const QString sPluginIcon = ":/quick_print.png";
 
 //////////////////////////////////////////////////////////////////////
 //
@@ -186,6 +187,11 @@
   return sPluginVersion;
 }
 
+QGISEXTERN QString icon()
+{
+  return sPluginIcon;
+}
+
 // Delete ourself
 QGISEXTERN void unload( QgisPlugin * thePluginPointer )
 {

Modified: trunk/qgis/src/plugins/raster_terrain_analysis/qgsrasterterrainanalysisplugin.cpp
===================================================================
--- trunk/qgis/src/plugins/raster_terrain_analysis/qgsrasterterrainanalysisplugin.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/raster_terrain_analysis/qgsrasterterrainanalysisplugin.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -31,6 +31,7 @@
 static const QString name_ = QObject::tr( "Raster Terrain Analysis plugin" );
 static const QString description_ = QObject::tr( "A plugin for raster based terrain analysis" );
 static const QString version_ = QObject::tr( "Version 0.1" );
+static const QString icon_ = ":/raster/raster_terrain_icon.png";
 
 QgsRasterTerrainAnalysisPlugin::QgsRasterTerrainAnalysisPlugin( QgisInterface* iface ): mIface( iface ), mAction( 0 )
 {
@@ -136,6 +137,11 @@
   return version_;
 }
 
+QGISEXTERN QString icon()
+{
+  return icon_;
+}
+
 QGISEXTERN int type()
 {
   return QgisPlugin::UI;

Modified: trunk/qgis/src/plugins/scale_bar/plugin.cpp
===================================================================
--- trunk/qgis/src/plugins/scale_bar/plugin.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/scale_bar/plugin.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -64,6 +64,7 @@
 static const QString description_ = QObject::tr( "Draws a scale bar" );
 static const QString version_ = QObject::tr( "Version 0.1" );
 static const QgisPlugin::PLUGINTYPE type_ = QgisPlugin::UI;
+static const QString icon_ = ":/scale_bar.png";
 
 
 /**
@@ -660,6 +661,11 @@
   return version_;
 }
 
+QGISEXTERN QString icon()
+{
+  return icon_;
+}
+
 // Delete ourself
 QGISEXTERN void unload( QgisPlugin * thePluginPointer )
 {

Modified: trunk/qgis/src/plugins/spatialquery/qgsspatialqueryplugin.cpp
===================================================================
--- trunk/qgis/src/plugins/spatialquery/qgsspatialqueryplugin.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/spatialquery/qgsspatialqueryplugin.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -50,6 +50,7 @@
 static const QString description_ = QObject::tr( "A plugin that makes spatial queries on vector layers" );
 static const QString version_ = QObject::tr( "Version 0.1" );
 static const QgisPlugin::PLUGINTYPE type_ = QgisPlugin::UI;
+static const QString icon_ = ":/icons/spatialquery.png";
 
 /**
 * Constructor for the plugin. The plugin is passed a pointer to the main app
@@ -194,6 +195,11 @@
   return version_;
 }
 
+QGISEXTERN QString icon()
+{
+  return icon_;
+}
+
 // Delete ourself
 QGISEXTERN void unload( QgisPlugin* theSpatialQueryPluginPointer )
 {

Modified: trunk/qgis/src/plugins/spit/qgsspitplugin.cpp
===================================================================
--- trunk/qgis/src/plugins/spit/qgsspitplugin.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/spit/qgsspitplugin.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -37,6 +37,7 @@
 static const QString description_ = QObject::tr( "Shapefile to PostgreSQL/PostGIS Import Tool" );
 static const QString version_ = QObject::tr( "Version 0.1" );
 static const QgisPlugin::PLUGINTYPE type_ = QgisPlugin::UI;
+static const QString icon_ = ":/spit.png";
 
 
 
@@ -155,7 +156,12 @@
   return version_;
 }
 
+QGISEXTERN QString icon()
+{
+  return icon_;
+}
 
+
 // Delete ourself
 QGISEXTERN void unload( QgisPlugin * p )
 {

Modified: trunk/qgis/src/plugins/wfs/qgswfsplugin.cpp
===================================================================
--- trunk/qgis/src/plugins/wfs/qgswfsplugin.cpp	2010-12-12 18:28:34 UTC (rev 14896)
+++ trunk/qgis/src/plugins/wfs/qgswfsplugin.cpp	2010-12-12 19:19:54 UTC (rev 14897)
@@ -31,6 +31,7 @@
 static const QString name_ = QObject::tr( "WFS plugin" );
 static const QString description_ = QObject::tr( "Adds WFS layers to the QGIS canvas" );
 static const QString version_ = QObject::tr( "Version 0.1" );
+static const QString icon_ = ":/wfs.png";
 
 QgsWFSPlugin::QgsWFSPlugin( QgisInterface* iface )
     : QgisPlugin( name_, description_, version_, QgisPlugin::MAPLAYER ),
@@ -116,6 +117,11 @@
   return version_;
 }
 
+QGISEXTERN QString icon()
+{
+  return icon_;
+}
+
 QGISEXTERN int type()
 {
   return QgisPlugin::UI;



More information about the QGIS-commit mailing list