Showing with 1,802 additions and 1,413 deletions.
  1. +2 −2 doc/changelog.t2t
  2. +2 −2 i18n/qgis_de.ts
  3. +1 −1 ms-windows/QGIS-Installer.nsi
  4. +10 −0 python/core/qgsmaplayer.sip
  5. +2 −2 python/plugins/GdalTools/GdalTools.py
  6. +7 −7 python/plugins/GdalTools/__init__.py
  7. BIN python/plugins/GdalTools/icons/24-to-8-bits.png
  8. BIN python/plugins/GdalTools/icons/8-to-24-bits.png
  9. BIN python/plugins/GdalTools/icons/raster-paletted.png
  10. +2 −1 python/plugins/GdalTools/resources.qrc
  11. +82 −6 python/plugins/GdalTools/tools/GdalTools_utils.py
  12. +1 −15 python/plugins/GdalTools/tools/dialogBase.py
  13. +41 −34 python/plugins/GdalTools/tools/dialogSettings.ui
  14. +21 −3 python/plugins/GdalTools/tools/doSettings.py
  15. +0 −4 python/plugins/fTools/tools/doGeoprocessing.py
  16. +3 −4 python/plugins/fTools/tools/doMergeShapes.py
  17. +0 −3 python/plugins/fTools/tools/doVectorSplit.py
  18. +4 −2 python/plugins/fTools/tools/ftools_utils.py
  19. +8 −2 python/plugins/plugin_installer/installer_data.py
  20. BIN resources/srs.db
  21. 0 src/analysis/network/qgsgraphanalyzer.cpp
  22. 0 src/analysis/network/qgsgraphbuilderintr.h
  23. +4 −2 src/app/attributetable/qgsattributetabledialog.cpp
  24. +1 −1 src/app/composer/qgscomposermapwidget.cpp
  25. +1 −1 src/app/composer/qgscomposermapwidget.h
  26. +73 −27 src/app/qgisapp.cpp
  27. +2 −2 src/app/qgisapp.h
  28. 0 src/app/qgsoptions.cpp
  29. +20 −4 src/app/qgsrasterlayerproperties.cpp
  30. +0 −2 src/app/qgsrasterlayerproperties.h
  31. +11 −0 src/app/qgsvectorlayerproperties.cpp
  32. +12 −3 src/core/composer/qgscomposermap.cpp
  33. +4 −2 src/core/composer/qgscomposermap.h
  34. +10 −1 src/core/qgsapplication.cpp
  35. +24 −1 src/core/qgsexpression.cpp
  36. +5 −4 src/core/qgsexpression.h
  37. +26 −0 src/core/qgsmaplayer.cpp
  38. +11 −0 src/core/qgsmaplayer.h
  39. +12 −5 src/core/qgsmaprenderer.cpp
  40. +2 −1 src/core/qgsmaprenderer.h
  41. +2 −0 src/core/qgsrasterdataprovider.cpp
  42. +60 −36 src/core/raster/qgsrasterlayer.cpp
  43. 0 src/core/symbology-ng/qgssvgcache.h
  44. +3 −1 src/gui/qgsattributeeditor.cpp
  45. +1 −1 src/gui/qgsexpressionbuilderwidget.cpp
  46. +38 −41 src/mapserver/qgis_map_serv.cpp
  47. +16 −14 src/mapserver/qgscapabilitiescache.cpp
  48. +4 −4 src/mapserver/qgscapabilitiescache.h
  49. +9 −10 src/mapserver/qgsconfigcache.cpp
  50. +169 −124 src/mapserver/qgsconfigparser.cpp
  51. +9 −5 src/mapserver/qgsconfigparser.h
  52. +1 −7 src/mapserver/qgsfilter.cpp
  53. +4 −3 src/mapserver/qgsgetrequesthandler.cpp
  54. +1 −1 src/mapserver/qgsgetrequesthandler.h
  55. +23 −27 src/mapserver/qgshttprequesthandler.cpp
  56. +1 −1 src/mapserver/qgshttprequesthandler.h
  57. +3 −5 src/mapserver/qgsmslayerbuilder.cpp
  58. +13 −15 src/mapserver/qgsmslayercache.cpp
  59. +2 −2 src/mapserver/qgspostrequesthandler.cpp
  60. +1 −1 src/mapserver/qgspostrequesthandler.h
  61. +25 −14 src/mapserver/qgsprojectparser.cpp
  62. +24 −25 src/mapserver/qgsremoteowsbuilder.cpp
  63. +3 −3 src/mapserver/qgsremoteowsbuilder.h
  64. +2 −2 src/mapserver/qgsrequesthandler.h
  65. +2 −2 src/mapserver/qgssldparser.h
  66. +32 −32 src/mapserver/qgssoaprequesthandler.cpp
  67. +5 −5 src/mapserver/qgssoaprequesthandler.h
  68. +191 −266 src/mapserver/qgswmsserver.cpp
  69. +8 −6 src/mapserver/qgswmsserver.h
  70. 0 src/plugins/delimited_text/qgsdelimitedtextplugingui.cpp
  71. +4 −0 src/plugins/gps_importer/qgsgpsplugin.cpp
  72. +2 −2 src/plugins/offline_editing/offline_editing_plugin.cpp
  73. +2 −2 src/plugins/oracle_raster/qgsoracle_plugin.cpp
  74. +1 −0 src/plugins/oracle_raster/qgsoracle_plugin.h
  75. 0 src/plugins/roadgraph/shortestpathwidget.cpp
  76. +2 −2 src/plugins/spit/qgsspitplugin.cpp
  77. 0 src/providers/delimitedtext/qgsdelimitedtextprovider.cpp
  78. 0 src/providers/delimitedtext/qgsdelimitedtextprovider.h
  79. +2 −2 src/providers/postgres/qgspostgresprovider.cpp
  80. +18 −3 src/providers/wfs/qgswfsconnection.cpp
  81. +1 −0 src/providers/wfs/qgswfsconnection.h
  82. +20 −4 src/providers/wfs/qgswfsprovider.cpp
  83. +37 −23 src/providers/wfs/qgswfssourceselect.cpp
  84. +5 −0 src/providers/wfs/qgswfssourceselect.h
  85. +121 −116 src/providers/wms/qgswmsprovider.cpp
  86. +4 −0 src/providers/wms/qgswmssourceselect.cpp
  87. +8 −12 src/ui/qgscomposermapwidgetbase.ui
  88. +1 −1 src/ui/qgslabelingguibase.ui
  89. +376 −376 src/ui/qgsnewspatialitelayerdialogbase.ui
  90. +48 −16 src/ui/qgsrasterlayerpropertiesbase.ui
  91. +86 −47 src/ui/qgsvectorlayerpropertiesbase.ui
  92. +8 −10 src/ui/qgswfssourceselectbase.ui
