gitlabedit.py
1 | # Copyright (c) 2018 Julien Lepiller <julien@lepiller.eu> |
2 | # |
3 | # This program is free software: you can redistribute it and/or modify |
4 | # it under the terms of the GNU Affero General Public License as |
5 | # published by the Free Software Foundation, either version 3 of the |
6 | # License, or (at your option) any later version. |
7 | # |
8 | # This program is distributed in the hope that it will be useful, |
9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
11 | # GNU Affero General Public License for more details. |
12 | # |
13 | # You should have received a copy of the GNU Affero General Public License |
14 | # along with this program. If not, see <https://www.gnu.org/licenses/>. |
15 | #### |
16 | |
17 | from PyQt5.QtWidgets import * |
18 | from PyQt5.QtGui import * |
19 | from PyQt5.QtCore import * |
20 | |
21 | class GitlabEdit(QWidget): |
22 | textChanged = pyqtSignal() |
23 | |
24 | def __init__(self, parent = None): |
25 | super(GitlabEdit, self).__init__(parent) |
26 | self.initUI() |
27 | |
28 | def addLine(self, server, token): |
29 | items = [QTreeWidgetItem([server, token])] |
30 | self.treeWidget.addTopLevelItems(items) |
31 | |
32 | def addLineSlot(self): |
33 | server = self.serverEdit.text() |
34 | token = self.tokenEdit.text() |
35 | items = [QTreeWidgetItem([server, token])] |
36 | self.treeWidget.addTopLevelItems(items) |
37 | self.textChanged.emit() |
38 | |
39 | def deleteLineSlot(self): |
40 | self.treeWidget.takeTopLevelItem(self.treeWidget.currentIndex().row()) |
41 | self.textChanged.emit() |
42 | |
43 | def content(self): |
44 | number = self.treeWidget.topLevelItemCount() |
45 | items = [] |
46 | for i in range(0, number): |
47 | item = self.treeWidget.topLevelItem(i) |
48 | items.append({"server": item.text(0), "token": item.text(1)}) |
49 | return items |
50 | |
51 | def initUI(self): |
52 | vbox = QVBoxLayout() |
53 | hbox = QHBoxLayout() |
54 | self.setLayout(vbox) |
55 | self.treeWidget = QTreeWidget() |
56 | self.treeWidget.setColumnCount(2) |
57 | vbox.addWidget(self.treeWidget) |
58 | self.serverEdit = QLineEdit() |
59 | self.serverEdit.setPlaceholderText(self.tr("server")) |
60 | self.tokenEdit = QLineEdit() |
61 | self.tokenEdit.setPlaceholderText(self.tr("token")) |
62 | addbutton = QPushButton(self.tr("Add")) |
63 | addbutton.clicked.connect(self.addLineSlot) |
64 | removebutton = QPushButton(self.tr("Remove")) |
65 | removebutton.clicked.connect(self.deleteLineSlot) |
66 | hbox.addWidget(self.serverEdit) |
67 | hbox.addWidget(self.tokenEdit) |
68 | hbox.addWidget(addbutton) |
69 | hbox.addWidget(removebutton) |
70 | vbox.addLayout(hbox) |
71 |