ProjectPyramid/Project.py

Thu, 09 Apr 2020 18:16:19 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 09 Apr 2020 18:16:19 +0200
changeset 133
8f183975895d
parent 132
c0d53fb9a0e0
child 138
72ebb74aa42d
permissions
-rw-r--r--

Replaced pixmap icons by vector icons.

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

eric ide

mercurial