4 changes: 2 additions & 2 deletions doc/changelog.t2t
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ http://linfiniti.com/2011/08/improvements-to-raster-performance-in-qgis-master/]
- Reduce top and side margins for attribute table dialog
- Remove the (hopefully) last SVN reference
- More svn version removal
- Added missing colour accessor/mutator/member from composerlegenditem header
- Added missing color accessor/mutator/member from composerlegenditem header
- Get rid of svn version stuff from release branch.
- Other workaround for Qt#5114 (fixes #3250, #3028, #2598)
- Try to make the histogram smoother
Expand Down Expand Up @@ -264,7 +264,7 @@ changed so we will just provide a bullet list of key new features here.

- Support for icons of plugins in the plugin manager dialog.
- Removed quickprint plugin - use easyprint plugin rather from plugin repo.
- Removed ogr convertor plugin - use 'save as' context menu rather.
- Removed ogr converter plugin - use 'save as' context menu rather.
-

==Printing==
Expand Down
4 changes: 2 additions & 2 deletions i18n/qgis_de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27551,7 +27551,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../src/core/raster/qgsrasterlayer.cpp" line="1761"/>
<source>Pyramid overviews:</source>
<translation>Pyramiden Überblicke:</translation>
<translation>Pyramidenübersichten:</translation>
</message>
<message>
<location filename="../src/core/raster/qgsrasterlayer.cpp" line="1773"/>
Expand Down Expand Up @@ -34270,7 +34270,7 @@ URL %1 versucht</translation>
<message>
<location filename="../src/providers/wms/qgswmsprovider.cpp" line="2671"/>
<source>Fees</source>
<translation>Kosten</translation>
<translation>Gebühren</translation>
</message>
<message>
<location filename="../src/providers/wms/qgswmsprovider.cpp" line="2679"/>
Expand Down
2 changes: 1 addition & 1 deletion ms-windows/QGIS-Installer.nsi
Original file line number Diff line number Diff line change
Expand Up @@ -631,7 +631,7 @@ Section "Uninstall"
RMDir "$INSTDIR"

