コード例 #1
0
ファイル: main.py プロジェクト: spamalot/kdei3status
    def init(self):
        # Fill space if in a horizontal panel.
        self.setSizePolicy(QSizePolicy(QSizePolicy.Expanding,
                                        QSizePolicy.Preferred))

        layout = QGraphicsLinearLayout(Qt.Horizontal, self.applet)
        layout.setContentsMargins(0, 0, 0, 0)
        self.applet.setLayout(layout)

        self.icon = Plasma.IconWidget(self.applet)
        self.label = Plasma.Label(self.applet)
        # TODO: Improve handling of very long window titles.
        self.label.setWordWrap(False)

        layout.addItem(self.icon)
        layout.addItem(self.label)
        layout.setStretchFactor(self.label, 1)

        # Reasonable default size -- can be resized later by user.
        self.resize(500, 30)

        self.refreshTimer = QTimer()
        self.refreshTimer.setInterval(I3STATUS_REFRESH_INTERVAL)
        self.refreshTimer.timeout.connect(self.reloadI3statusText)
        self.statusIterator = execute(["i3status"])
        self.refreshTimer.start()

        self.windowChangeTimer = QTimer()
        self.windowChangeTimer.setSingleShot(True)
        self.windowChangeTimer.setInterval(TITLE_DISPLAY_TIMEOUT)
        self.windowChangeTimer.timeout.connect(self.hideTitleText)

        KWindowSystem.self().windowRemoved.connect(self.windowRemoved)
        KWindowSystem.self().windowChanged.connect(self.windowChanged)
        KWindowSystem.self().activeWindowChanged.connect(
            self.activeWindowChanged)