Mon, 20 Sep 2021 19:47:18 +0200
Continued implementing the VCS status widget for the left side.
8619
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | # Copyright (c) 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a VCS Status widget for the sidebar/toolbar. |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
8620
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
10 | import contextlib |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
11 | import os |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
12 | |
8619
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | from PyQt6.QtCore import pyqtSlot, Qt |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | from PyQt6.QtWidgets import ( |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | QWidget, QVBoxLayout, QHBoxLayout, QLabel, QSizePolicy, QListView, |
8620
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
16 | QListWidget, QListWidgetItem, QToolButton, QAbstractItemView |
8619
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | ) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
8620
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
19 | from EricWidgets.EricApplication import ericApp |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
20 | from EricWidgets import EricMessageBox |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
21 | |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
22 | import Preferences |
8619
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | import UI.PixmapCache |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | class StatusWidget(QWidget): |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | """ |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | Class implementing a VCS Status widget for the sidebar/toolbox. |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | """ |
8620
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
30 | StatusDataRole = Qt.ItemDataRole.UserRole + 1 |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
31 | |
8619
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | def __init__(self, project, parent=None): |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | """ |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | Constructor |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | @param project reference to the project object |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | @type Project |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | @param parent reference to the parent widget (defaults to None) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | @type QWidget (optional) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | """ |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | super().__init__(parent) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | self.setObjectName("VcsStatusWidget") |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | self.__project = project |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | self.__layout = QVBoxLayout() |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | self.__layout.setObjectName("MainLayout") |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | self.__layout.setContentsMargins(0, 3, 0, 0) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | self.__topLayout = QHBoxLayout() |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | self.__topLayout.setObjectName("topLayout") |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | # Create the top row |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | self.__infoLabel = QLabel(self) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | self.__infoLabel.setSizePolicy( |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | self.__topLayout.addWidget(self.__infoLabel) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | |
8620
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
58 | self.__commitToggleButton = QToolButton(self) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
59 | self.__commitToggleButton.setIcon(UI.PixmapCache.getIcon("check")) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
60 | self.__commitToggleButton.setToolTip( |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
61 | self.tr("Press to toggle the commit markers")) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
62 | self.__commitToggleButton.clicked.connect(self.__toggleCheckMark) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
63 | self.__topLayout.addWidget(self.__commitToggleButton) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
64 | |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
65 | self.__commitButton = QToolButton(self) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
66 | self.__commitButton.setIcon(UI.PixmapCache.getIcon("vcsCommit")) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
67 | self.__commitButton.setToolTip( |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
68 | self.tr("Press to commit the marked entries")) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
69 | self.__commitButton.clicked.connect(self.__commit) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
70 | self.__topLayout.addWidget(self.__commitButton) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
71 | |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
72 | self.__addButton = QToolButton(self) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
73 | self.__addButton.setIcon(UI.PixmapCache.getIcon("vcsAdd")) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
74 | self.__addButton.setToolTip( |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
75 | self.tr("Press to add the selected, untracked entries")) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
76 | self.__addButton.clicked.connect(self.__addUntracked) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
77 | self.__topLayout.addWidget(self.__addButton) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
78 | |
8619
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | self.__reloadButton = QToolButton(self) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | self.__reloadButton.setIcon(UI.PixmapCache.getIcon("reload")) |
8620
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
81 | self.__reloadButton.setToolTip( |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
82 | self.tr("Press to reload the status list")) |
8619
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | self.__reloadButton.clicked.connect(self.__reload) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | self.__topLayout.addWidget(self.__reloadButton) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | self.__layout.addLayout(self.__topLayout) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | self.__statusList = QListWidget(self) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | self.__statusList.setAlternatingRowColors(True) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | self.__statusList.setSortingEnabled(True) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | self.__statusList.setViewMode(QListView.ViewMode.ListMode) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | self.__statusList.setTextElideMode(Qt.TextElideMode.ElideLeft) |
8620
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
93 | self.__statusList.setSelectionMode( |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
94 | QAbstractItemView.SelectionMode.ExtendedSelection) |
8619
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | self.__layout.addWidget(self.__statusList) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | self.setLayout(self.__layout) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | |
8620
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
99 | self.__statusIcons = { |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
100 | "A": "vcs-added", # added |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
101 | "M": "vcs-modified", # modified |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
102 | "O": "vcs-removed", # removed |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
103 | "R": "vcs-renamed", # renamed |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
104 | "U": "vcs-update-required", # update needed |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
105 | "Z": "vcs-conflicting", # conflict |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
106 | "?": "vcs-untracked", # not tracked |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
107 | "!": "vcs-missing", # missing |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
108 | } |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
109 | self.__statusTexts = { |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
110 | "A": self.tr("added"), |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
111 | "M": self.tr("modified"), |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
112 | "O": self.tr("removed"), |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
113 | "R": self.tr("renamed"), |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
114 | "U": self.tr("needs update"), |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
115 | "Z": self.tr("conflict"), |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
116 | "?": self.tr("not tracked"), |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
117 | "!": self.tr("missing"), |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
118 | } |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
119 | |
8619
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | if self.__project.isOpen(): |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | self.__projectOpened() |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | else: |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | self.__projectClosed() |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | self.__project.projectOpened.connect(self.__projectOpened) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | self.__project.projectClosed.connect(self.__projectClosed) |
8620
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
127 | self.__project.vcsCommitted.connect(self.__committed) |
8619
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | self.__project.vcsStatusMonitorInfo.connect(self.__setInfoText) |
8620
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
129 | self.__project.vcsStatusMonitorAllData.connect( |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
130 | self.__processStatusData) |
8619
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | @pyqtSlot() |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | def __projectOpened(self): |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | """ |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | Private slot to handle the opening of a project. |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | """ |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | self.__reloadButton.setEnabled(True) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | @pyqtSlot() |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | def __projectClosed(self): |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | """ |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | Private slot to handle the closing of a project. |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | """ |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | self.__infoLabel.setText(self.tr("No project open.")) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | self.__reloadButton.setEnabled(False) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | self.__statusList.clear() |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | @pyqtSlot(str) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | def __setInfoText(self, info): |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | """ |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | Private slot to set the info label text. |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | @param info text to be shown |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | @type str |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | """ |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | self.__infoLabel.setText(info) |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | @pyqtSlot() |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | def __reload(self): |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | """ |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | Private slot to reload the status list. |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | """ |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | self.__project.checkVCSStatus() |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | |
8620
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
167 | @pyqtSlot(dict) |
8619
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | def __processStatusData(self, data): |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | """ |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | Private slot to process the status data emitted by the project. |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | Each entry of the status data consists of a status flag and and the |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | path relative to the project directory starting with the third column. |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | The known status flags are: |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | <ul> |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | <li>"A" path was added but not yet committed</li> |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | <li>"M" path has local changes</li> |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | <li>"O" path was removed</li> |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | <li>"R" path was deleted and then re-added</li> |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | <li>"U" path needs an update</li> |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | <li>"Z" path contains a conflict</li> |
8620
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
182 | <li>"?" path is not tracked</li> |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
183 | <li>"!" path is missing</li> |
8619
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | <li>" " path is back at normal</li> |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | </ul> |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | |
8620
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
187 | @param data dictionary containing the status data |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
188 | @type dict |
8619
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | """ |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | self.__statusList.clear() |
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | |
8620
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
192 | for name, status in data.items(): |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
193 | if status: |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
194 | itm = QListWidgetItem(name, self.__statusList) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
195 | with contextlib.suppress(KeyError): |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
196 | itm.setToolTip(self.__statusTexts[status]) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
197 | itm.setIcon(UI.PixmapCache.getIcon( |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
198 | self.__statusIcons[status])) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
199 | itm.setData(self.StatusDataRole, status) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
200 | if status in "AMOR": |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
201 | itm.setFlags( |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
202 | itm.flags() | Qt.ItemFlag.ItemIsUserCheckable) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
203 | itm.setCheckState(Qt.CheckState.Checked) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
204 | else: |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
205 | itm.setFlags( |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
206 | itm.flags() & ~Qt.ItemFlag.ItemIsUserCheckable) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
207 | |
8619
2dc55ddafc68
Added the forgotten VCS status widget source.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | self.__statusList.sortItems(Qt.SortOrder.AscendingOrder) |
8620
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
209 | |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
210 | @pyqtSlot() |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
211 | def __toggleCheckMark(self): |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
212 | """ |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
213 | Private slot to toggle the check marks. |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
214 | """ |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
215 | for row in range(self.__statusList.count()): |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
216 | itm = self.__statusList.item(row) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
217 | if ( |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
218 | itm.flags() & Qt.ItemFlag.ItemIsUserCheckable == |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
219 | Qt.ItemFlag.ItemIsUserCheckable |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
220 | ): |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
221 | if itm.checkState() == Qt.CheckState.Unchecked: |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
222 | itm.setCheckState(Qt.CheckState.Checked) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
223 | else: |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
224 | itm.setCheckState(Qt.CheckState.Unchecked) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
225 | |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
226 | @pyqtSlot() |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
227 | def __commit(self): |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
228 | """ |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
229 | Private slot to handle the commit button. |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
230 | """ |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
231 | projectPath = self.__project.getProjectPath() |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
232 | names = [] |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
233 | |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
234 | for row in range(self.__statusList.count()): |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
235 | itm = self.__statusList.item(row) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
236 | if itm.checkState() == Qt.CheckState.Checked: |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
237 | names.append(os.path.join(projectPath, itm.text())) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
238 | |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
239 | if not names: |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
240 | EricMessageBox.information( |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
241 | self, |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
242 | self.tr("Commit"), |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
243 | self.tr("""There are no entries selected to be""" |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
244 | """ committed.""")) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
245 | return |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
246 | |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
247 | if Preferences.getVCS("AutoSaveFiles"): |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
248 | vm = ericApp().getObject("ViewManager") |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
249 | for name in names: |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
250 | vm.saveEditor(name) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
251 | vcs = self.__project.getVcs() |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
252 | vcs and vcs.vcsCommit(names, '') |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
253 | |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
254 | @pyqtSlot() |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
255 | def __committed(self): |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
256 | """ |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
257 | Private slot called after the commit has been completed. |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
258 | """ |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
259 | self.__reload() |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
260 | |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
261 | @pyqtSlot() |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
262 | def __addUntracked(self): |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
263 | """ |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
264 | Private slot to add the selected untracked entries. |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
265 | """ |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
266 | projectPath = self.__project.getProjectPath() |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
267 | |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
268 | names = [ |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
269 | os.path.join(projectPath, itm.text()) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
270 | for itm in self.__statusList.selectedItems() |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
271 | if itm.data(self.StatusDataRole) == "?" |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
272 | ] |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
273 | |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
274 | if not names: |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
275 | EricMessageBox.information( |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
276 | self, |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
277 | self.tr("Add"), |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
278 | self.tr("""There are no unversioned entries""" |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
279 | """ available/selected.""")) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
280 | return |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
281 | |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
282 | vcs = self.__project.getVcs() |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
283 | vcs and vcs.vcsAdd(names) |
84f7f7867b5f
Continued implementing the VCS status widget for the left side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8619
diff
changeset
|
284 | self.__reload() |