;remove the Desktop ShortCut
SetShellVarContext current
SetShellVarContext all
Delete "$DESKTOP\Quantum GIS (${VERSION_NUMBER}).lnk"

;remove the Programs Start ShortCut
Expand Down
10 changes: 10 additions & 0 deletions python/core/qgsmaplayer.sip
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,16 @@ public:
*/
const QString & name() const;

/**@note added in version 1.9*/
void setTitle( const QString& title );
/**@note added in version 1.9*/
const QString& title() const;

/**@note added in version 1.9*/
void setAbstract( const QString& abstract );
/**@note added in version 1.9*/
const QString& abstract() const;

/**Synchronises with changes in the datasource
@note added in version 1.6*/
virtual void reload();
Expand Down
4 changes: 2 additions & 2 deletions python/plugins/GdalTools/GdalTools.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,11 +140,11 @@ def initGui( self ):
self.translate.setStatusTip( QCoreApplication.translate( "GdalTools", "Converts raster data between different formats") )
QObject.connect( self.translate, SIGNAL( "triggered()" ), self.doTranslate )

self.paletted = QAction( QIcon( ":icons/raster-paletted.png" ), QCoreApplication.translate( "GdalTools", "RGB to PCT" ), self.iface.mainWindow() )
self.paletted = QAction( QIcon( ":icons/24-to-8-bits.png" ), QCoreApplication.translate( "GdalTools", "RGB to PCT" ), self.iface.mainWindow() )
self.paletted.setStatusTip( QCoreApplication.translate( "GdalTools", "Convert a 24bit RGB image to 8bit paletted" ) )
QObject.connect( self.paletted, SIGNAL( "triggered()" ), self.doPaletted )

self.rgb = QAction( QIcon( ":icons/raster-paletted.png" ), QCoreApplication.translate( "GdalTools", "PCT to RGB" ), self.iface.mainWindow() )
self.rgb = QAction( QIcon( ":icons/8-to-24-bits.png" ), QCoreApplication.translate( "GdalTools", "PCT to RGB" ), self.iface.mainWindow() )
self.rgb.setStatusTip( QCoreApplication.translate( "GdalTools", "Convert an 8bit paletted image to 24bit RGB" ) )
QObject.connect( self.rgb, SIGNAL( "triggered()" ), self.doRGB )

