eric6/VCS/ProjectHelper.py

Wed, 30 Dec 2020 11:00:05 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 30 Dec 2020 11:00:05 +0100
changeset 7923
91e843545d9a
parent 7836
2f0d208b8137
child 7941
cf988a30ba47
permissions
-rw-r--r--

Updated copyright for 2021.

0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
7923
91e843545d9a Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
3 # Copyright (c) 2005 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the base class of the VCS project helper.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import os
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import shutil
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import copy
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
14 from PyQt5.QtCore import pyqtSlot, QDir, QFileInfo, QObject, QCoreApplication
4079
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
15 from PyQt5.QtWidgets import QDialog, QInputDialog, QToolBar
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
17 from E5Gui.E5Action import E5Action
536
6d8d39753c82 Started replaceing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
18 from E5Gui import E5MessageBox
537
72b32daeb8d6 Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 536
diff changeset
19 from E5Gui.E5Application import e5App
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 import Preferences
4079
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
22 import UI.PixmapCache
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
23 import UI.Config
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
25
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 class VcsProjectHelper(QObject):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 Class implementing the base class of the VCS project helper.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
30 def __init__(self, vcsObject, projectObject, parent=None, name=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 Constructor
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 @param vcsObject reference to the vcs object
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 @param projectObject reference to the project object
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 @param parent parent widget (QWidget)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 @param name name of this object (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2409
diff changeset
39 super(VcsProjectHelper, self).__init__(parent)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 if name:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.setObjectName(name)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.vcs = vcsObject
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.project = projectObject
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 self.actions = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
1881
bab54b00f79a Fixed an issue introduced by the VCS changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
48 self.vcsAddAct = None
bab54b00f79a Fixed an issue introduced by the VCS changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
49
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.initActions()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 def setObjects(self, vcsObject, projectObject):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 Public method to set references to the vcs and project objects.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 @param vcsObject reference to the vcs object
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 @param projectObject reference to the project object
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 self.vcs = vcsObject
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.project = projectObject
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 def initActions(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 Public method to generate the action objects.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 """
3031
ed2eaa573ca5 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
66 self.vcsNewAct = E5Action(
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
67 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
68 "VcsProjectHelper", 'New from repository'),
7533
88261c96484b Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
69 UI.PixmapCache.getIcon("vcsCheckout"),
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
70 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
71 "VcsProjectHelper", '&New from repository...'),
3031
ed2eaa573ca5 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
72 0, 0, self, 'vcs_new')
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
73 self.vcsNewAct.setStatusTip(QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
74 "VcsProjectHelper",
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 'Create a new project from the VCS repository'
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 ))
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
77 self.vcsNewAct.setWhatsThis(QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
78 "VcsProjectHelper",
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 """<b>New from repository</b>"""
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
80 """<p>This creates a new local project from the VCS"""
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
81 """ repository.</p>"""
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 ))
3345
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
83 self.vcsNewAct.triggered.connect(self._vcsCheckout)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 self.actions.append(self.vcsNewAct)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
86 self.vcsExportAct = E5Action(
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
87 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
88 "VcsProjectHelper", 'Export from repository'),
7533
88261c96484b Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
89 UI.PixmapCache.getIcon("vcsExport"),
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
90 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
91 "VcsProjectHelper", '&Export from repository...'),
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
92 0, 0, self, 'vcs_export')
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
93 self.vcsExportAct.setStatusTip(QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
94 "VcsProjectHelper",
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 'Export a project from the repository'
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 ))
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
97 self.vcsExportAct.setWhatsThis(QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
98 "VcsProjectHelper",
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 """<b>Export from repository</b>"""
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 """<p>This exports a project from the repository.</p>"""
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 ))
3345
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
102 self.vcsExportAct.triggered.connect(self._vcsExport)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 self.actions.append(self.vcsExportAct)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104
3031
ed2eaa573ca5 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
105 self.vcsAddAct = E5Action(
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
106 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
107 "VcsProjectHelper", 'Add to repository'),
7533
88261c96484b Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
108 UI.PixmapCache.getIcon("vcsCommit"),
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
109 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
110 "VcsProjectHelper", '&Add to repository...'),
3031
ed2eaa573ca5 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
111 0, 0, self, 'vcs_add')
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
112 self.vcsAddAct.setStatusTip(QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
113 "VcsProjectHelper",
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 'Add the local project to the VCS repository'
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 ))
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
116 self.vcsAddAct.setWhatsThis(QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
117 "VcsProjectHelper",
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 """<b>Add to repository</b>"""
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
119 """<p>This adds (imports) the local project to the VCS"""
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
120 """ repository.</p>"""
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 ))
3345
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
122 self.vcsAddAct.triggered.connect(self._vcsImport)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 self.actions.append(self.vcsAddAct)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 def initMenu(self, menu):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 Public method to generate the VCS menu.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 @param menu reference to the menu to be populated (QMenu)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 menu.clear()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 menu.addAction(self.vcsNewAct)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 menu.addAction(self.vcsExportAct)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 menu.addSeparator()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 menu.addAction(self.vcsAddAct)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 menu.addSeparator()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138
4079
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
139 def initToolbar(self, ui, toolbarManager):
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
140 """
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
141 Public slot to initialize the VCS toolbar.
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
142
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
143 @param ui reference to the main window (UserInterface)
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
144 @param toolbarManager reference to a toolbar manager object
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
145 (E5ToolBarManager)
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
146 @return the toolbar generated (QToolBar)
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
147 """
6891
93f82da09f22 Fixed some code style issues detected by the new 'return' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
148 return None # __IGNORE_WARNING_M831__
4079
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
149
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
150 def initBasicToolbar(self, ui, toolbarManager):
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
151 """
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
152 Public slot to initialize the basic VCS toolbar.
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
153
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
154 @param ui reference to the main window (UserInterface)
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
155 @param toolbarManager reference to a toolbar manager object
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
156 (E5ToolBarManager)
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
157 @return the toolbar generated (QToolBar)
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
158 """
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
159 tb = QToolBar(QCoreApplication.translate("VcsProjectHelper", "VCS"),
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
160 ui)
4079
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
161 tb.setIconSize(UI.Config.ToolBarIconSize)
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
162 tb.setObjectName("VersionControlToolbar")
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
163 tb.setToolTip(QCoreApplication.translate("VcsProjectHelper", 'VCS'))
4079
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
164
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
165 tb.addAction(self.vcsNewAct)
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
166 tb.addAction(self.vcsExportAct)
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
167 tb.addSeparator()
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
168 tb.addAction(self.vcsAddAct)
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
169
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
170 toolbarManager.addToolBar(tb, tb.windowTitle())
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
171
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
172 return tb
a3319822d303 Added possibility for plug-ins to have toolbars.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
173
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 def showMenu(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 Public slot called before the vcs menu is shown.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 """
1881
bab54b00f79a Fixed an issue introduced by the VCS changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
178 if self.vcsAddAct:
6556
8aa72eaa2d70 VCS.ProjectHelper: fixed a strange issue caused by self.project being None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6489
diff changeset
179 self.vcsAddAct.setEnabled(self.project and self.project.isOpen())
3345
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
180
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
181 @pyqtSlot()
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
182 def _vcsCheckout(self, export=False):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 Protected slot used to create a local project from the repository.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 @param export flag indicating whether an export or a checkout
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 should be performed
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 """
6556
8aa72eaa2d70 VCS.ProjectHelper: fixed a strange issue caused by self.project being None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6489
diff changeset
189 if not self.project or not self.project.checkDirty():
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 return
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191
7259
7c017076c12e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
192 vcsSystemsDict = e5App().getObject(
7c017076c12e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
193 "PluginManager").getPluginDisplayStrings("version_control")
1012
e3c069f40a4a Fixed an issue in the generic VCS project helper.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
194 if not vcsSystemsDict:
e3c069f40a4a Fixed an issue in the generic VCS project helper.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
195 # no version control system found
e3c069f40a4a Fixed an issue in the generic VCS project helper.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
196 return
e3c069f40a4a Fixed an issue in the generic VCS project helper.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
197
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 vcsSystemsDisplay = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 keys = sorted(vcsSystemsDict.keys())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 for key in keys:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 vcsSystemsDisplay.append(vcsSystemsDict[key])
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 543
diff changeset
202 vcsSelected, ok = QInputDialog.getItem(
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 None,
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
204 QCoreApplication.translate("VcsProjectHelper", "New Project"),
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
205 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
206 "VcsProjectHelper",
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
207 "Select version control system for the project"),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 vcsSystemsDisplay,
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 0, False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 if not ok:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 return
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
212
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
213 selectedVcsSystem = None
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
214 for vcsSystem, vcsSystemDisplay in list(vcsSystemsDict.items()):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 if vcsSystemDisplay == vcsSelected:
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
216 selectedVcsSystem = vcsSystem
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 break
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218
1941
aedf18497117 Fixed an issue creating a new project via the VCS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1881
diff changeset
219 if not self.project.closeProject():
aedf18497117 Fixed an issue creating a new project via the VCS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1881
diff changeset
220 return
aedf18497117 Fixed an issue creating a new project via the VCS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1881
diff changeset
221
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
222 vcs = self.project.initVCS(selectedVcsSystem)
6158
9765e0c375d0 Fixed an issue causing eric to crash when creating a new project from a repository (i.e. cloning or exporting).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
223 if vcs is not None:
9765e0c375d0 Fixed an issue causing eric to crash when creating a new project from a repository (i.e. cloning or exporting).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
224 vcsdlg = vcs.vcsNewProjectOptionsDialog()
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7533
diff changeset
225 if vcsdlg.exec() == QDialog.Accepted:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 projectdir, vcsDataDict = vcsdlg.getData()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 # edit VCS command options
6158
9765e0c375d0 Fixed an issue causing eric to crash when creating a new project from a repository (i.e. cloning or exporting).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
228 if vcs.vcsSupportCommandOptions():
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
229 vcores = E5MessageBox.yesNo(
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
230 self.parent(),
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
231 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
232 "VcsProjectHelper", "New Project"),
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
233 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
234 "VcsProjectHelper",
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
235 """Would you like to edit the VCS command"""
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
236 """ options?"""))
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
237 else:
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
238 vcores = False
543
a558e3cb7b5a Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 538
diff changeset
239 if vcores:
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3031
diff changeset
240 from .CommandOptionsDialog import VcsCommandOptionsDialog
6489
577c644ab6f3 VCS.ProjectHelper: fixed an issue using the wrong variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
241 codlg = VcsCommandOptionsDialog(vcs)
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7533
diff changeset
242 if codlg.exec() == QDialog.Accepted:
6158
9765e0c375d0 Fixed an issue causing eric to crash when creating a new project from a repository (i.e. cloning or exporting).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
243 vcs.vcsSetOptions(codlg.getOptions())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 # create the project directory if it doesn't exist already
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 if not os.path.isdir(projectdir):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
248 os.makedirs(projectdir)
7836
2f0d208b8137 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7781
diff changeset
249 except OSError:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3013
diff changeset
250 E5MessageBox.critical(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3013
diff changeset
251 self.parent(),
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
252 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
253 "VcsProjectHelper",
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
254 "Create project directory"),
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
255 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
256 "VcsProjectHelper",
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
257 "<p>The project directory <b>{0}</b> could not"
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
258 " be created.</p>").format(projectdir))
6558
db48660ca7c0 VCS.ProjectHelper, Project.Project: fix the handling when a VCS clone or export operation fails.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6556
diff changeset
259 self.project.resetVCS()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260 return
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 # create the project from the VCS
6158
9765e0c375d0 Fixed an issue causing eric to crash when creating a new project from a repository (i.e. cloning or exporting).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
263 vcs.vcsSetDataFromDict(vcsDataDict)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264 if export:
6158
9765e0c375d0 Fixed an issue causing eric to crash when creating a new project from a repository (i.e. cloning or exporting).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
265 ok = vcs.vcsExport(vcsDataDict, projectdir)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266 else:
6168
e9d3ea144b0b Fixed a code style issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6158
diff changeset
267 ok = vcs.vcsCheckout(vcsDataDict, projectdir, False)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
268 if ok:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 projectdir = os.path.normpath(projectdir)
608
d8fea1e76975 Removed capability to write compressed project (and related) files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
270 filters = ["*.e4p"]
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 d = QDir(projectdir)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 plist = d.entryInfoList(filters)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 if len(plist):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 if len(plist) == 1:
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
275 self.project.openProject(
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
276 plist[0].absoluteFilePath())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 pfilenamelist = d.entryList(filters)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279 pfilename, ok = QInputDialog.getItem(
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280 None,
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
281 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
282 "VcsProjectHelper",
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
283 "New project from repository"),
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
284 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
285 "VcsProjectHelper",
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
286 "Select a project file to open."),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
287 pfilenamelist, 0, False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288 if ok:
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 543
diff changeset
289 self.project.openProject(
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
290 QFileInfo(d, pfilename).absoluteFilePath())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
291 if export:
5099
175b36822cc9 Continued cleaning up some code related to the Project class and data structures.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
292 self.project.pdata["VCS"] = 'None'
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
293 self.project.vcs = self.project.initVCS()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 self.project.setDirty(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 self.project.saveProject()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
296 else:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3013
diff changeset
297 res = E5MessageBox.yesNo(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3013
diff changeset
298 self.parent(),
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
299 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
300 "VcsProjectHelper",
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
301 "New project from repository"),
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
302 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
303 "VcsProjectHelper",
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
304 "The project retrieved from the repository"
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
305 " does not contain an eric project file"
608
d8fea1e76975 Removed capability to write compressed project (and related) files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
306 " (*.e4p). Create it?"),
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
307 yesDefault=True)
543
a558e3cb7b5a Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 538
diff changeset
308 if res:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
309 self.project.ppath = projectdir
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310 self.project.opened = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
311
7259
7c017076c12e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
312 from Project.PropertiesDialog import (
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
313 PropertiesDialog
7259
7c017076c12e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
314 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 dlg = PropertiesDialog(self.project, False)
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7533
diff changeset
316 if dlg.exec() == QDialog.Accepted:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 dlg.storeData()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318 self.project.initFileTypes()
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
319 self.project.pdata["VCS"] = selectedVcsSystem
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 self.project.setDirty(True)
6158
9765e0c375d0 Fixed an issue causing eric to crash when creating a new project from a repository (i.e. cloning or exporting).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
321 if self.project.pdata["MAINSCRIPT"]:
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
322 ms = os.path.join(
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
323 self.project.ppath,
5099
175b36822cc9 Continued cleaning up some code related to the Project class and data structures.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
324 self.project.pdata["MAINSCRIPT"])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 if os.path.exists(ms):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326 self.project.appendFile(ms)
6158
9765e0c375d0 Fixed an issue causing eric to crash when creating a new project from a repository (i.e. cloning or exporting).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
327 else:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
328 ms = ""
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
329 self.project.newProjectAddFiles(ms)
3164
a027fc190f82 Fixed a bug creating a project from a repository and implemented a bugfix method for an issue in QsciScintilla.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
330 self.project.createProjectManagementDir()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
331 self.project.saveProject()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332 self.project.openProject(self.project.pfile)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
333 if not export:
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
334 res = E5MessageBox.yesNo(
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
335 self.parent(),
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
336 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
337 "VcsProjectHelper",
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
338 "New project from repository"),
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
339 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
340 "VcsProjectHelper",
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
341 "Shall the project file be added"
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
342 " to the repository?"),
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
343 yesDefault=True)
543
a558e3cb7b5a Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 538
diff changeset
344 if res:
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
345 self.project.vcs.vcsAdd(
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
346 self.project.pfile)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
347 else:
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
348 E5MessageBox.critical(
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
349 self.parent(),
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
350 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
351 "VcsProjectHelper", "New project from repository"),
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
352 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
353 "VcsProjectHelper",
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
354 """The project could not be retrieved from"""
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355 """ the repository."""))
6558
db48660ca7c0 VCS.ProjectHelper, Project.Project: fix the handling when a VCS clone or export operation fails.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6556
diff changeset
356 self.project.resetVCS()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
358 def _vcsExport(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
359 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
360 Protected slot used to export a project from the repository.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
361 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
362 self._vcsCheckout(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
363
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
364 def _vcsImport(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
365 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
366 Protected slot used to import the local project into the repository.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
367
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
368 <b>NOTE</b>:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
369 This does not necessarily make the local project a vcs controlled
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
370 project. You may have to checkout the project from the repository
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
371 in order to accomplish that.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
372 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
373 def revertChanges():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
374 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
375 Local function to revert the changes made to the project object.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376 """
5099
175b36822cc9 Continued cleaning up some code related to the Project class and data structures.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
377 self.project.pdata["VCS"] = pdata_vcs
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
378 self.project.pdata["VCSOPTIONS"] = copy.deepcopy(pdata_vcsoptions)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
379 self.project.pdata["VCSOTHERDATA"] = copy.deepcopy(pdata_vcsother)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 self.project.vcs = vcs
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
381 self.project.vcsProjectHelper = vcsHelper
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
382 self.project.vcsBasicHelper = vcs is None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
383 self.initMenu(self.project.vcsMenu)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
384 self.project.setDirty(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
385 self.project.saveProject()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
386
5099
175b36822cc9 Continued cleaning up some code related to the Project class and data structures.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
387 pdata_vcs = self.project.pdata["VCS"]
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
388 pdata_vcsoptions = copy.deepcopy(self.project.pdata["VCSOPTIONS"])
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
389 pdata_vcsother = copy.deepcopy(self.project.pdata["VCSOTHERDATA"])
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
390 vcs = self.project.vcs
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
391 vcsHelper = self.project.vcsProjectHelper
7259
7c017076c12e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
392 vcsSystemsDict = e5App().getObject(
7c017076c12e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
393 "PluginManager").getPluginDisplayStrings("version_control")
1012
e3c069f40a4a Fixed an issue in the generic VCS project helper.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
394 if not vcsSystemsDict:
e3c069f40a4a Fixed an issue in the generic VCS project helper.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
395 # no version control system found
e3c069f40a4a Fixed an issue in the generic VCS project helper.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
396 return
e3c069f40a4a Fixed an issue in the generic VCS project helper.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
397
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
398 vcsSystemsDisplay = []
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
399 keys = sorted(list(vcsSystemsDict.keys()))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
400 for key in keys:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
401 vcsSystemsDisplay.append(vcsSystemsDict[key])
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 543
diff changeset
402 vcsSelected, ok = QInputDialog.getItem(
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
403 None,
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
404 QCoreApplication.translate("VcsProjectHelper", "Import Project"),
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
405 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
406 "VcsProjectHelper",
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
407 "Select version control system for the project"),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
408 vcsSystemsDisplay,
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409 0, False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
410 if not ok:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
411 return
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
412
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
413 selectedVcsSystem = None
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
414 for vcsSystem, vcsSystemDisplay in list(vcsSystemsDict.items()):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
415 if vcsSystemDisplay == vcsSelected:
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
416 selectedVcsSystem = vcsSystem
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
417 break
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
418
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
419 if selectedVcsSystem is not None:
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
420 self.project.pdata["VCS"] = selectedVcsSystem
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
421 self.project.vcs = self.project.initVCS(selectedVcsSystem)
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
422 if self.project.vcs is not None:
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
423 vcsdlg = self.project.vcs.vcsOptionsDialog(
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
424 self.project, self.project.name, 1)
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7533
diff changeset
425 if vcsdlg.exec() == QDialog.Accepted:
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
426 vcsDataDict = vcsdlg.getData()
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
427 # edit VCS command options
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
428 if self.project.vcs.vcsSupportCommandOptions():
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
429 vcores = E5MessageBox.yesNo(
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
430 self.parent(),
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
431 QCoreApplication.translate(
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
432 "VcsProjectHelper", "Import Project"),
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
433 QCoreApplication.translate(
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
434 "VcsProjectHelper",
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
435 """Would you like to edit the VCS command"""
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
436 """ options?"""))
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
437 else:
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
438 vcores = False
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
439 if vcores:
7259
7c017076c12e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
440 from .CommandOptionsDialog import (
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
441 VcsCommandOptionsDialog
7259
7c017076c12e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
442 )
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
443 codlg = VcsCommandOptionsDialog(self.project.vcs)
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7533
diff changeset
444 if codlg.exec() == QDialog.Accepted:
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
445 self.project.vcs.vcsSetOptions(codlg.getOptions())
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
446 self.project.setDirty(True)
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
447 self.project.vcs.vcsSetDataFromDict(vcsDataDict)
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
448 self.project.saveProject()
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
449 isVcsControlled = self.project.vcs.vcsImport(
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
450 vcsDataDict, self.project.ppath)[0]
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
451 if isVcsControlled:
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
452 # reopen the project
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
453 self.project.openProject(self.project.pfile)
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
454 else:
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
455 # revert the changes to the local project
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
456 # because the project dir is not a VCS directory
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
457 revertChanges()
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
458 else:
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6168
diff changeset
459 # revert the changes because user cancelled
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
460 revertChanges()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
461
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
462 def _vcsUpdate(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
463 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
464 Protected slot used to update the local project from the repository.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
465 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
466 shouldReopen = self.vcs.vcsUpdate(self.project.ppath)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
467 if shouldReopen:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3013
diff changeset
468 res = E5MessageBox.yesNo(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3013
diff changeset
469 self.parent(),
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
470 QCoreApplication.translate("VcsProjectHelper", "Update"),
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
471 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
472 "VcsProjectHelper",
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
473 """The project should be reread. Do this now?"""),
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
474 yesDefault=True)
543
a558e3cb7b5a Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 538
diff changeset
475 if res:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
476 self.project.reopenProject()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
477
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
478 def _vcsCommit(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
479 """
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
480 Protected slot used to commit changes to the local project to the
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
481 repository.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
482 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
483 if Preferences.getVCS("AutoSaveProject"):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
484 self.project.saveProject()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
485 if Preferences.getVCS("AutoSaveFiles"):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
486 self.project.saveAllScripts()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
487 self.vcs.vcsCommit(self.project.ppath, '')
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
488
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
489 def _vcsRemove(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
490 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
491 Protected slot used to remove the local project from the repository.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
492
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
493 Depending on the parameters set in the vcs object the project
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
494 may be removed from the local disk as well.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
495 """
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3013
diff changeset
496 res = E5MessageBox.yesNo(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3013
diff changeset
497 self.parent(),
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
498 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
499 "VcsProjectHelper",
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
500 "Remove project from repository"),
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
501 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
502 "VcsProjectHelper",
3031
ed2eaa573ca5 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
503 "Dou you really want to remove this project from"
543
a558e3cb7b5a Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 538
diff changeset
504 " the repository (and disk)?"))
a558e3cb7b5a Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 538
diff changeset
505 if res:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
506 self.vcs.vcsRemove(self.project.ppath, True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
507 self._vcsCommit()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
508 if not os.path.exists(self.project.pfile):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
509 ppath = self.project.ppath
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
510 self.setDirty(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
511 self.project.closeProject()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
512 shutil.rmtree(ppath, True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
513
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
514 def _vcsCommandOptions(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
515 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
516 Protected slot to edit the VCS command options.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
517 """
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
518 if self.vcs.vcsSupportCommandOptions():
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
519 from .CommandOptionsDialog import VcsCommandOptionsDialog
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
520 codlg = VcsCommandOptionsDialog(self.vcs)
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7533
diff changeset
521 if codlg.exec() == QDialog.Accepted:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
522 self.vcs.vcsSetOptions(codlg.getOptions())
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
523 self.project.setDirty(True)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
524
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
525 def _vcsLog(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
526 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
527 Protected slot used to show the log of the local project.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
528 """
5452
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
529 # kept for backward compatibility for plug-ins
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
530 self._vcsLogBrowser()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
531
3349
2a034a7f1f54 Made the status LED (right lower corner) clickable (depending on overall VCS status it will show the log browser or the status dialog).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3345
diff changeset
532 def _vcsLogBrowser(self):
2a034a7f1f54 Made the status LED (right lower corner) clickable (depending on overall VCS status it will show the log browser or the status dialog).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3345
diff changeset
533 """
2a034a7f1f54 Made the status LED (right lower corner) clickable (depending on overall VCS status it will show the log browser or the status dialog).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3345
diff changeset
534 Protected slot used to show the log of the local project with a
2a034a7f1f54 Made the status LED (right lower corner) clickable (depending on overall VCS status it will show the log browser or the status dialog).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3345
diff changeset
535 log browser dialog.
2a034a7f1f54 Made the status LED (right lower corner) clickable (depending on overall VCS status it will show the log browser or the status dialog).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3345
diff changeset
536 """
2a034a7f1f54 Made the status LED (right lower corner) clickable (depending on overall VCS status it will show the log browser or the status dialog).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3345
diff changeset
537 self.vcs.vcsLogBrowser(self.project.ppath)
2a034a7f1f54 Made the status LED (right lower corner) clickable (depending on overall VCS status it will show the log browser or the status dialog).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3345
diff changeset
538
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
539 def _vcsDiff(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
540 """
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
541 Protected slot used to show the difference of the local project to
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
542 the repository.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
543 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
544 self.vcs.vcsDiff(self.project.ppath)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
545
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
546 def _vcsStatus(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
547 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
548 Protected slot used to show the status of the local project.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
549 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
550 self.vcs.vcsStatus(self.project.ppath)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
551
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
552 def _vcsTag(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
553 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
554 Protected slot used to tag the local project in the repository.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
555 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
556 self.vcs.vcsTag(self.project.ppath)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
557
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
558 def _vcsRevert(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
559 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
560 Protected slot used to revert changes made to the local project.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
561 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
562 self.vcs.vcsRevert(self.project.ppath)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
563
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
564 def _vcsSwitch(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
565 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
566 Protected slot used to switch the local project to another tag/branch.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
567 """
1083
dc680a0ce221 Extended the code logic for the switch command of the various version control interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1012
diff changeset
568 shouldReopen = self.vcs.vcsSwitch(self.project.ppath)
dc680a0ce221 Extended the code logic for the switch command of the various version control interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1012
diff changeset
569 if shouldReopen:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3013
diff changeset
570 res = E5MessageBox.yesNo(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3013
diff changeset
571 self.parent(),
5669
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
572 QCoreApplication.translate("VcsProjectHelper", "Switch"),
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
573 QCoreApplication.translate(
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
574 "VcsProjectHelper",
63295be38bc6 Fixed a translations related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
575 """The project should be reread. Do this now?"""),
1083
dc680a0ce221 Extended the code logic for the switch command of the various version control interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1012
diff changeset
576 yesDefault=True)
dc680a0ce221 Extended the code logic for the switch command of the various version control interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1012
diff changeset
577 if res:
dc680a0ce221 Extended the code logic for the switch command of the various version control interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1012
diff changeset
578 self.project.reopenProject()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
579
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
580 def _vcsMerge(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
581 """
3013
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
582 Protected slot used to merge changes of a tag/revision into the local
fe886b7f8f40 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2409
diff changeset
583 project.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
584 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
585 self.vcs.vcsMerge(self.project.ppath)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
586
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
587 def _vcsCleanup(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
588 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
589 Protected slot used to cleanup the local project.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
590 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
591 self.vcs.vcsCleanup(self.project.ppath)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
592
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
593 def _vcsCommand(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
594 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
595 Protected slot used to execute an arbitrary vcs command.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
596 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
597 self.vcs.vcsCommandLine(self.project.ppath)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
598
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
599 def _vcsInfoDisplay(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
600 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
601 Protected slot called to show some vcs information.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
602 """
2409
df3820f08247 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
603 from .RepositoryInfoDialog import VcsRepositoryInfoDialog
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
604 info = self.vcs.vcsRepositoryInfos(self.project.ppath)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
605 dlg = VcsRepositoryInfoDialog(None, info)
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7533
diff changeset
606 dlg.exec()

eric ide

mercurial