From 881c4cea18245f93c78d27c3d13fdfbd831977ab Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Fri, 12 Mar 2010 23:55:52 +0200 Subject: [PATCH 1/4] Fixed locations to use the AppLocation class. --- openlp/plugins/bibles/forms/importwizardform.py | 6 +++--- openlp/plugins/bibles/lib/http.py | 6 ++++-- openlp/plugins/bibles/lib/osis.py | 7 ++++--- openlp/plugins/presentations/presentationplugin.py | 9 ++++++--- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/openlp/plugins/bibles/forms/importwizardform.py b/openlp/plugins/bibles/forms/importwizardform.py index 742598fdb..d25ad4b4c 100644 --- a/openlp/plugins/bibles/forms/importwizardform.py +++ b/openlp/plugins/bibles/forms/importwizardform.py @@ -32,6 +32,7 @@ from PyQt4 import QtCore, QtGui from bibleimportwizard import Ui_BibleImportWizard from openlp.core.lib import Receiver +from openlp.core.utils import AppLocation from openlp.plugins.bibles.lib.manager import BibleFormat log = logging.getLogger(__name__) @@ -258,9 +259,8 @@ class ImportWizardForm(QtGui.QWizard, Ui_BibleImportWizard): Load the list of Crosswalk and BibleGateway bibles. """ #Load and store Crosswalk Bibles - filepath = os.path.abspath(os.path.join( - os.path.split(os.path.abspath(__file__))[0], - u'..', u'resources')) + filepath = AppLocation.get_directory(AppLocation.PluginsDir) + filepath = os.path.join(filepath, u'bibles', u'resources') fbibles = None try: self.web_bible_list[DownloadLocation.Crosswalk] = {} diff --git a/openlp/plugins/bibles/lib/http.py b/openlp/plugins/bibles/lib/http.py index bd4ad8e0b..5a170d84c 100644 --- a/openlp/plugins/bibles/lib/http.py +++ b/openlp/plugins/bibles/lib/http.py @@ -31,6 +31,7 @@ import sqlite3 from BeautifulSoup import BeautifulSoup from openlp.core.lib import Receiver +from openlp.core.utils import AppLocation from common import BibleCommon, SearchResults from db import BibleDB from openlp.plugins.bibles.lib.models import Book @@ -43,8 +44,9 @@ class HTTPBooks(object): @staticmethod def get_cursor(): if HTTPBooks.cursor is None: - filepath = os.path.join(os.path.dirname(os.path.abspath(__file__)), - u'..', u'resources', u'httpbooks.sqlite') + filepath = os.path.join( + AppLocation.get_directory(AppLocation.PluginsDir), u'bibles', + u'resources', u'httpbooks.sqlite') conn = sqlite3.connect(filepath) HTTPBooks.cursor = conn.cursor() return HTTPBooks.cursor diff --git a/openlp/plugins/bibles/lib/osis.py b/openlp/plugins/bibles/lib/osis.py index 658ac8a0b..e4cb79e73 100644 --- a/openlp/plugins/bibles/lib/osis.py +++ b/openlp/plugins/bibles/lib/osis.py @@ -33,6 +33,7 @@ import re from PyQt4 import QtCore from openlp.core.lib import Receiver +from openlp.core.utils import AppLocation from db import BibleDB log = logging.getLogger(__name__) @@ -66,9 +67,9 @@ class OSISBible(BibleDB): self.q_regex = re.compile(r'') self.spaces_regex = re.compile(r'([ ]{2,})') self.books = {} - filepath = os.path.split(os.path.abspath(__file__))[0] - filepath = os.path.abspath(os.path.join( - filepath, u'..', u'resources', u'osisbooks.csv')) + filepath = os.path.join( + AppLocation.get_directory(AppLocation.PluginsDir), u'bibles', + u'resources', u'osisbooks.csv') fbibles = None try: fbibles = open(filepath, u'r') diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index 8353611ab..bfb3bcbca 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -27,6 +27,7 @@ import os import logging from openlp.core.lib import Plugin, build_icon, Receiver, PluginStatus +from openlp.core.utils import AppLocation from openlp.plugins.presentations.lib import * log = logging.getLogger(__name__) @@ -84,11 +85,13 @@ class PresentationPlugin(Plugin): If Not do not install the plugin. """ log.debug(u'check_pre_conditions') - dir = os.path.join(os.path.dirname(__file__), u'lib') - for filename in os.listdir(dir): + controller_dir = os.path.join( + AppLocation.get_directory(AppLocation.PluginsDir), + u'presentations', u'lib') + for filename in os.listdir(controller_dir): if filename.endswith(u'controller.py') and \ not filename == 'presentationcontroller.py': - path = os.path.join(dir, filename) + path = os.path.join(controller_dir, filename) if os.path.isfile(path): modulename = u'openlp.plugins.presentations.lib.' + \ os.path.splitext(filename)[0] From f2bafaaed29b1b854d52347c9f73375b517d2ab8 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Sat, 13 Mar 2010 00:14:24 +0200 Subject: [PATCH 2/4] Added lxml hook file. Made setup file paths relative. --- resources/innosetup/OpenLP-2.0.iss | 13 +++++++------ resources/pyinstaller/hook-lxml.objectify.py | 1 + 2 files changed, 8 insertions(+), 6 deletions(-) create mode 100644 resources/pyinstaller/hook-lxml.objectify.py diff --git a/resources/innosetup/OpenLP-2.0.iss b/resources/innosetup/OpenLP-2.0.iss index 4b25d6a28..eb2198fe4 100644 --- a/resources/innosetup/OpenLP-2.0.iss +++ b/resources/innosetup/OpenLP-2.0.iss @@ -5,7 +5,7 @@ #define MyAppVerName "OpenLP 2.0" #define MyAppPublisher "OpenLP Developers" #define MyAppURL "http://openlp.org/" -#define MyAppExeName "openlp.exe" +#define MyAppExeName "OpenLP.exe" [Setup] ; NOTE: The value of AppId uniquely identifies this application. @@ -22,7 +22,7 @@ DefaultDirName={pf}\{#MyAppName} DefaultGroupName=OpenLP 2.0 AllowNoIcons=yes LicenseFile=LICENSE.txt -OutputBaseFilename=OpenLP-2.0-setup +OutputBaseFilename=OpenLP-1.9.0-bzr737-setup Compression=lzma SolidCompression=true SetupIconFile=OpenLP.ico @@ -55,10 +55,11 @@ Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:Ad Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked [Files] -Source: C:\Documents and Settings\raoul\My Documents\My Projects\openlp\pyinstaller\dist\openlp\*; DestDir: {app}; Flags: ignoreversion -Source: C:\Documents and Settings\raoul\My Documents\My Projects\openlp\pyinstaller\dist\openlp\plugins\*; DestDir: {app}\plugins; Flags: ignoreversion recursesubdirs createallsubdirs -Source: C:\Documents and Settings\raoul\My Documents\My Projects\openlp\pyinstaller\dist\openlp\Microsoft.VC90.CRT\*; DestDir: {app}\Microsoft.VC90.CRT; Flags: ignoreversion recursesubdirs createallsubdirs -Source: C:\Documents and Settings\raoul\My Documents\My Projects\openlp\pyinstaller\dist\openlp\qt4_plugins\*; DestDir: {app}\qt4_plugins; Flags: ignoreversion recursesubdirs createallsubdirs +Source: ..\..\dist\OpenLP\*; DestDir: {app}; Flags: ignoreversion +Source: ..\..\dist\OpenLP\plugins\*; DestDir: {app}\plugins; Flags: ignoreversion recursesubdirs createallsubdirs +Source: ..\..\dist\OpenLP\Microsoft.VC90.CRT\*; DestDir: {app}\Microsoft.VC90.CRT; Flags: ignoreversion recursesubdirs createallsubdirs +Source: ..\..\dist\OpenLP\qt4_plugins\*; DestDir: {app}\qt4_plugins; Flags: ignoreversion recursesubdirs createallsubdirs +Source: ..\..\dist\OpenLP\eggs\*; DestDir: {app}\eggs; Flags: ignoreversion recursesubdirs createallsubdirs ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Icons] diff --git a/resources/pyinstaller/hook-lxml.objectify.py b/resources/pyinstaller/hook-lxml.objectify.py new file mode 100644 index 000000000..071a0dca4 --- /dev/null +++ b/resources/pyinstaller/hook-lxml.objectify.py @@ -0,0 +1 @@ +hiddenimports = ['lxml.etree'] From 19ba09c168d736598f4e0e0869f4be9df5af3114 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Sat, 13 Mar 2010 00:33:04 +0200 Subject: [PATCH 3/4] Tweaked setup a bit. Added a default configuration. --- resources/innosetup/OpenLP-2.0.iss | 11 +++++++---- resources/innosetup/openlp.conf | 26 ++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 resources/innosetup/openlp.conf diff --git a/resources/innosetup/OpenLP-2.0.iss b/resources/innosetup/OpenLP-2.0.iss index eb2198fe4..ea2a70664 100644 --- a/resources/innosetup/OpenLP-2.0.iss +++ b/resources/innosetup/OpenLP-2.0.iss @@ -20,12 +20,14 @@ AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DefaultDirName={pf}\{#MyAppName} DefaultGroupName=OpenLP 2.0 -AllowNoIcons=yes +AllowNoIcons=true LicenseFile=LICENSE.txt OutputBaseFilename=OpenLP-1.9.0-bzr737-setup Compression=lzma SolidCompression=true -SetupIconFile=OpenLP.ico +SetupIconFile=C:\Program Files\Inno Setup 5\Examples\Setup.ico +WizardImageFile=C:\Program Files\Inno Setup 5\WizModernImage-IS.bmp +WizardSmallImageFile=C:\Program Files\Inno Setup 5\WizModernSmallImage-IS.bmp [Languages] Name: english; MessagesFile: compiler:Default.isl @@ -51,8 +53,8 @@ Name: slovenian; MessagesFile: compiler:Languages\Slovenian.isl Name: spanish; MessagesFile: compiler:Languages\Spanish.isl [Tasks] -Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked -Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked +Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons} +Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons} [Files] Source: ..\..\dist\OpenLP\*; DestDir: {app}; Flags: ignoreversion @@ -60,6 +62,7 @@ Source: ..\..\dist\OpenLP\plugins\*; DestDir: {app}\plugins; Flags: ignoreversio Source: ..\..\dist\OpenLP\Microsoft.VC90.CRT\*; DestDir: {app}\Microsoft.VC90.CRT; Flags: ignoreversion recursesubdirs createallsubdirs Source: ..\..\dist\OpenLP\qt4_plugins\*; DestDir: {app}\qt4_plugins; Flags: ignoreversion recursesubdirs createallsubdirs Source: ..\..\dist\OpenLP\eggs\*; DestDir: {app}\eggs; Flags: ignoreversion recursesubdirs createallsubdirs +Source: openlp.conf; DestDir: {userappdata}\openlp; Flags: ignoreversion ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Icons] diff --git a/resources/innosetup/openlp.conf b/resources/innosetup/openlp.conf new file mode 100644 index 000000000..3471aede1 --- /dev/null +++ b/resources/innosetup/openlp.conf @@ -0,0 +1,26 @@ +[bibles] +status = 1 + +[media] +status = 1 + +[alerts] +status = 1 + +[presentations] +status = 1 + +[custom] +status = 1 + +[remotes] +status = 1 + +[images] +status = 1 + +[songusage] +status = 1 + +[songs] +status = 1 From eae3fdf52b5dc0da3412879ee94dbfe7dd49c95c Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Sat, 13 Mar 2010 01:10:21 +0200 Subject: [PATCH 4/4] Default remotes plugin to off. Don't overwrite config file. --- resources/innosetup/OpenLP-2.0.iss | 2 +- resources/innosetup/openlp.conf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/innosetup/OpenLP-2.0.iss b/resources/innosetup/OpenLP-2.0.iss index ea2a70664..41e9cd84b 100644 --- a/resources/innosetup/OpenLP-2.0.iss +++ b/resources/innosetup/OpenLP-2.0.iss @@ -62,7 +62,7 @@ Source: ..\..\dist\OpenLP\plugins\*; DestDir: {app}\plugins; Flags: ignoreversio Source: ..\..\dist\OpenLP\Microsoft.VC90.CRT\*; DestDir: {app}\Microsoft.VC90.CRT; Flags: ignoreversion recursesubdirs createallsubdirs Source: ..\..\dist\OpenLP\qt4_plugins\*; DestDir: {app}\qt4_plugins; Flags: ignoreversion recursesubdirs createallsubdirs Source: ..\..\dist\OpenLP\eggs\*; DestDir: {app}\eggs; Flags: ignoreversion recursesubdirs createallsubdirs -Source: openlp.conf; DestDir: {userappdata}\openlp; Flags: ignoreversion +Source: openlp.conf; DestDir: {userappdata}\openlp; Flags: ignoreversion onlyifdoesntexist ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Icons] diff --git a/resources/innosetup/openlp.conf b/resources/innosetup/openlp.conf index 3471aede1..aab3b2260 100644 --- a/resources/innosetup/openlp.conf +++ b/resources/innosetup/openlp.conf @@ -14,7 +14,7 @@ status = 1 status = 1 [remotes] -status = 1 +status = 0 [images] status = 1