mirror of
https://github.com/qgis/QGIS.git
synced 2025-05-04 00:02:45 -04:00
Plugin Installer update - prepare to merge with Plugin Manager
git-svn-id: http://svn.osgeo.org/qgis/trunk@10512 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
parent
0e882933b0
commit
e104beb3bf
@ -14,7 +14,7 @@ def name():
|
|||||||
return "Plugin Installer"
|
return "Plugin Installer"
|
||||||
|
|
||||||
def version():
|
def version():
|
||||||
return "Version 0.9.12"
|
return "Version 0.9.14"
|
||||||
|
|
||||||
def description():
|
def description():
|
||||||
return "Downloads and installs QGIS python plugins"
|
return "Downloads and installs QGIS python plugins"
|
||||||
|
@ -87,6 +87,41 @@ authorRepos = [("Carson Farmer's Repository", "http://www.ftools.ca/cfarmerQgis
|
|||||||
("GIS-Lab Repository", "http://gis-lab.info/programs/qgis/qgis-repo.xml", "")]
|
("GIS-Lab Repository", "http://gis-lab.info/programs/qgis/qgis-repo.xml", "")]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# --- class History ----------------------------------------------------------------------- #
|
||||||
|
class History(dict):
|
||||||
|
""" Dictionary for keeping changes made duging the session - will be used to complete the (un/re)loading """
|
||||||
|
|
||||||
|
# ----------------------------------------- #
|
||||||
|
def markChange(self, plugin, change):
|
||||||
|
""" mark the status change: A-added, D-deleted, R-reinstalled """
|
||||||
|
if change == "A" and self.get(plugin) == "D": # installation right after uninstallation
|
||||||
|
self.__setitem__(plugin, "R")
|
||||||
|
elif change == "A": # any other installation
|
||||||
|
self.__setitem__(plugin, "A")
|
||||||
|
elif change == "D" and self.get(plugin) == "A": # uninstallation right after installation
|
||||||
|
self.pop(plugin)
|
||||||
|
elif change == "D": # any other uninstallation
|
||||||
|
self.__setitem__(plugin, "D")
|
||||||
|
elif change == "R" and self.get(plugin) == "A": # reinstallation right after installation
|
||||||
|
self.__setitem__(plugin, "A")
|
||||||
|
elif change == "R": # any other reinstallation
|
||||||
|
self.__setitem__(plugin, "R")
|
||||||
|
|
||||||
|
# ----------------------------------------- #
|
||||||
|
def toList(self, change):
|
||||||
|
""" return a list of plugins matching the given change """
|
||||||
|
result = []
|
||||||
|
for i in self.items():
|
||||||
|
if i[1] == change:
|
||||||
|
result += [i[0]]
|
||||||
|
return result
|
||||||
|
# --- /class History ---------------------------------------------------------------------- #
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- class QPHttp ----------------------------------------------------------------------- #
|
# --- class QPHttp ----------------------------------------------------------------------- #
|
||||||
# --- It's a temporary workaround for broken proxy handling in Qt ------------------------- #
|
# --- It's a temporary workaround for broken proxy handling in Qt ------------------------- #
|
||||||
class QPHttp(QHttp):
|
class QPHttp(QHttp):
|
||||||
@ -664,8 +699,7 @@ class Plugins(QObject):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# public members:
|
# public members:
|
||||||
|
history = History()
|
||||||
repositories = Repositories()
|
repositories = Repositories()
|
||||||
plugins = Plugins()
|
plugins = Plugins()
|
||||||
|
@ -592,11 +592,12 @@ class QgsPluginInstallerDialog(QDialog, Ui_QgsPluginInstallerDialogBase):
|
|||||||
plugin = plugins.all()[key]
|
plugin = plugins.all()[key]
|
||||||
if not plugin["error"]:
|
if not plugin["error"]:
|
||||||
if previousStatus in ["not installed", "new"]:
|
if previousStatus in ["not installed", "new"]:
|
||||||
infoString = (self.tr("Plugin installed successfully"),
|
if QGIS_VER[0:3] == "1.1":
|
||||||
self.tr("Python plugin installed.\nNow you need to enable it in Plugin Manager."))
|
infoString = (self.tr("QGIS Python Plugin Installer"), self.tr("Plugin installed successfully"))
|
||||||
else:
|
else:
|
||||||
infoString = (self.tr("Plugin reinstalled successfully"),
|
infoString = (self.tr("Plugin installed successfully"), self.tr("Python plugin installed.\nNow you need to enable it in Plugin Manager."))
|
||||||
self.tr("Python plugin reinstalled.\nYou need to restart Quantum GIS in order to reload it."))
|
else:
|
||||||
|
infoString = (self.tr("Plugin reinstalled successfully"), self.tr("Python plugin reinstalled.\nYou need to restart Quantum GIS in order to reload it."))
|
||||||
else:
|
else:
|
||||||
if plugin["error"] == "incompatible":
|
if plugin["error"] == "incompatible":
|
||||||
message = self.tr("The plugin is designed for a newer version of Quantum GIS. The minimum required version is:")
|
message = self.tr("The plugin is designed for a newer version of Quantum GIS. The minimum required version is:")
|
||||||
@ -634,6 +635,12 @@ class QgsPluginInstallerDialog(QDialog, Ui_QgsPluginInstallerDialogBase):
|
|||||||
pass
|
pass
|
||||||
if not plugin["repository"]:
|
if not plugin["repository"]:
|
||||||
plugins.remove(key)
|
plugins.remove(key)
|
||||||
|
if plugins.all().has_key(key) and not plugins.all()[key]["status"] in ["not installed", "new"]:
|
||||||
|
if previousStatus in ["not installed", "new"]:
|
||||||
|
history.markChange(key,'A')
|
||||||
|
else:
|
||||||
|
history.markChange(key,'R')
|
||||||
|
|
||||||
self.populatePluginTree()
|
self.populatePluginTree()
|
||||||
if infoString[0]:
|
if infoString[0]:
|
||||||
QMessageBox.information(self, infoString[0], infoString[1])
|
QMessageBox.information(self, infoString[0], infoString[1])
|
||||||
@ -678,6 +685,7 @@ class QgsPluginInstallerDialog(QDialog, Ui_QgsPluginInstallerDialogBase):
|
|||||||
plugins.setPluginData(key, "error_details", "")
|
plugins.setPluginData(key, "error_details", "")
|
||||||
self.populatePluginTree()
|
self.populatePluginTree()
|
||||||
QMessageBox.information(self, self.tr("Plugin uninstalled successfully"), self.tr("Python plugin uninstalled. Note that you may need to restart Quantum GIS in order to remove it completely."))
|
QMessageBox.information(self, self.tr("Plugin uninstalled successfully"), self.tr("Python plugin uninstalled. Note that you may need to restart Quantum GIS in order to remove it completely."))
|
||||||
|
history.markChange(key,'D')
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------- #
|
# ----------------------------------------- #
|
||||||
|
@ -41,6 +41,9 @@ class InstallerPlugin():
|
|||||||
# ----------------------------------------- #
|
# ----------------------------------------- #
|
||||||
def getThemeIcon(self, theName):
|
def getThemeIcon(self, theName):
|
||||||
""" get the icon from the best available theme """
|
""" get the icon from the best available theme """
|
||||||
|
if not QGIS_MAJOR_VER: # QGIS 0.x
|
||||||
|
return QIcon(":/plugins/installer/" + theName)
|
||||||
|
|
||||||
myCurThemePath = QgsApplication.activeThemePath() + "/plugins/" + theName;
|
myCurThemePath = QgsApplication.activeThemePath() + "/plugins/" + theName;
|
||||||
myDefThemePath = QgsApplication.defaultThemePath() + "/plugins/" + theName;
|
myDefThemePath = QgsApplication.defaultThemePath() + "/plugins/" + theName;
|
||||||
myQrcPath = ":/plugins/installer/" + theName;
|
myQrcPath = ":/plugins/installer/" + theName;
|
||||||
@ -160,3 +163,27 @@ class InstallerPlugin():
|
|||||||
flags = Qt.WindowTitleHint | Qt.WindowSystemMenuHint | Qt.WindowMaximizeButtonHint
|
flags = Qt.WindowTitleHint | Qt.WindowSystemMenuHint | Qt.WindowMaximizeButtonHint
|
||||||
self.guiDlg = QgsPluginInstallerDialog(parent,flags)
|
self.guiDlg = QgsPluginInstallerDialog(parent,flags)
|
||||||
self.guiDlg.show()
|
self.guiDlg.show()
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------- #
|
||||||
|
def newlyInstalledPlugins(self):
|
||||||
|
""" return the list of newly installed plugins for further loading """
|
||||||
|
return history.toList("A")
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------- #
|
||||||
|
def newlyUninstalledPlugins(self):
|
||||||
|
""" return the list of newly uninstalled plugins for further unloading """
|
||||||
|
return history.toList("D")
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------- #
|
||||||
|
def newlyReinstalledPlugins(self):
|
||||||
|
""" return the list of newly reinstalled plugins for further reloading """
|
||||||
|
return history.toList("R")
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------- #
|
||||||
|
def resetNewlyProcessedPlugins(self):
|
||||||
|
""" clear the dict of newly processed plugins """
|
||||||
|
history.clear()
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
# Resource object code
|
# Resource object code
|
||||||
#
|
#
|
||||||
# Created: sob. wrz 13 00:34:16 2008
|
# Created: wt. mar 24 00:35:11 2009
|
||||||
# by: The Resource Compiler for PyQt (Qt v4.3.2)
|
# by: The Resource Compiler for PyQt (Qt v4.4.3)
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user