ProjectPyramid/Project.py

Fri, 20 Jan 2017 19:06:19 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 20 Jan 2017 19:06:19 +0100
changeset 104
3e34b23890af
parent 99
d148b68ccc76
child 106
2086bda4a893
permissions
-rw-r--r--

Fixed an issue finding the python executable.

2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
99
d148b68ccc76 Updated copyright for 2017.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
3 # Copyright (c) 2012 - 2017 Detlev Offenbach <detlev@die-offenbachs.de>
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the Pyramid project support.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
71
8a78fab32c18 Added the Python2 compatibility flag.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
10 from __future__ import unicode_literals
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
11
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
12 try:
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
13 import configparser
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
14 except ImportError:
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
15 str = unicode # __IGNORE_WARNING__
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
16 import ConfigParser as configparser # __IGNORE_WARNING__
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
17
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 import os
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
19 import re
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
20 import sys
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
22 from PyQt5.QtCore import QObject, QFileInfo, QTimer, QUrl
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
23 from PyQt5.QtGui import QDesktopServices
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
24 from PyQt5.QtWidgets import QMenu, QDialog, QInputDialog, QLineEdit
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
25 from PyQt5.QtCore import QProcess as QProcessPyQt
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 from E5Gui.E5Application import e5App
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 from E5Gui import E5MessageBox, E5FileDialog
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 from E5Gui.E5Action import E5Action
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 from .PyramidDialog import PyramidDialog
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
33 import Preferences
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 import Utilities
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 from Globals import isWindowsPlatform
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 import UI.PixmapCache
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 class PyramidNoProjectSelectedException(Exception):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 Exception thrown to signal, that there is no current Pyramid project.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 pass
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
46 class QProcess(QProcessPyQt):
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
47 """
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
48 Class transforming the call arguments in case of gnome-terminal.
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
49 """
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
50 def start(self, cmd, args=[], mode=QProcessPyQt.ReadWrite):
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
51 """
58
6acbfbba1e9d Corrected some code and documentation style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 57
diff changeset
52 Public method to start the given program (cmd) in a new process, if
6acbfbba1e9d Corrected some code and documentation style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 57
diff changeset
53 none is already running, passing the command line arguments in args.
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
54
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
55 @param cmd start the given program cmd (string)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
56 @keyparam args list of parameters (list of strings)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
57 @keyparam mode access mode (QIODevice.OpenMode)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
58 """
95
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
59 if cmd.endswith(('gnome-terminal', 'konsole', 'xfce4-terminal',
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
60 'mate-terminal')):
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
61 if '-e' in args:
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
62 index = args.index('-e') + 1
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
63 cargs = ' '.join(args[index:])
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
64 args[index:] = [cargs]
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
65
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
66 super(QProcess, self).start(cmd, args, mode)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
67
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
68 @staticmethod
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
69 def startDetached(cmd, args=[], path=''):
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
70 """
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
71 Public static method to start the given program (cmd) in a new process,
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
72 if none is already running, passing the command line arguments in args.
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
73
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
74 @param cmd start the given program cmd (string)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
75 @keyparam args list of parameters (list of strings)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
76 @keyparam path new working directory (string)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
77 @return tuple of successful start and process id (boolean, integer)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
78 """
95
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
79 if cmd.endswith(('gnome-terminal', 'konsole', 'xfce4-terminal',
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
80 'mate-terminal')):
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
81 if '-e' in args:
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
82 index = args.index('-e') + 1
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
83 cargs = ' '.join(args[index:])
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
84 args[index:] = [cargs]
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
85
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
86 return QProcessPyQt.startDetached(cmd, args, path)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
87
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
88
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 class Project(QObject):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 Class implementing the Pyramid project support.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 """
19
f4adfe6e51b0 Corrected PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 14
diff changeset
93 def __init__(self, plugin, parent=None):
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 Constructor
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 @param plugin reference to the plugin object
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 @param parent parent (QObject)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 """
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
100 super(Project, self).__init__(parent)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 self.__plugin = plugin
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 self.__ui = parent
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 self.__e5project = e5App().getObject("Project")
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 self.__hooksInstalled = False
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106
64
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
107 self.__menus = {} # dictionary with references to menus
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 self.__serverProc = None
44
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
110
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
111 self.__pyramidVersion = ""
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 def initActions(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 Public method to define the Pyramid actions.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 self.actions = []
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
119 self.selectProjectAct = E5Action(
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
120 self.tr('Current Pyramid Project'),
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
121 "",
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
122 0, 0,
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
123 self, 'pyramid_current_project')
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
124 self.selectProjectAct.setStatusTip(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 'Selects the current Pyramid project'))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
126 self.selectProjectAct.setWhatsThis(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 """<b>Current Pyramid Project</b>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 """<p>Selects the Pyramid project. Used for multi-project """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 """Pyramid projects to switch between the projects.</p>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 ))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
131 self.selectProjectAct.triggered.connect(self.__selectProject)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 self.actions.append(self.selectProjectAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 ###############################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 ## create actions below ##
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 ###############################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
138 self.createProjectAct = E5Action(
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
139 self.tr('Create Pyramid Project'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
140 self.tr('Create Pyramid &Project'),
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
141 0, 0,
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
142 self, 'pyramid_create_project')
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
143 self.createProjectAct.setStatusTip(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 'Creates a new Pyramid project'))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
145 self.createProjectAct.setWhatsThis(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 """<b>Create Pyramid Project</b>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 """<p>Creates a new Pyramid project using "pcreate".</p>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 ))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
149 self.createProjectAct.triggered.connect(self.__createProject)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 self.actions.append(self.createProjectAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 ##############################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 ## run actions below ##
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 ##############################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
156 self.runServerAct = E5Action(
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
157 self.tr('Run Server'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
158 self.tr('Run &Server'),
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
159 0, 0,
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
160 self, 'pyramid_run_server')
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
161 self.runServerAct.setStatusTip(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 'Starts the Pyramid Web server'))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
163 self.runServerAct.setWhatsThis(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 """<b>Run Server</b>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 """<p>Starts the Pyramid Web server using"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 """ "pserve --reload development.ini".</p>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 ))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
168 self.runServerAct.triggered.connect(self.__runServer)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 self.actions.append(self.runServerAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
171 self.runLoggingServerAct = E5Action(
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
172 self.tr('Run Server with Logging'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
173 self.tr('Run Server with &Logging'),
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
174 0, 0,
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
175 self, 'pyramid_run_logging_server')
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
176 self.runLoggingServerAct.setStatusTip(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 'Starts the Pyramid Web server with logging'))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
178 self.runLoggingServerAct.setWhatsThis(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 """<b>Run Server with Logging</b>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 """<p>Starts the Pyramid Web server with logging using"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 """ "pserve --log-file=server.log --reload development.ini".</p>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 ))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
183 self.runLoggingServerAct.triggered.connect(self.__runLoggingServer)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 self.actions.append(self.runLoggingServerAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
186 self.runBrowserAct = E5Action(
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
187 self.tr('Run Web-Browser'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
188 self.tr('Run &Web-Browser'),
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
189 0, 0,
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
190 self, 'pyramid_run_browser')
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
191 self.runBrowserAct.setStatusTip(self.tr(
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
192 'Starts the default Web-Browser with the URL of the Pyramid Web'
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
193 ' server'))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
194 self.runBrowserAct.setWhatsThis(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 """<b>Run Web-Browser</b>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 """<p>Starts the default Web-Browser with the URL of the """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 """Pyramid Web server.</p>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 ))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
199 self.runBrowserAct.triggered.connect(self.__runBrowser)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 self.actions.append(self.runBrowserAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
202 self.runPythonShellAct = E5Action(
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
203 self.tr('Start Pyramid Python Console'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
204 self.tr('Start Pyramid &Python Console'),
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
205 0, 0,
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
206 self, 'pyramid_python_console')
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
207 self.runPythonShellAct.setStatusTip(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 'Starts an interactive Python interpreter'))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
209 self.runPythonShellAct.setWhatsThis(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 """<b>Start Pyramid Python Console</b>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 """<p>Starts an interactive Python interpreter.</p>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 ))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
213 self.runPythonShellAct.triggered.connect(self.__runPythonShell)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 self.actions.append(self.runPythonShellAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 ##############################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 ## setup actions below ##
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 ##############################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
220 self.setupDevelopAct = E5Action(
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
221 self.tr('Setup Development Environment'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
222 self.tr('Setup &Development Environment'),
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
223 0, 0,
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
224 self, 'pyramid_setup_development')
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
225 self.setupDevelopAct.setStatusTip(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 'Setup the Pyramid project in development mode'))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
227 self.setupDevelopAct.setWhatsThis(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 """<b>Setup Development Environment</b>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229 """<p>Setup the Pyramid project in development mode using"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230 """ "python setup.py develop".</p>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 ))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
232 self.setupDevelopAct.triggered.connect(self.__setupDevelop)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 self.actions.append(self.setupDevelopAct)
5
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
234
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
235 ###############################
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
236 ## database actions below ##
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
237 ###############################
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
238
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
239 self.initializeDbAct = E5Action(
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
240 self.tr('Initialize Database'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
241 self.tr('Initialize &Database'),
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
242 0, 0,
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
243 self, 'pyramid_initialize_database')
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
244 self.initializeDbAct.setStatusTip(self.tr(
5
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
245 'Initializes (or re-initializes) the database of the current'
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
246 ' Pyramid project'))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
247 self.initializeDbAct.setWhatsThis(self.tr(
5
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
248 """<b>Initialize Database</b>"""
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
249 """<p>Initializes (or re-initializes) the database of the"""
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
250 """ current Pyramid project.</p>"""
5
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
251 ))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
252 self.initializeDbAct.triggered.connect(self.__initializeDatabase)
5
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
253 self.actions.append(self.initializeDbAct)
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
254
8
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
255 ###############################
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
256 ## show actions below ##
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
257 ###############################
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
258
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
259 self.showViewsAct = E5Action(
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
260 self.tr('Show Matching Views'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
261 self.tr('Show Matching &Views'),
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
262 0, 0,
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
263 self, 'pyramid_show_views')
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
264 self.showViewsAct.setStatusTip(self.tr(
8
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
265 'Show views matching a given URL'))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
266 self.showViewsAct.setWhatsThis(self.tr(
8
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
267 """<b>Show Matching Views</b>"""
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
268 """<p>Show views matching a given URL.</p>"""
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
269 ))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
270 self.showViewsAct.triggered.connect(self.__showMatchingViews)
8
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
271 self.actions.append(self.showViewsAct)
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
272
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
273 self.showRoutesAct = E5Action(
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
274 self.tr('Show Routes'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
275 self.tr('Show &Routes'),
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
276 0, 0,
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
277 self, 'pyramid_show_routes')
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
278 self.showRoutesAct.setStatusTip(self.tr(
9
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
279 'Show all URL dispatch routes used by a Pyramid application'))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
280 self.showRoutesAct.setWhatsThis(self.tr(
13
227a115ab2a1 Added a specialized dialog to show the configured routes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
281 """<b>Show Routes</b>"""
9
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
282 """<p>Show all URL dispatch routes used by a Pyramid application"""
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
283 """ in the order in which they are evaluated.</p>"""
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
284 ))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
285 self.showRoutesAct.triggered.connect(self.__showRoutes)
9
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
286 self.actions.append(self.showRoutesAct)
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
287
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
288 self.showTweensAct = E5Action(
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
289 self.tr('Show Tween Objects'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
290 self.tr('Show &Tween Objects'),
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
291 0, 0,
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
292 self, 'pyramid_show_routes')
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
293 self.showTweensAct.setStatusTip(self.tr(
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
294 'Show all implicit and explicit tween objects used by a Pyramid'
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
295 ' application'))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
296 self.showTweensAct.setWhatsThis(self.tr(
13
227a115ab2a1 Added a specialized dialog to show the configured routes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
297 """<b>Show Tween Objects</b>"""
10
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
298 """<p>Show all implicit and explicit tween objects used by a"""
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
299 """ Pyramid application.</p>"""
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
300 ))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
301 self.showTweensAct.triggered.connect(self.__showTweens)
10
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
302 self.actions.append(self.showTweensAct)
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
303
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
304 ##################################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
305 ## distribution actions below ##
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
306 ##################################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
307
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
308 self.buildDistroAct = E5Action(
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
309 self.tr('Build Distribution'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
310 self.tr('Build &Distribution'),
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
311 0, 0,
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
312 self, 'pyramid_build_distribution')
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
313 self.buildDistroAct.setStatusTip(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 'Builds a distribution file for the Pyramid project'))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
315 self.buildDistroAct.setWhatsThis(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316 """<b>Build Distribution</b>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 """<p>Builds a distribution file for the Pyramid project using"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318 """ "python setup.py sdist".</p>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
319 ))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
320 self.buildDistroAct.triggered.connect(self.__buildDistribution)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 self.actions.append(self.buildDistroAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323 ##################################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324 ## documentation action below ##
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 ##################################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
327 self.documentationAct = E5Action(
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
328 self.tr('Documentation'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
329 self.tr('D&ocumentation'),
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
330 0, 0,
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
331 self, 'pyramid_documentation')
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
332 self.documentationAct.setStatusTip(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
333 'Shows the help viewer with the Pyramid documentation'))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
334 self.documentationAct.setWhatsThis(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335 """<b>Documentation</b>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 """<p>Shows the help viewer with the Pyramid documentation.</p>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337 ))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
338 self.documentationAct.triggered.connect(self.__showDocumentation)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
339 self.actions.append(self.documentationAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
340
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 ##############################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
342 ## about action below ##
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
343 ##############################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
344
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
345 self.aboutPyramidAct = E5Action(
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
346 self.tr('About Pyramid'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
347 self.tr('About P&yramid'),
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
348 0, 0,
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
349 self, 'pyramid_about')
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
350 self.aboutPyramidAct.setStatusTip(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
351 'Shows some information about Pyramid'))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
352 self.aboutPyramidAct.setWhatsThis(self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
353 """<b>About Pyramid</b>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 """<p>Shows some information about Pyramid.</p>"""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355 ))
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
356 self.aboutPyramidAct.triggered.connect(self.__pyramidInfo)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357 self.actions.append(self.aboutPyramidAct)
5
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
358
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
359 self.__setCurrentProject(None)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
360
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
361 def initMenu(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
362 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
363 Public slot to initialize the Pyramid menu.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
364
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
365 @return the menu generated (QMenu)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
366 """
64
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
367 self.__menus = {} # clear menus references
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
368
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
369 menu = QMenu(self.tr('P&yramid'), self.__ui)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370 menu.setTearOffEnabled(True)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
371
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
372 menu.addAction(self.selectProjectAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
373 menu.addSeparator()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
374 menu.addAction(self.runServerAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
375 menu.addAction(self.runLoggingServerAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376 menu.addAction(self.runBrowserAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
377 menu.addSeparator()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
378 menu.addAction(self.createProjectAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
379 menu.addSeparator()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 menu.addAction(self.setupDevelopAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
381 menu.addSeparator()
5
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
382 menu.addAction(self.initializeDbAct)
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
383 menu.addSeparator()
8
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
384 menu.addAction(self.showViewsAct)
9
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
385 menu.addAction(self.showRoutesAct)
10
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
386 menu.addAction(self.showTweensAct)
8
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
387 menu.addSeparator()
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
388 menu.addAction(self.runPythonShellAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
389 menu.addSeparator()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
390 menu.addAction(self.buildDistroAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
391 menu.addSeparator()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
392 menu.addAction(self.documentationAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
393 menu.addSeparator()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
394 menu.addAction(self.aboutPyramidAct)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
395
64
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
396 self.__menus["main"] = menu
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
397
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
398 return menu
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
399
64
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
400 def getMenu(self, name):
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
401 """
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
402 Public method to get a reference to the requested menu.
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
403
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
404 @param name name of the menu (string)
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
405 @return reference to the menu (QMenu) or None, if no
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
406 menu with the given name exists
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
407 """
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
408 if name in self.__menus:
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
409 return self.__menus[name]
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
410 else:
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
411 return None
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
412
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
413 def getMenuNames(self):
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
414 """
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
415 Public method to get the names of all menus.
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
416
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
417 @return menu names (list of string)
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
418 """
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
419 return list(self.__menus.keys())
3b2da211e126 Extended the API to allow for plug-in extension by another plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
420
48
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
421 def registerOpenHook(self):
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
422 """
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
423 Public method to register the open hook to open a translations file
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
424 in a translations editor.
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
425 """
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
426 if self.__hooksInstalled:
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
427 editor = self.__plugin.getPreferences("TranslationsEditor")
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
428 if editor:
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
429 self.__translationsBrowser.addHookMethodAndMenuEntry(
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
430 "open", self.openPOEditor,
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
431 self.tr("Open with {0}").format(
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
432 os.path.basename(editor)))
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
433 else:
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
434 self.__translationsBrowser.removeHookMethod("open")
48
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
435
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
436 def projectOpenedHooks(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
437 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
438 Public method to add our hook methods.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
439 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
440 if self.__e5project.getProjectType() == "Pyramid":
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
441 self.__formsBrowser = \
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
442 e5App().getObject("ProjectBrowser").getProjectBrowser("forms")
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
443 self.__formsBrowser.addHookMethodAndMenuEntry(
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
444 "newForm", self.newForm, self.tr("New template..."))
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
445
81
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
446 self.__e5project.projectLanguageAddedByCode.connect(
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
447 self.__projectLanguageAdded)
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
448 self.__translationsBrowser = \
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
449 e5App().getObject("ProjectBrowser")\
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
450 .getProjectBrowser("translations")
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
451 self.__translationsBrowser.addHookMethodAndMenuEntry(
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
452 "extractMessages", self.extractMessages,
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
453 self.tr("Extract Messages"))
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
454 self.__translationsBrowser.addHookMethodAndMenuEntry(
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
455 "releaseAll", self.compileCatalogs,
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
456 self.tr("Compile All Catalogs"))
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
457 self.__translationsBrowser.addHookMethodAndMenuEntry(
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
458 "releaseSelected", self.compileSelectedCatalogs,
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
459 self.tr("Compile Selected Catalogs"))
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
460 self.__translationsBrowser.addHookMethodAndMenuEntry(
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
461 "generateAll", self.updateCatalogs,
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
462 self.tr("Update All Catalogs"))
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
463 self.__translationsBrowser.addHookMethodAndMenuEntry(
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
464 "generateSelected", self.updateSelectedCatalogs,
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
465 self.tr("Update Selected Catalogs"))
48
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
466
81
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
467 self.__hooksInstalled = True
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
468
3f9074ad9f94 Enabled translation support for Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 80
diff changeset
469 self.registerOpenHook()
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
470
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
471 def projectClosedHooks(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
472 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
473 Public method to remove our hook methods.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
474 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
475 if self.__hooksInstalled:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
476 self.__formsBrowser.removeHookMethod("newForm")
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
477 self.__formsBrowser = None
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
478
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
479 self.__e5project.projectLanguageAddedByCode.disconnect(
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
480 self.__projectLanguageAdded)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
481 self.__translationsBrowser.removeHookMethod("extractMessages")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
482 self.__translationsBrowser.removeHookMethod("releaseAll")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
483 self.__translationsBrowser.removeHookMethod("releaseSelected")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
484 self.__translationsBrowser.removeHookMethod("generateAll")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
485 self.__translationsBrowser.removeHookMethod("generateSelected")
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
486 self.__translationsBrowser.removeHookMethod("open")
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
487 self.__translationsBrowser = None
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
488
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
489 self.__hooksInstalled = False
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
490
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
491 def newForm(self, path):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
492 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
493 Public method to create a new form.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
494
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
495 @param path full directory path for the new form file (string)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
496 """
37
1b089e0fba1e Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
497 from .FormSelectionDialog import FormSelectionDialog
1b089e0fba1e Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
498
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
499 dlg = FormSelectionDialog()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
500 if dlg.exec_() == QDialog.Accepted:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
501 template = dlg.getTemplateText()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
502
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
503 filter = self.tr(
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
504 "Chameleon Templates (*.pt);;"
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
505 "Chameleon Text Templates (*.txt);;"
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
506 "Mako Templates (*.mako);;"
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
507 "Mako Templates (*.mak);;"
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
508 "HTML Files (*.html);;"
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
509 "HTML Files (*.htm);;"
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
510 "All Files (*)")
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
511 fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
512 self.__ui,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
513 self.tr("New Form"),
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
514 path,
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
515 filter,
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
516 None,
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
517 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
518 if fname:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
519 ext = QFileInfo(fname).suffix()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
520 if not ext:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
521 ex = selectedFilter.split("(*")[1].split(")")[0]
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
522 if ex:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
523 fname += ex
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
524
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
525 if os.path.exists(fname):
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
526 res = E5MessageBox.yesNo(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
527 self.__ui,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
528 self.tr("New Form"),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
529 self.tr("""The file already exists! Overwrite"""
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
530 """ it?"""),
19
f4adfe6e51b0 Corrected PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 14
diff changeset
531 icon=E5MessageBox.Warning)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
532 if not res:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
533 # user selected to not overwrite
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
534 return
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
535
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
536 try:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
537 f = open(fname, "w", encoding="utf-8")
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
538 f.write(template)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
539 f.close()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
540 except IOError as e:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
541 E5MessageBox.critical(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
542 self.__ui,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
543 self.tr("New Form"),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
544 self.tr("<p>The new form file <b>{0}</b> could"
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
545 " not be created.<br/> Problem: {1}</p>")
58
6acbfbba1e9d Corrected some code and documentation style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 57
diff changeset
546 .format(fname, e))
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
547 return
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
548
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
549 self.__e5project.appendFile(fname)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
550 self.__formsBrowser.sourceFile.emit(fname)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
551
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
552 ##################################################################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
553 ## methods below implement general functionality
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
554 ##################################################################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
555
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
556 def projectClosed(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
557 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
558 Public method to handle the closing of a project.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
559 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
560 if self.__serverProc is not None:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
561 self.__serverProcFinished()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
562 self.__setCurrentProject(None)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
563
44
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
564 def __getExecutablePaths(self, file):
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
565 """
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
566 Private method to build all full path of an executable file from
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
567 the environment.
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
568
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
569 @param file filename of the executable (string)
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
570 @return list of full executable names, if the executable file is
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
571 accessible via the searchpath defined by the PATH environment
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
572 variable, or an empty list otherwise.
44
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
573 """
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
574 paths = []
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
575
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
576 if os.path.isabs(file):
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
577 if os.access(file, os.X_OK):
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
578 return [file]
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
579 else:
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
580 return []
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
581
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
582 cur_path = os.path.join(os.curdir, file)
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
583 if os.path.exists(cur_path):
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
584 if os.access(cur_path, os.X_OK):
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
585 paths.append(cur_path)
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
586
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
587 path = os.getenv('PATH')
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
588
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
589 # environment variable not defined
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
590 if path is not None:
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
591 dirs = path.split(os.pathsep)
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
592 for dir in dirs:
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
593 exe = os.path.join(dir, file)
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
594 if os.access(exe, os.X_OK) and exe not in paths:
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
595 paths.append(exe)
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
596
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
597 return paths
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
598
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
599 def supportedPythonVariants(self):
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
600 """
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
601 Public method to get the supported Python variants.
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
602
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
603 @return list of supported Python variants (list of strings)
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
604 """
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
605 variants = []
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
606 cmd = "pcreate"
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
607
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
608 for variant in 'Python2', 'Python3':
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
609 virtEnv = self.__getVirtualEnvironment(variant)
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
610 if virtEnv:
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
611 fullCmd = self.getPyramidCommand(cmd, variant)
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
612 if fullCmd != cmd:
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
613 variants.append(variant)
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
614 else:
91
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
615 fullCmd = self.getPyramidCommand(cmd, variant)
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
616 if isWindowsPlatform():
91
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
617 if fullCmd != cmd:
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
618 variants.append(variant)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
619 else:
44
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
620 try:
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
621 fullCmds = Utilities.getExecutablePaths(cmd)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
622 except AttributeError:
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
623 fullCmds = self.__getExecutablePaths(cmd)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
624 for fullCmd in fullCmds:
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
625 try:
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
626 f = open(fullCmd, 'r', encoding='utf-8')
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
627 l0 = f.readline()
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
628 f.close()
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
629 except (IOError, OSError):
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
630 l0 = ""
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
631 if variant.lower() in l0.lower() or \
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
632 "{0}.".format(variant[-1]) in l0 or \
57
e654970c913e Merged with code styles issues cleaned.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 56 54
diff changeset
633 (variant == "Python2" and
58
6acbfbba1e9d Corrected some code and documentation style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 57
diff changeset
634 "python3" not in l0.lower() and
6acbfbba1e9d Corrected some code and documentation style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 57
diff changeset
635 "python" in l0.lower()):
6acbfbba1e9d Corrected some code and documentation style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 57
diff changeset
636 variants.append(variant)
6acbfbba1e9d Corrected some code and documentation style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 57
diff changeset
637 break
44
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
638
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
639 return variants
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
640
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
641 def __getVirtualEnvironment(self, language=""):
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
642 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
643 Private method to get the path of the virtual environment.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
644
44
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
645 @param language Python variant to get the virtual environment
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
646 for (string, one of '', 'Python2' or 'Python3')
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
647 @return path of the virtual environment (string)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
648 """
44
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
649 if not language:
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
650 language = self.__e5project.getProjectLanguage()
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
651 if language == "Python3":
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
652 virtEnv = self.__plugin.getPreferences("VirtualEnvironmentPy3")
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
653 elif language == "Python2":
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
654 virtEnv = self.__plugin.getPreferences("VirtualEnvironmentPy2")
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
655 else:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
656 virtEnv = ""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
657 if virtEnv and not os.path.exists(virtEnv):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
658 virtEnv = ""
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
659 return virtEnv
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
660
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
661 def __getDebugEnvironment(self, language=""):
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
662 """
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
663 Private method to get the path of the debugger environment.
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
664
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
665 @param language Python variant to get the debugger environment
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
666 for (string, one of '', 'Python2' or 'Python3')
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
667 @return path of the debugger environment (string)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
668 """
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
669 if not language:
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
670 language = self.__e5project.getProjectLanguage()
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
671 if language == "Python3":
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
672 debugEnv = Preferences.getDebugger("Python3Interpreter")
66
c8f88c9e4453 Fixed an issue finding the right Python environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 64
diff changeset
673 if not debugEnv and sys.version_info[0] == 3:
c8f88c9e4453 Fixed an issue finding the right Python environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 64
diff changeset
674 debugEnv = sys.executable
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
675 elif language == "Python2":
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
676 debugEnv = Preferences.getDebugger("PythonInterpreter")
66
c8f88c9e4453 Fixed an issue finding the right Python environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 64
diff changeset
677 if not debugEnv and sys.version_info[0] == 2:
c8f88c9e4453 Fixed an issue finding the right Python environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 64
diff changeset
678 debugEnv = sys.executable
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
679 else:
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
680 debugEnv = sys.executable
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
681 debugEnv = os.path.dirname(debugEnv)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
682 if debugEnv and not os.path.exists(debugEnv):
66
c8f88c9e4453 Fixed an issue finding the right Python environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 64
diff changeset
683 if (language == "Python3" and sys.version_info[0] == 3) or \
c8f88c9e4453 Fixed an issue finding the right Python environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 64
diff changeset
684 (language == "Python2" and sys.version_info[0] == 2):
c8f88c9e4453 Fixed an issue finding the right Python environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 64
diff changeset
685 debugEnv = sys.exec_prefix
c8f88c9e4453 Fixed an issue finding the right Python environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 64
diff changeset
686 else:
c8f88c9e4453 Fixed an issue finding the right Python environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 64
diff changeset
687 debugEnv = ""
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
688 return debugEnv
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
689
44
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
690 def getPyramidCommand(self, cmd, language=""):
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
691 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
692 Public method to build a Pyramid command.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
693
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
694 @param cmd command (string)
44
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
695 @param language Python variant to get the virtual environment
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
696 for (string, one of '', 'Python2' or 'Python3')
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
697 @return full pyramid command (string)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
698 """
44
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
699 virtualEnv = self.__getVirtualEnvironment(language)
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
700 if isWindowsPlatform() and not virtualEnv:
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
701 virtualEnv = self.__getDebugEnvironment(language)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
702 if isWindowsPlatform():
91
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
703 fullCmds = [
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
704 os.path.join(virtualEnv, "Scripts", cmd + '.exe'),
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
705 os.path.join(virtualEnv, "bin", cmd + '.exe'),
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
706 cmd # fall back to just cmd
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
707 ]
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
708 for cmd in fullCmds:
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
709 if os.path.exists(cmd):
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
710 break
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
711 else:
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
712 fullCmds = [
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
713 os.path.join(virtualEnv, "bin", cmd),
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
714 os.path.join(virtualEnv, "local", "bin", cmd),
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
715 Utilities.getExecutablePath(cmd),
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
716 cmd # fall back to just cmd
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
717 ]
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
718 for cmd in fullCmds:
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
719 if os.path.exists(cmd):
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
720 break
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
721 return cmd
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
722
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
723 def getPythonCommand(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
724 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
725 Public method to build the Python command.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
726
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
727 @return python command (string)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
728 """
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
729 language = self.__e5project.getProjectLanguage()
91
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
730 virtualEnv = self.__getVirtualEnvironment()
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
731 if isWindowsPlatform():
91
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
732 pythonExeList = ["python.exe", "pypy.exe"]
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
733 if not virtualEnv:
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
734 virtualEnv = self.__getDebugEnvironment(language)
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
735 for pythonExe in pythonExeList:
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
736 for python in [
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
737 os.path.join(virtualEnv, "Scripts", pythonExe),
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
738 os.path.join(virtualEnv, "bin", pythonExe),
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
739 os.path.join(virtualEnv, pythonExe)
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
740 ]:
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
741 if os.path.exists(python):
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
742 break
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
743 else:
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
744 python = ""
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
745
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
746 if python:
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
747 break
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
748 else:
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
749 python = ""
39
94e448a362b2 Bug fixes for better Python2 and Python3 support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 37
diff changeset
750 else:
94e448a362b2 Bug fixes for better Python2 and Python3 support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 37
diff changeset
751 if language == "Python3":
91
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
752 pythonExeList = ["python3", "pypy3"]
39
94e448a362b2 Bug fixes for better Python2 and Python3 support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 37
diff changeset
753 elif language == "Python2":
91
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
754 pythonExeList = ["python2", "pypy2"]
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
755 if not virtualEnv:
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
756 virtualEnv = self.__getDebugEnvironment(language)
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
757
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
758 for pythonExe in pythonExeList:
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
759 for python in [
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
760 os.path.join(virtualEnv, "bin", pythonExe),
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
761 # omit the version character
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
762 os.path.join(virtualEnv, "bin", pythonExe)[:-1],
104
3e34b23890af Fixed an issue finding the python executable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 99
diff changeset
763 os.path.join(virtualEnv, pythonExe),
3e34b23890af Fixed an issue finding the python executable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 99
diff changeset
764 # omit the version character
3e34b23890af Fixed an issue finding the python executable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 99
diff changeset
765 os.path.join(virtualEnv, pythonExe)[:-1],
91
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
766 ]:
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
767 if os.path.exists(python):
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
768 break
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
769 else:
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
770 python = ""
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
771
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
772 if python:
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
773 break
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
774 else:
91
893e1f0baf23 Added support for pypy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
775 python = ""
39
94e448a362b2 Bug fixes for better Python2 and Python3 support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 37
diff changeset
776
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
777 return python
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
778
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
779 def __pyramidInfo(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
780 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
781 Private slot to show some info about Pyramid.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
782 """
95
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
783 version = self.getPyramidVersionString()
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
784 url = "http://www.pylonsproject.org/projects/pyramid/about"
44
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
785
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
786 msgBox = E5MessageBox.E5MessageBox(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
787 E5MessageBox.Question,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
788 self.tr("About Pyramid"),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
789 self.tr(
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
790 "<p>Pyramid is a high-level Python Web framework that"
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
791 " encourages rapid development and clean, pragmatic"
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
792 " design.</p>"
44
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
793 "<p><table>"
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
794 "<tr><td>Version:</td><td>{0}</td></tr>"
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
795 "<tr><td>URL:</td><td><a href=\"{1}\">"
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
796 "{1}</a></td></tr>"
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
797 "</table></p>"
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
798 ).format(version, url),
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
799 modal=True,
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
800 buttons=E5MessageBox.Ok)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
801 msgBox.setIconPixmap(UI.PixmapCache.getPixmap(
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
802 os.path.join("ProjectPyramid", "icons", "pyramid64.png")))
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
803 msgBox.exec_()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
804
95
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
805 def getPyramidVersionString(self):
44
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
806 """
95
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
807 Public method to get the Pyramid version as a string.
44
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
808
95
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
809 @return Pyramid version
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
810 @rtype str
44
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
811 """
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
812 if not self.__pyramidVersion:
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
813 cmd = self.getPyramidCommand("pcreate")
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
814 if isWindowsPlatform():
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
815 cmd = os.path.join(os.path.dirname(cmd), "pcreate-script.py")
44
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
816 try:
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
817 f = open(cmd, 'r', encoding="utf-8")
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
818 lines = f.read().splitlines()
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
819 f.close()
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
820 for line in lines:
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
821 if line.startswith("__requires__"):
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
822 # sample: __requires__ = 'pyramid==1.4'
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
823 vers = line.strip().split()[-1][1:-1].split("==")[1]
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
824 self.__pyramidVersion = vers
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
825 except (IOError, OSError):
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
826 self.__pyramidVersion = ""
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
827
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
828 return self.__pyramidVersion
989c961c33ab Extended the Python variant detection to only offer the Pyramid project type, if it is found for the respective Python.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
829
95
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
830 def getPyramidVersion(self):
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
831 """
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
832 Public method to get the Pyramid version as a tuple.
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
833
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
834 @return Pyramid version
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
835 @rtype tuple of int
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
836 """
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
837 pyramidVersionStr = self.getPyramidVersionString()
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
838 pyramidVersionList = []
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
839 if pyramidVersionStr:
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
840 for part in pyramidVersionStr.split("."):
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
841 try:
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
842 pyramidVersionList.append(int(part))
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
843 except ValueError:
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
844 pyramidVersionList.append(part)
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
845
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
846 return tuple(pyramidVersionList)
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
847
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
848 def isSpawningConsole(self, consoleCmd):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
849 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
850 Public method to check, if the given console is a spawning console.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
851
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
852 @param consoleCmd console command (string)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
853 @return tuple of two entries giving an indication, if the console
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
854 is spawning (boolean) and the (possibly) cleaned console command
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
855 (string)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
856 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
857 if consoleCmd and consoleCmd[0] == '@':
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
858 return (True, consoleCmd[1:])
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
859 else:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
860 return (False, consoleCmd)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
861
95
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
862 def __adjustWorkingDirectory(self, args, wd):
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
863 """
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
864 Private method to adjust the working directory in the arguments list.
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
865
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
866 @param args list of arguments to be modified
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
867 @type list of str
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
868 @param wd working directory
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
869 @type str
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
870 """
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
871 if args[0].endswith("konsole") and "--workdir" in args:
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
872 index = args.index("--workdir")
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
873 args[index + 1] = wd
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
874 elif args[0].endswith(("gnome-terminal", "mate-terminal")):
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
875 for index in range(len(args)):
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
876 if args[index].startswith("--working-directory="):
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
877 args[index] = "--working-directory={0}".format(wd)
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
878 break
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
879
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
880 ##################################################################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
881 ## slots below implement creation functions
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
882 ##################################################################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
883
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
884 def __createProject(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
885 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
886 Private slot to create a new Pyramid project.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
887 """
37
1b089e0fba1e Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
888 from .CreateParametersDialog import CreateParametersDialog
1b089e0fba1e Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
889
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
890 dlg = CreateParametersDialog(self)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
891 if dlg.exec_() == QDialog.Accepted:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
892 scaffold, project, overwrite, simulate = dlg.getData()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
893
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
894 cmd = self.getPyramidCommand("pcreate")
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
895 args = []
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
896 if overwrite:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
897 args.append("--overwrite")
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
898 else:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
899 args.append("--interactive")
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
900 if simulate:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
901 args.append("--simulate")
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
902 args.append("--scaffold={0}".format(scaffold))
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
903 args.append(project)
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
904 dlg = PyramidDialog(self.tr("Create Pyramid Project"),
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
905 linewrap=False, parent=self.__ui)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
906 if dlg.startProcess(cmd, args, self.__e5project.getProjectPath()):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
907 dlg.exec_()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
908 if dlg.normalExit() and not simulate:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
909 # search for files created by pcreate and add them to the
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
910 # project
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
911 projectPath = os.path.join(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
912 self.__e5project.getProjectPath(), project)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
913 for entry in os.walk(projectPath):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
914 for fileName in entry[2]:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
915 fullName = os.path.join(entry[0], fileName)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
916 self.__e5project.appendFile(fullName)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
917
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
918 # create the base directory for translations
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
919 i18nPath = os.path.join(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
920 projectPath, project.lower(), "i18n")
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
921 if not os.path.exists(i18nPath):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
922 os.makedirs(i18nPath)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
923 self.__e5project.setDirty(True)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
924
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
925 self.__setCurrentProject(project)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
926
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
927 ##################################################################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
928 ## methods below implement site related functions
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
929 ##################################################################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
930
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
931 def __findProjects(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
932 """
19
f4adfe6e51b0 Corrected PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 14
diff changeset
933 Private method to determine the relative path of all Pyramid
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
934 projects (= top level dirs).
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
935
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
936 @return list of projects (list of string)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
937 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
938 projects = []
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
939 ppath = self.__e5project.getProjectPath()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
940 for entry in os.listdir(ppath):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
941 if entry[0] not in "._" and \
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
942 os.path.isdir(os.path.join(ppath, entry)):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
943 projects.append(entry)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
944 return projects
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
945
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
946 def __selectProject(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
947 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
948 Private method to select a Pyramid project to work with.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
949 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
950 projects = self.__findProjects()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
951 if len(projects) == 0:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
952 project = None
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
953 elif len(projects) == 1:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
954 project = projects[0]
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
955 else:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
956 if self.__currentProject is not None:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
957 try:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
958 cur = projects.index(self.__currentProject)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
959 except ValueError:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
960 cur = 0
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
961 else:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
962 cur = 0
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
963 project, ok = QInputDialog.getItem(
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
964 self.__ui,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
965 self.tr("Select Pyramid Project"),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
966 self.tr("Select the Pyramid project to work with."),
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
967 projects,
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
968 cur, False)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
969 if not ok:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
970 projects = None
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
971 self.__setCurrentProject(project)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
972
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
973 def __projectPath(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
974 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
975 Private method to calculate the full path of the Pyramid project.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
976
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
977 @exception PyramidNoProjectSelectedException raised, if no project is
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
978 selected
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
979 @return path of the project (string)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
980 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
981 if self.__currentProject is None:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
982 self.__selectProject()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
983
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
984 if self.__currentProject is None:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
985 raise PyramidNoProjectSelectedException
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
986 else:
19
f4adfe6e51b0 Corrected PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 14
diff changeset
987 return os.path.join(self.__e5project.getProjectPath(),
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
988 self.__currentProject)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
989
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
990 def __setCurrentProject(self, project):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
991 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
992 Private slot to set the current project.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
993
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
994 @param project name of the project (string)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
995 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
996 if project is not None and len(project) == 0:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
997 self.__currentProject = None
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
998 else:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
999 self.__currentProject = project
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1000
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1001 if self.__currentProject is None:
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1002 curProject = self.tr("None")
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1003 else:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1004 curProject = self.__currentProject
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1005 self.selectProjectAct.setText(
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1006 self.tr('&Current Pyramid Project ({0})').format(curProject))
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1007
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1008 if self.__currentProject is None:
88
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1009 try:
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1010 self.__e5project.setTranslationPattern("")
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1011 except AttributeError:
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1012 # backward compatibility
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1013 self.__e5project.pdata["TRANSLATIONPATTERN"] = []
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1014 else:
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1015 lowerProject = self.__project().lower()
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1016 config = configparser.ConfigParser()
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1017 config.read(os.path.join(self.__projectPath(), "setup.cfg"))
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1018 try:
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1019 outputDir = config.get("init_catalog", "output_dir")
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1020 except (configparser.NoOptionError, configparser.NoSectionError):
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1021 outputDir = '{0}/locale'.format(lowerProject)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1022 try:
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1023 domain = config.get("init_catalog", "domain")
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1024 except (configparser.NoOptionError, configparser.NoSectionError):
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1025 domain = lowerProject
88
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1026 try:
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1027 self.__e5project.setTranslationPattern(
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1028 os.path.join(project, outputDir, "%language%",
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1029 "LC_MESSAGES", "{0}.po".format(domain))
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1030 )
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1031 except AttributeError:
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1032 # backward compatibility
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1033 self.__e5project.pdata["TRANSLATIONPATTERN"] = [
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1034 os.path.join(project, outputDir, "%language%",
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1035 "LC_MESSAGES", "{0}.po".format(domain))
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1036 ]
5
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1037
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1038 if self.__currentProject is None:
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1039 self.initializeDbAct.setEnabled(False)
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1040 else:
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1041 initCmd = self.__getInitDbCommand()
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1042 self.initializeDbAct.setEnabled(os.path.exists(initCmd))
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1043
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1044 def __project(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1045 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1046 Private method to get the name of the current Pyramid project.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1047
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1048 @exception PyramidNoProjectSelectedException raised, if no project is
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1049 selected
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1050 @return name of the project (string)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1051 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1052 if self.__currentProject is None:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1053 self.__selectProject()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1054
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1055 if self.__currentProject is None:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1056 raise PyramidNoProjectSelectedException
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1057 else:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1058 return self.__currentProject
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1059
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1060 ##################################################################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1061 ## slots below implement run functions
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1062 ##################################################################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1063
19
f4adfe6e51b0 Corrected PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 14
diff changeset
1064 def __runServer(self, logging=False):
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1065 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1066 Private slot to start the Pyramid Web server.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1067
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1068 @param logging flag indicating to enable logging (boolean)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1069 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1070 consoleCmd = self.isSpawningConsole(
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1071 self.__plugin.getPreferences("ConsoleCommand"))[1]
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1072 if consoleCmd:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1073 try:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1074 projectPath = self.__projectPath()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1075 except PyramidNoProjectSelectedException:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1076 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1077 self.__ui,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1078 self.tr('Run Server'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1079 self.tr('No current Pyramid project selected or no'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1080 ' Pyramid project created yet. Aborting...'))
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1081 return
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1082
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1083 args = Utilities.parseOptionString(consoleCmd)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1084 args[0] = Utilities.getExecutablePath(args[0])
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1085 args.append(self.getPyramidCommand("pserve"))
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1086 if logging:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1087 args.append("--log-file=server.log")
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1088 args.append("--reload")
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1089 args.append(os.path.join(projectPath, "development.ini"))
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1090
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1091 if isWindowsPlatform():
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1092 serverProcStarted, pid = \
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1093 QProcess.startDetached(args[0], args[1:], projectPath)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1094 else:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1095 if self.__serverProc is not None:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1096 self.__serverProcFinished()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1097
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1098 self.__serverProc = QProcess()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1099 self.__serverProc.finished.connect(self.__serverProcFinished)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1100 self.__serverProc.setWorkingDirectory(projectPath)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1101 self.__serverProc.start(args[0], args[1:])
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1102 serverProcStarted = self.__serverProc.waitForStarted()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1103 if not serverProcStarted:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1104 E5MessageBox.critical(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1105 self.__ui,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1106 self.tr('Process Generation Error'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1107 self.tr('The Pyramid server could not be started.'))
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1108
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1109 def __runLoggingServer(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1110 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1111 Private slot to start the Pyramid Web server with logging.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1112 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1113 self.__runServer(True)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1114
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1115 def __serverProcFinished(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1116 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1117 Private slot connected to the finished signal.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1118 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1119 if self.__serverProc is not None and \
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1120 self.__serverProc.state() != QProcess.NotRunning:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1121 self.__serverProc.terminate()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1122 QTimer.singleShot(2000, self.__serverProc.kill)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1123 self.__serverProc.waitForFinished(3000)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1124 self.__serverProc = None
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1125
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1126 def __runBrowser(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1127 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1128 Private slot to start the default web browser with the server URL.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1129 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1130 try:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1131 projectPath = self.__projectPath()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1132 except PyramidNoProjectSelectedException:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1133 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1134 self.__ui,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1135 self.tr('Run Web-Browser'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1136 self.tr('No current Pyramid project selected or no Pyramid'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1137 ' project created yet. Aborting...'))
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1138 return
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1139
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1140 config = configparser.ConfigParser()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1141 config.read(os.path.join(projectPath, "development.ini"))
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1142 try:
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1143 port = config.get("server:main", "port")
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1144 except (configparser.NoOptionError, configparser.NoSectionError):
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1145 port = "8080"
95
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
1146 url = "http://localhost:{0}".format(port)
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
1147 if self.__plugin.getPreferences("UseExternalBrowser"):
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
1148 res = QDesktopServices.openUrl(QUrl(url))
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
1149 if not res:
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
1150 E5MessageBox.critical(
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
1151 self.__ui,
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
1152 self.tr('Run Web-Browser'),
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
1153 self.tr('Could not start the web-browser for the URL'
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
1154 ' "{0}".').format(url.toString()))
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
1155 else:
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
1156 self.__ui.launchHelpViewer(url)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1157
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1158 def __runPythonShell(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1159 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1160 Private slot to start a Python console for a Pyramid project.
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1161 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1162 consoleCmd = self.isSpawningConsole(
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1163 self.__plugin.getPreferences("ConsoleCommand"))[1]
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1164 if consoleCmd:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1165 try:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1166 projectPath = self.__projectPath()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1167 except PyramidNoProjectSelectedException:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1168 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1169 self.__ui,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1170 self.tr('Start Pyramid Python Console'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1171 self.tr('No current Pyramid project selected or no'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1172 ' Pyramid project created yet. Aborting...'))
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1173 return
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1174
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1175 args = Utilities.parseOptionString(consoleCmd)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1176 args[0] = Utilities.getExecutablePath(args[0])
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1177 args.append(self.getPyramidCommand("pshell"))
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1178 language = self.__e5project.getProjectLanguage()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1179 if language == "Python2":
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1180 consoleType = self.__plugin.getPreferences(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1181 "Python2ConsoleType")
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1182 else:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1183 consoleType = self.__plugin.getPreferences(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1184 "Python3ConsoleType")
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1185 args.append("--python-shell={0}".format(consoleType))
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1186 args.append(os.path.join(projectPath, "development.ini"))
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1187
95
2b0933087db9 Made these changes:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
1188 self.__adjustWorkingDirectory(args, projectPath)
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1189 started, pid = QProcess.startDetached(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1190 args[0], args[1:], projectPath)
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1191 if not started:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1192 E5MessageBox.critical(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1193 self.__ui,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1194 self.tr('Process Generation Error'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1195 self.tr('The Pyramid Shell process could not be'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1196 ' started.'))
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1197
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1198 ##################################################################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1199 ## slots below implement setup functions
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1200 ##################################################################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1201
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1202 def __setupDevelop(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1203 """
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1204 Private slot to set up the development environment for the current
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1205 project.
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1206 """
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1207 title = self.tr("Setup Development Environment")
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1208 try:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1209 wd = self.__projectPath()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1210 except PyramidNoProjectSelectedException:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1211 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1212 self.__ui,
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1213 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1214 self.tr('No current Pyramid project selected or no Pyramid'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1215 ' project created yet. Aborting...'))
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1216 return
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1217
5
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1218 cmd = self.getPythonCommand()
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1219 args = []
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1220 args.append("setup.py")
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1221 args.append("develop")
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1222
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1223 dia = PyramidDialog(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1224 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1225 msgSuccess=self.tr("Pyramid development environment setup"
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1226 " successfully."))
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1227 res = dia.startProcess(cmd, args, wd)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1228 if res:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1229 dia.exec_()
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1230 initCmd = self.__getInitDbCommand()
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1231 self.initializeDbAct.setEnabled(os.path.exists(initCmd))
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1232
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1233 ##################################################################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1234 ## slots below implement distribution functions
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1235 ##################################################################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1236
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1237 def __buildDistribution(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1238 """
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1239 Private slot to build a distribution file for the current Pyramid
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1240 project.
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1241 """
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1242 title = self.tr("Build Distribution File")
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1243 try:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1244 projectPath = self.__projectPath()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1245 except PyramidNoProjectSelectedException:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1246 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1247 self.__ui,
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1248 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1249 self.tr('No current Pyramid project selected or no Pyramid'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1250 ' project created yet. Aborting...'))
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1251 return
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1252
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1253 from .DistributionTypeSelectionDialog import \
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1254 DistributionTypeSelectionDialog
37
1b089e0fba1e Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
1255
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1256 dlg = DistributionTypeSelectionDialog(self, projectPath, self.__ui)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1257 if dlg.exec_() == QDialog.Accepted:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1258 formats = dlg.getFormats()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1259 cmd = self.getPythonCommand()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1260 args = []
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1261 args.append("setup.py")
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1262 args.append("sdist")
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1263 if formats:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1264 args.append("--formats={0}".format(','.join(formats)))
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1265
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1266 dia = PyramidDialog(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1267 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1268 msgSuccess=self.tr("Python distribution file built"
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1269 " successfully."))
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1270 res = dia.startProcess(cmd, args, projectPath)
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1271 if res:
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1272 dia.exec_()
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1273
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1274 ##################################################################
5
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1275 ## slots below implement database functions
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1276 ##################################################################
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1277
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1278 def __getInitDbCommand(self):
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1279 """
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1280 Private method to create the path to the initialization script.
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1281
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1282 @return path to the initialization script (string)
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1283 """
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1284 try:
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1285 cmd = "initialize_{0}_db".format(self.__project())
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1286 return self.getPyramidCommand(cmd)
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1287 except PyramidNoProjectSelectedException:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1288 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1289 self.__ui,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1290 self.tr("Initialize Database"),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1291 self.tr('No current Pyramid project selected or no Pyramid'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1292 ' project created yet. Aborting...'))
5
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1293 return ""
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1294
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1295 def __initializeDatabase(self):
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1296 """
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1297 Private slot to initialize the database of the Pyramid project.
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1298 """
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1299 title = self.tr("Initialize Database")
5
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1300 try:
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1301 projectPath = self.__projectPath()
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1302 except PyramidNoProjectSelectedException:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1303 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1304 self.__ui,
5
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1305 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1306 self.tr('No current Pyramid project selected or no Pyramid'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1307 ' project created yet. Aborting...'))
5
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1308 return
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1309
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1310 cmd = self.__getInitDbCommand()
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1311 args = []
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1312 args.append("development.ini")
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1313
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1314 dia = PyramidDialog(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1315 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1316 msgSuccess=self.tr("Database initialized successfully."))
5
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1317 res = dia.startProcess(cmd, args, projectPath)
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1318 if res:
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1319 dia.exec_()
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1320
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1321 ##################################################################
8
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1322 ## slots below implement various debugging functions
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1323 ##################################################################
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1324
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1325 def __showMatchingViews(self):
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1326 """
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1327 Private slot showing all views that would match a given URL.
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1328 """
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1329 title = self.tr("Show Matching Views")
8
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1330 try:
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1331 projectPath = self.__projectPath()
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1332 except PyramidNoProjectSelectedException:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1333 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1334 self.__ui,
8
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1335 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1336 self.tr('No current Pyramid project selected or no Pyramid'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1337 ' project created yet. Aborting...'))
8
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1338 return
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1339
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1340 url, ok = QInputDialog.getText(
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1341 self.__ui,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1342 self.tr("Show Matching Views"),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1343 self.tr("Enter the URL to be matched:"),
8
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1344 QLineEdit.Normal,
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1345 "/")
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1346 if not ok or url == "":
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1347 return
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1348
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1349 cmd = self.getPyramidCommand("pviews")
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1350 args = []
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1351 args.append("development.ini")
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1352 args.append(url)
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1353
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1354 dia = PyramidDialog(title, fixed=True, linewrap=False)
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1355 res = dia.startProcess(cmd, args, projectPath)
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1356 if res:
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1357 dia.exec_()
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1358
9
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1359 def __showRoutes(self):
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1360 """
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1361 Private slot showing all URL dispatch routes.
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1362 """
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1363 title = self.tr("Show Routes")
9
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1364 try:
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1365 projectPath = self.__projectPath()
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1366 except PyramidNoProjectSelectedException:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1367 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1368 self.__ui,
9
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1369 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1370 self.tr('No current Pyramid project selected or no Pyramid'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1371 ' project created yet. Aborting...'))
9
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1372 return
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1373
37
1b089e0fba1e Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
1374 from .PyramidRoutesDialog import PyramidRoutesDialog
1b089e0fba1e Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
1375
13
227a115ab2a1 Added a specialized dialog to show the configured routes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1376 dia = PyramidRoutesDialog(self)
227a115ab2a1 Added a specialized dialog to show the configured routes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1377 res = dia.start(projectPath)
9
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1378 if res:
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1379 dia.exec_()
0ebc5b152c6c Added code for the 'proutes' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1380
10
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1381 def __showTweens(self):
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1382 """
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1383 Private slot showing all implicit and explicit tween objects.
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1384 """
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1385 title = self.tr("Show Tween Objects")
10
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1386 try:
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1387 projectPath = self.__projectPath()
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1388 except PyramidNoProjectSelectedException:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1389 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1390 self.__ui,
10
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1391 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1392 self.tr('No current Pyramid project selected or no Pyramid'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1393 ' project created yet. Aborting...'))
10
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1394 return
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1395
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1396 cmd = self.getPyramidCommand("ptweens")
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1397 args = []
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1398 args.append("development.ini")
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1399
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1400 dia = PyramidDialog(title, fixed=True, linewrap=False)
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1401 res = dia.startProcess(cmd, args, projectPath)
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1402 if res:
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1403 dia.exec_()
3330f7087434 Added code for the 'ptweens' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
1404
8
ac62d7dc6a37 Added code for the 'pviews' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1405 ##################################################################
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1406 ## slots below implement documentation functions
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1407 ##################################################################
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1408
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1409 def __showDocumentation(self):
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1410 """
5
455dc39cd212 Added action to initialize a Pyramid project database.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1411 Private slot to show the helpviewer with the Pyramid documentation.
2
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1412 """
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1413 page = self.__plugin.getPreferences("PyramidDocUrl")
e691c51ab655 Implemented the required command actions for supporting development of Pyramid projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1414 self.__ui.launchHelpViewer(page)
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1415
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1416 ##################################################################
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1417 ## slots below implement translation functions
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1418 ##################################################################
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1419
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1420 def __getLocale(self, filename):
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1421 """
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1422 Private method to extract the locale out of a file name.
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1423
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1424 @param filename name of the file used for extraction (string)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1425 @return extracted locale (string) or None
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1426 """
88
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1427 if self.__e5project.getTranslationPattern():
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1428 # On Windows, path typically contains backslashes. This leads
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1429 # to an invalid seach pattern '...\(' because the opening bracked
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1430 # will be escaped.
88
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1431 pattern = self.__e5project.getTranslationPattern()
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1432 pattern = os.path.normpath(pattern)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1433 pattern = pattern.replace("%language%", "(.*?)")
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1434 pattern = pattern.replace('\\', '\\\\')
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1435 match = re.search(pattern, filename)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1436 if match is not None:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1437 loc = match.group(1)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1438 return loc
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1439 else:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1440 loc = None
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1441 else:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1442 loc = None
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1443
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1444 return loc
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1445
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1446 def __normalizeList(self, filenames):
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1447 """
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1448 Private method to normalize a list of file names.
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1449
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1450 @param filenames list of file names to normalize (list of string)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1451 @return normalized file names (list of string)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1452 """
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1453 nfilenames = []
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1454 for filename in filenames:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1455 if filename.endswith(".mo"):
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1456 filename = filename.replace(".mo", ".po")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1457 if filename not in nfilenames:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1458 nfilenames.append(filename)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1459
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1460 return nfilenames
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1461
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1462 def __projectFilteredList(self, filenames):
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1463 """
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1464 Private method to filter a list of file names by Pyramid project.
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1465
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1466 @param filenames list of file names to be filtered (list of string)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1467 @return file names belonging to the current site (list of string)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1468 """
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1469 project = self.__project()
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1470 nfilenames = []
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1471 for filename in filenames:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1472 if filename.startswith(project + os.sep):
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1473 nfilenames.append(filename)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1474
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1475 return nfilenames
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1476
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1477 def extractMessages(self):
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1478 """
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1479 Public method to extract the messages catalog template file.
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1480 """
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1481 title = self.tr("Extract messages")
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1482 try:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1483 projectPath = self.__projectPath()
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1484 except PyramidNoProjectSelectedException:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1485 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1486 self.__ui,
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1487 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1488 self.tr('No current Pyramid project selected or no Pyramid'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1489 ' project created yet. Aborting...'))
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1490 return
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1491
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1492 config = configparser.ConfigParser()
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1493 config.read(os.path.join(projectPath, "setup.cfg"))
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1494 try:
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1495 potFile = config.get("extract_messages", "output_file")
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1496 except configparser.NoSectionError:
58
6acbfbba1e9d Corrected some code and documentation style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 57
diff changeset
1497 E5MessageBox.warning(
6acbfbba1e9d Corrected some code and documentation style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 57
diff changeset
1498 self.__ui,
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1499 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1500 self.tr('No setup.cfg found or no "extract_messages"'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1501 ' section found in setup.cfg.'))
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1502 return
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1503 except configparser.NoOptionError:
58
6acbfbba1e9d Corrected some code and documentation style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 57
diff changeset
1504 E5MessageBox.warning(
6acbfbba1e9d Corrected some code and documentation style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 57
diff changeset
1505 self.__ui,
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1506 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1507 self.tr('No "output_file" option found in setup.cfg.'))
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1508 return
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1509
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1510 try:
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1511 path = os.path.join(projectPath, os.path.dirname(potFile))
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1512 os.makedirs(path)
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1513 except OSError:
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1514 pass
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1515
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1516 cmd = self.getPythonCommand()
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1517 args = []
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1518 args.append("setup.py")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1519 args.append("extract_messages")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1520
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1521 dia = PyramidDialog(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1522 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1523 msgSuccess=self.tr("\nMessages extracted successfully."))
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1524 res = dia.startProcess(cmd, args, projectPath)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1525 if res:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1526 dia.exec_()
56
c7adc68350dd Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
1527 self.__e5project.appendFile(os.path.join(projectPath, potFile))
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1528
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1529 def __projectLanguageAdded(self, code):
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1530 """
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1531 Private slot handling the addition of a new language.
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1532
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1533 @param code language code of the new language (string)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1534 """
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1535 title = self.tr("Initializing message catalog for '{0}'")\
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1536 .format(code)
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1537 try:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1538 projectPath = self.__projectPath()
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1539 except PyramidNoProjectSelectedException:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1540 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1541 self.__ui,
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1542 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1543 self.tr('No current Pyramid project selected or no Pyramid'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1544 ' project created yet. Aborting...'))
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1545 return
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1546
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1547 cmd = self.getPythonCommand()
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1548 args = []
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1549 args.append("setup.py")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1550 args.append("init_catalog")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1551 args.append("-l")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1552 args.append(code)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1553
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1554 dia = PyramidDialog(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1555 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1556 msgSuccess=self.tr("\nMessage catalog initialized"
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1557 " successfully."))
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1558 res = dia.startProcess(cmd, args, projectPath)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1559 if res:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1560 dia.exec_()
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1561
88
464745dfb03a Adjustments to eric changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 83
diff changeset
1562 langFile = self.__e5project.getTranslationPattern()\
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1563 .replace("%language%", code)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1564 self.__e5project.appendFile(langFile)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1565
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1566 def compileCatalogs(self, filenames):
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1567 """
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1568 Public method to compile the message catalogs.
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1569
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1570 @param filenames list of filenames (not used)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1571 """
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1572 title = self.tr("Compiling message catalogs")
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1573 try:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1574 projectPath = self.__projectPath()
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1575 except PyramidNoProjectSelectedException:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1576 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1577 self.__ui,
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1578 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1579 self.tr('No current Pyramid project selected or no Pyramid'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1580 ' project created yet. Aborting...'))
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1581 return
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1582
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1583 cmd = self.getPythonCommand()
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1584 args = []
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1585 args.append("setup.py")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1586 args.append("compile_catalog")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1587
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1588 dia = PyramidDialog(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1589 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1590 msgSuccess=self.tr("\nMessage catalogs compiled"
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1591 " successfully."))
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1592 res = dia.startProcess(cmd, args, projectPath)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1593 if res:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1594 dia.exec_()
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1595
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1596 for entry in os.walk(projectPath):
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1597 for fileName in entry[2]:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1598 fullName = os.path.join(entry[0], fileName)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1599 if fullName.endswith('.mo'):
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1600 self.__e5project.appendFile(fullName)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1601
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1602 def compileSelectedCatalogs(self, filenames):
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1603 """
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1604 Public method to update the message catalogs.
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1605
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1606 @param filenames list of file names (list of string)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1607 """
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1608 title = self.tr("Compiling message catalogs")
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1609 try:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1610 projectPath = self.__projectPath()
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1611 except PyramidNoProjectSelectedException:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1612 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1613 self.__ui,
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1614 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1615 self.tr('No current Pyramid project selected or no Pyramid'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1616 ' project created yet. Aborting...'))
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1617 return
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1618
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1619 argsLists = []
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1620
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1621 for filename in self.__normalizeList(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1622 self.__projectFilteredList(filenames)):
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1623 locale = self.__getLocale(filename)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1624 if locale:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1625 args = []
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1626 args.append(self.getPythonCommand())
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1627 args.append("setup.py")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1628 args.append("compile_catalog")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1629 args.append("-l")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1630 args.append(locale)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1631 argsLists.append(args)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1632
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1633 if len(argsLists) == 0:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1634 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1635 self.__ui,
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1636 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1637 self.tr('No locales detected. Aborting...'))
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1638 return
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1639
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1640 dia = PyramidDialog(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1641 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1642 msgSuccess=self.tr("\nMessage catalogs compiled"
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1643 " successfully."))
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1644 res = dia.startBatchProcesses(argsLists, projectPath)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1645 if res:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1646 dia.exec_()
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1647
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1648 for entry in os.walk(self.__sitePath()):
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1649 for fileName in entry[2]:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1650 fullName = os.path.join(entry[0], fileName)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1651 if fullName.endswith('.mo'):
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1652 self.__e5project.appendFile(fullName)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1653
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1654 def updateCatalogs(self, filenames):
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1655 """
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1656 Public method to update the message catalogs.
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1657
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1658 @param filenames list of filenames (not used)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1659 """
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1660 title = self.tr("Updating message catalogs")
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1661 try:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1662 projectPath = self.__projectPath()
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1663 except PyramidNoProjectSelectedException:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1664 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1665 self.__ui,
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1666 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1667 self.tr('No current Pyramid project selected or no Pyramid'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1668 ' project created yet. Aborting...'))
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1669 return
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1670
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1671 cmd = self.getPythonCommand()
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1672 args = []
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1673 args.append("setup.py")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1674 args.append("update_catalog")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1675
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1676 dia = PyramidDialog(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1677 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1678 msgSuccess=self.tr("\nMessage catalogs updated successfully."))
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1679 res = dia.startProcess(cmd, args, projectPath)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1680 if res:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1681 dia.exec_()
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1682
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1683 def updateSelectedCatalogs(self, filenames):
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1684 """
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1685 Public method to update the message catalogs.
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1686
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1687 @param filenames list of filenames
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1688 """
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1689 title = self.tr("Updating message catalogs")
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1690 try:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1691 projectPath = self.__projectPath()
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1692 except PyramidNoProjectSelectedException:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1693 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1694 self.__ui,
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1695 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1696 self.tr('No current Pyramid project selected or no Pyramid'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1697 ' project created yet. Aborting...'))
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1698 return
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1699
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1700 argsLists = []
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1701
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1702 for filename in self.__normalizeList(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1703 self.__projectFilteredList(filenames)):
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1704 locale = self.__getLocale(filename)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1705 if locale:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1706 args = []
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1707 args.append(self.getPythonCommand())
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1708 args.append("setup.py")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1709 args.append("update_catalog")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1710 args.append("-l")
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1711 args.append(locale)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1712 argsLists.append(args)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1713
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1714 if len(argsLists) == 0:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1715 E5MessageBox.warning(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1716 self.__ui,
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1717 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1718 self.tr('No locales detected. Aborting...'))
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1719 return
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1720
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1721 dia = PyramidDialog(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1722 title,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1723 msgSuccess=self.tr("\nMessage catalogs updated successfully."))
3
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1724 res = dia.startBatchProcesses(argsLists, projectPath)
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1725 if res:
76c45d31d462 Added the internationalization related functions (only for Python 2 because babel and lingua are not supported by Python 3 yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1726 dia.exec_()
48
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1727
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1728 def openPOEditor(self, poFile):
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1729 """
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1730 Public method to edit the given file in an external .po editor.
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1731
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1732 @param poFile name of the .po file (string)
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1733 """
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1734 editor = self.__plugin.getPreferences("TranslationsEditor")
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1735 if poFile.endswith(".po") and editor:
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1736 try:
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1737 wd = self.__projectPath()
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1738 except PyramidNoProjectSelectedException:
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1739 wd = ""
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1740 started, pid = QProcess.startDetached(editor, [poFile], wd)
c313efdb01de Added a menu entry to call a translations editor from the translations viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1741 if not started:
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1742 E5MessageBox.critical(
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1743 None,
74
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1744 self.tr('Process Generation Error'),
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1745 self.tr('The translations editor process ({0}) could'
11587ae1122f Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
1746 ' not be started.').format(
54
71c83a661c83 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1747 os.path.basename(editor)))

eric ide

mercurial