Expand Down
14 changes: 7 additions & 7 deletions python/plugins/GdalTools/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/***************************************************************************
Name : GdalTools
Description : Integrate gdal tools into qgis
Date : 17/Sep/09
Date : 17/Sep/09
copyright : (C) 2009 by Lorenzo Masini and Giuseppe Sucameli (Faunalia)
email : lorenxo86@gmail.com - brush.tyler@gmail.com
***************************************************************************/
Expand All @@ -17,18 +17,18 @@
***************************************************************************/
This script initializes the plugin, making it known to QGIS.
"""
def name():
return "GdalTools"
def name():
return "GdalTools"
def description():
return "Integrate gdal tools into qgis"
def version():
return "Version 1.2.28"
def version():
return "Version 1.2.29"
def qgisMinimumVersion():
return "1.0"
def icon():
return "icons/raster-info.png"
def classFactory(iface):
def classFactory(iface):
# load GdalTools class from file GdalTools
from GdalTools import GdalTools
from GdalTools import GdalTools
return GdalTools(iface)

Binary file added python/plugins/GdalTools/icons/24-to-8-bits.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added python/plugins/GdalTools/icons/8-to-24-bits.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed python/plugins/GdalTools/icons/raster-paletted.png
Binary file not shown.
3 changes: 2 additions & 1 deletion python/plugins/GdalTools/resources.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,14 @@
<file>icons/projection-add.png</file>
<file>icons/raster-overview.png</file>
<file>icons/raster-clip.png</file>
<file>icons/raster-paletted.png</file>
<file>icons/raster-rgb.png</file>
<file>icons/tileindex.png</file>
<file>icons/about.png</file>
<file>icons/dem.png</file>
<file>icons/projection-export.png</file>
<file>icons/fillnodata.png</file>
<file>icons/24-to-8-bits.png</file>
<file>icons/8-to-24-bits.png</file>
<file>icons/edit.png</file>
<file>icons/reset.png</file>
<file>icons/tooltip.png</file>
Expand Down
88 changes: 82 additions & 6 deletions python/plugins/GdalTools/tools/GdalTools_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
from osgeo.gdalconst import *
from osgeo import ogr

import os
# to know the os
import platform

Expand Down Expand Up @@ -47,15 +48,25 @@ def setLastUsedDir(filePath):
settings.setValue( "/GdalTools/lastUsedDir", QVariant(dirPath) )

# Retrieves GDAL binaries location
def getGdalPath():
def getGdalBinPath():
settings = QSettings()
return settings.value( "/GdalTools/gdalPath", QVariant( "" ) ).toString()

# Stores GDAL binaries location
def setGdalPath( path ):
def setGdalBinPath( path ):
settings = QSettings()
settings.setValue( "/GdalTools/gdalPath", QVariant( path ) )

# Retrieves GDAL python modules location
def getGdalPymodPath():
settings = QSettings()
return settings.value( "/GdalTools/gdalPymodPath", QVariant( "" ) ).toString()

# Stores GDAL python modules location
def setGdalPymodPath( path ):
settings = QSettings()
settings.setValue( "/GdalTools/gdalPymodPath", QVariant( path ) )

# Retrieves GDAL help files location
def getHelpPath():
settings = QSettings()
Expand Down Expand Up @@ -174,7 +185,6 @@ def getRasterFiles(path, recursive=False):
rasters << path + "/" + f

if recursive:
import os
for myRoot, myDirs, myFiles in os.walk( unicode(path) ):
for dir in myDirs:
workDir = QDir( myRoot + "/" + dir )
Expand Down Expand Up @@ -762,7 +772,73 @@ def __str__(self):
return ".".join(self.vers)


# setup the default MacOs path
#if platform.system() == "Darwin" and getGdalPath().isEmpty():
# setGdalPath( u"/Library/Frameworks/GDAL.framework/Versions/%s/Programs" % str(GdalConfig.version())[:3] )
def setProcessEnvironment(process):
envvar_list = {
"PATH" : getGdalBinPath(),
"PYTHONPATH" : getGdalPymodPath()
}

sep = os.pathsep

for name, val in envvar_list.iteritems():
if val == None or val == "":
continue

envval = os.getenv(name)
if envval == None or envval == "":
envval = str(val)
elif not QString( envval ).split( sep ).contains( val, Qt.CaseInsensitive ):
envval += "%s%s" % (sep, str(val))
else:
envval = None

if envval != None:
os.putenv( name, envval )

if False: # not needed because os.putenv() has already updated the environment for new child processes
env = QProcess.systemEnvironment()
if env.contains( QRegExp( "^%s=(.*)" % name, Qt.CaseInsensitive ) ):
env.replaceInStrings( QRegExp( "^%s=(.*)" % name, Qt.CaseInsensitive ), "%s=\\1%s%s" % (name, sep, gdalPath) )
else:
env << "%s=%s" % (name, val)
process.setEnvironment( env )


def setMacOSXDefaultEnvironment():
# fix bug #3170: many GDAL Tools don't work in OS X standalone

if platform.system() != "Darwin":
return

# QgsApplication.prefixPath() contains the path to qgis executable (i.e. .../Qgis.app/MacOS)
# get the path to Qgis application folder
qgis_app = u"%s/.." % QgsApplication.prefixPath()
qgis_app = QDir( qgis_app ).absolutePath()

qgis_bin = u"%s/bin" % QgsApplication.prefixPath() # path to QGis bin folder
qgis_python = u"%s/Resources/python" % qgis_app # path to QGis python folder

# path to the GDAL framework within the Qgis application folder (QGis standalone only)
qgis_standalone_gdal_path = u"%s/Frameworks/GDAL.framework" % qgis_app

# path to the GDAL framework when installed as external framework
gdal_bin_path = u"/Library/Frameworks/GDAL.framework/Versions/%s/Programs" % str(GdalConfig.version())[:3]

if os.path.exists( qgis_standalone_gdal_path ): # qgis standalone
# GDAL executables are in the QGis bin folder
if getGdalBinPath().isEmpty():
setGdalBinPath( qgis_bin )
# GDAL pymods are in the QGis python folder
if getGdalPymodPath().isEmpty():
setGdalPymodPath( qgis_python )

elif os.path.exists( gdal_bin_path ):
# GDAL executables are in the GDAL framework Programs folder
if getGdalBinPath().isEmpty():
setGdalBinPath( gdal_bin_path )


# setup the MacOSX path to both GDAL executables and python modules
if platform.system() == "Darwin":
setMacOSXDefaultEnvironment()

16 changes: 1 addition & 15 deletions python/plugins/GdalTools/tools/dialogBase.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,21 +22,7 @@ def __init__(self, parent, iface, pluginBase, pluginName, pluginCommand):
self.iface = iface

self.process = QProcess(self)
gdalPath = Utils.getGdalPath()
if not gdalPath.isEmpty():
sep = ";" if platform.system() == "Windows" else ":"
env = self.process.environment()
if env.isEmpty():
# process.enviroment() is probably not supported (MacOS?),
# use os.putenv() instead
path = os.getenv("PATH")
if path != "":
path += sep
path += gdalPath
os.putenv( "PATH", path )
else:
env.replaceInStrings( QRegExp( "^PATH=(.*)", Qt.CaseInsensitive ), "PATH=\\1%s%s" % (sep, gdalPath) )
self.process.setEnvironment( env )
Utils.setProcessEnvironment(self.process)
self.connect(self.process, SIGNAL("error(QProcess::ProcessError)"), self.processError)
self.connect(self.process, SIGNAL("finished(int, QProcess::ExitStatus)"), self.processFinished)

Expand Down
75 changes: 41 additions & 34 deletions python/plugins/GdalTools/tools/dialogSettings.ui
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>368</width>
<height>337</height>
<width>371</width>
<height>341</height>
</rect>
</property>
<property name="windowTitle">
Expand All @@ -19,7 +19,7 @@
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Path to the GDAL binaries</string>
<string>Path to the GDAL executables</string>
</property>
</widget>
</item>
Expand Down Expand Up @@ -52,6 +52,44 @@
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_8">
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>Path to the GDAL python modules</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="pymod_tooltip_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string notr="true">##tooltip icon##</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLineEdit" name="leGdalPymodPath"/>
</item>
<item>
<widget class="QPushButton" name="btnSetPymodPath">
<property name="text">
<string>Browse</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
Expand Down Expand Up @@ -152,37 +190,6 @@
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="label_4">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>GDAL pymod path</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLineEdit" name="leGdalPythonPath">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnSetPythonPath">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Browse</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
Expand Down
Loading