Beispiel #1
0
    def __init__(self, parent=None):
        super(GUI, self).__init__(parent)

        # internal modules
        self.config = Config()
        self.dictionary = Dictionary(self.config)
        self.frequencyList = FrequencyList()
        self.message = InfoMessage(self)
        self.userList = UserList()
        self.lyricsSearch = LyricsSearch()

        self.layout = QGridLayout()

        self.progress = QProgressBar()

        self.input = QTextEdit()
        self.parse = QPushButton('Par&se')
        self.topdf = QPushButton('P&DF')
        self.toggle = QPushButton('&Toggle')
        self.font = QPushButton('&Input')

        self.exclude = QPushButton('E&xclude')
        self.options = QPushButton('&Options')
        self.lyrics = QPushButton('Search for &lyrics')

        self.fontGroup = QGroupBox('Prettify')
        self.excludeGroup = QGroupBox('Exceptions')
        self.optionsGroup = QGroupBox('Settings')

        # fonts contents
        self.changeFont = QFontComboBox()
        self.changeSize = QDial()
        self.changeSelected = QRadioButton('Zoom selected')
        self.changeAll = QRadioButton('Zoom all')
        self.prettify = QPushButton('Prettify!')
        self.normalize = QPushButton('Normalize')

        self.fontLayout = QGridLayout()
        self.fontLayout.addWidget(self.changeSelected, 0, 0, 1, 1)
        self.fontLayout.addWidget(self.changeAll, 1, 0, 1, 1)
        self.fontLayout.addWidget(self.changeSize, 0, 1, 2, 1)
        self.fontLayout.addWidget(self.changeFont, 0, 2, 1, 2)
        self.fontLayout.addWidget(self.prettify, 1, 2, 1, 1)
        self.fontLayout.addWidget(self.normalize, 1, 3, 1, 1)
        self.fontGroup.setLayout(self.fontLayout)

        # exclude contents
        self.ignoreKana = QCheckBox('Ignore standalone kana')
        self.ignoreDuplicates = QCheckBox('Do not repeat the same words')
        self.byFrequency = QPushButton('By frequency')
        self.customExclude = QPushButton('User list')

        self.frequencyRange = QRangeSlider()
        self.loadList = QPushButton('From corpus')
        self.updateIgnore = QPushButton('Update')

        self.excludeLayout = QGridLayout()
        self.excludeLayout.addWidget(self.loadList, 0, 0)
        self.excludeLayout.addWidget(self.updateIgnore, 0, 1)
        self.excludeLayout.addWidget(self.frequencyRange, 1, 0, 1, 2)
        self.excludeLayout.addWidget(self.byFrequency, 2, 0)
        self.excludeLayout.addWidget(self.customExclude, 2, 1)
        self.excludeLayout.addWidget(self.ignoreKana, 3, 0, 1, 2)
        self.excludeLayout.addWidget(self.ignoreDuplicates, 4, 0, 1, 2)
        self.excludeGroup.setLayout(self.excludeLayout)

        self.corpusUpdated = False

        # options contents
        self.onTop = QCheckBox('Always on top')
        self.reSize = QCheckBox('Allow automatic resize')
        self.centerSize = QCheckBox('Center on resize')
        self.savePos = QCheckBox('Save window position on exit')
        self.saveSize = QCheckBox('Save window size on exit')
        self.saveButtons = QCheckBox('Save buttons states on exit')
        self.toTray = QCheckBox('Send to tray on close')
        self.plastique = QCheckBox("Use 'plastique' style")
        self.nextPage = QCheckBox('Skip page after main text')

        self.optionsLayout = QVBoxLayout()
        self.optionsLayout.addWidget(self.onTop)
        self.optionsLayout.addWidget(self.reSize)
        self.optionsLayout.addWidget(self.centerSize)
        self.optionsLayout.addWidget(self.savePos)
        self.optionsLayout.addWidget(self.saveSize)
        self.optionsLayout.addWidget(self.saveButtons)
        self.optionsLayout.addWidget(self.toTray)
        self.optionsLayout.addWidget(self.plastique)
        self.optionsLayout.addWidget(self.nextPage)
        self.optionsGroup.setLayout(self.optionsLayout)

        # progress
        self.layout.addWidget(self.progress, 0, 0, 1, 4)
        # buttons
        self.layout.addWidget(self.parse, 1, 0)
        self.layout.addWidget(self.topdf, 1, 1)
        self.layout.addWidget(self.font, 1, 2)
        self.layout.addWidget(self.toggle, 1, 3)
        # font group
        self.layout.addWidget(self.fontGroup, 2, 0, 1, 4)
        # text edit
        self.layout.addWidget(self.input, 3, 0, 1, 4)
        # exclude/options groups
        self.layout.addWidget(self.excludeGroup, 4, 0, 1, 4)
        self.layout.addWidget(self.optionsGroup, 5, 0, 1, 4)
        # buttons again
        self.layout.addWidget(self.exclude, 6, 0, 1, 2)
        self.layout.addWidget(self.options, 6, 2, 1, 2)
        self.layout.addWidget(self.lyrics, 7, 0, 1, 4)

        self.setLayout(self.layout)

        # tray icon
        self.trayIcon = QSystemTrayIcon(self)
        self.forbidClose = True

        self.initComposition()
        self.initComponents()
        self.initActions()