aboutsummaryrefslogtreecommitdiffstats
path: root/Lib/defconQt/groupsView.py
blob: db4645fb7029bcbabd5f104f9db1a2c17c19c0c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class GroupsWindow(QWidget):
    def __init__(self, font, parent=None):
        super(GroupsWindow, self).__init__(parent, Qt.Window)
        self.font = font
        self.groups = sorted(font.groups.keys(), key=lambda t: t[0])

        self.groupsList = QListWidget(self)
        #self.groupsList.addItems(self.font.groups.keys())
        #self.groupsList.setEditTriggers(QAbstractItemView.DoubleClicked | QAbstractItemView.EditKeyPressed)
        for groupName in self.font.groups.keys():
            item = QListWidgetItem(groupName, self.groupsList)
            #item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable)
            item.setFlags(item.flags() | Qt.ItemIsEditable)
        self.groupsList.itemChanged.connect(self._groupRenamed)
        
        layout = QVBoxLayout(self)
        layout.addWidget(self.groupsList)
        self.setLayout(layout)
        
        self.setWindowTitle("%s%s%s%s" % ("Groups window – ", self.font.info.familyName, " ", self.font.info.styleName))
    
    def _groupRenamed(self):
        cur = self.groupsList.currentItem()
        # XXX: perf?
        index = self.groupsList.indexFromItem(cur)
        newKey = cur.text()
        self.font.groups[newKey] = self.font.groups[self.groups[index]]
        del self.font.groups[self.groups[index]]
        self.groups[index] = newKey
        #print(self.groupsList.currentItem().text())