From 960cef15c9b37dab25f2e34bdb2b25adc7b8ca8c Mon Sep 17 00:00:00 2001 From: Et0h Date: Sat, 1 Nov 2014 11:56:47 +0000 Subject: [PATCH] Hide label text if window is too narrow --- syncplay/ui/gui.py | 104 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 79 insertions(+), 25 deletions(-) diff --git a/syncplay/ui/gui.py b/syncplay/ui/gui.py index 204703f..5164751 100644 --- a/syncplay/ui/gui.py +++ b/syncplay/ui/gui.py @@ -1,5 +1,5 @@ from PySide import QtGui # @UnresolvedImport -from PySide.QtCore import Qt, QSettings, QSize, QPoint # @UnresolvedImport +from PySide.QtCore import Qt, QSettings, QSize, QPoint from syncplay import utils, constants, version from syncplay.messages import getMessage import sys @@ -60,26 +60,13 @@ class MainWindow(QtGui.QMainWindow): self._syncplayClient = client self.roomInput.setText(self._syncplayClient.getRoom()) self.config = self._syncplayClient.getConfig() + constants.SHOW_BUTTON_LABELS = self.config['showButtonLabels'] try: if self.contactLabel and not self.config['showContactInfo']: self.contactLabel.hide() - if not self.config['showButtonLabels']: - if constants.MERGE_PLAYPAUSE_BUTTONS: - self.playpauseButton.setText("") - else: - self.playButton.setText("") - self.playButton.setFixedWidth(self.playButton.minimumSizeHint().width()) - self.pauseButton.setText("") - self.pauseButton.setFixedWidth(self.pauseButton.minimumSizeHint().width()) - self.roomButton.setText("") - self.roomButton.setFixedWidth(self.roomButton.minimumSizeHint().width()) - self.seekButton.setText("") - self.seekButton.setFixedWidth(self.seekButton.minimumSizeHint().width()) - self.unseekButton.setText("") - self.unseekButton.setFixedWidth(self.unseekButton.minimumSizeHint().width()) - self.roomGroup.setFixedWidth(self.roomGroup.sizeHint().width()) - self.seekGroup.setFixedWidth(self.seekGroup.minimumSizeHint().width()) - self.miscGroup.setFixedWidth(self.miscGroup.minimumSizeHint().width()) + if not constants.SHOW_BUTTON_LABELS: + self.hideRoomSeekLabels() + self.hideMiscLabels() except (): pass @@ -175,6 +162,9 @@ class MainWindow(QtGui.QMainWindow): self.listTreeView.setItemsExpandable(False) self.listTreeView.setRootIsDecorated(False) self.listTreeView.expandAll() + self.updateListGeometry() + + def updateListGeometry(self): roomtocheck = 0 while self.listTreeModel.item(roomtocheck): self.listTreeView.setFirstColumnSpanned(roomtocheck, self.listTreeView.rootIndex(), True) @@ -262,6 +252,69 @@ class MainWindow(QtGui.QMainWindow): self.exitSyncplay() self.saveSettings() + def setupSizes(self): + self.hideRoomSeekLabels() + self.miscThreshold = self.seekGroup.sizeHint().width()+self.roomGroup.sizeHint().width()+self.miscGroup.sizeHint().width()+30 + self.hideMiscLabels() + self.setMinimumWidth(self.seekGroup.sizeHint().width()+self.roomGroup.sizeHint().width()+self.miscGroup.sizeHint().width()+30) + self.seekGroup.setMinimumWidth(self.seekGroup.sizeHint().width()) + self.roomGroup.setMinimumWidth(self.roomGroup.sizeHint().width()) + self.miscGroup.setMinimumWidth(self.miscGroup.sizeHint().width()) + self.showRoomSeekLabels() + self.showMiscLabels() + windowMaximumWidth = self.maximumWidth() + self.seekGroup.setMaximumWidth(self.seekGroup.sizeHint().width()) + self.roomGroup.setMaximumWidth(self.roomGroup.sizeHint().width()) + self.miscGroup.setMaximumWidth(self.miscGroup.sizeHint().width()) + self.setMaximumWidth(windowMaximumWidth) + self.roomSeekThreshold = self.mainLayout.sizeHint().width() + + def hideRoomSeekLabels(self): + self.roomButton.setText("") + self.seekButton.setText("") + + def hideMiscLabels(self): + self.unseekButton.setText("") + if constants.MERGE_PLAYPAUSE_BUTTONS: + self.playpauseButton.setText("") + else: + self.playButton.setText("") + self.pauseButton.setText("") + + def showRoomSeekLabels(self): + if not constants.SHOW_BUTTON_LABELS: + return + self.roomButton.setText(getMessage("joinroom-guibuttonlabel")) + self.seekButton.setText(getMessage("seektime-guibuttonlabel")) + + def showMiscLabels(self): + self.unseekButton.setText(getMessage("undoseek-guibuttonlabel")) + if not constants.SHOW_BUTTON_LABELS: + return + if constants.MERGE_PLAYPAUSE_BUTTONS: + self.playpauseButton.setText(getMessage("togglepause-guibuttonlabel")) + else: + self.playButton.setText(getMessage("play-guibuttonlabel")) + self.pauseButton.setText(getMessage("pause-guibuttonlabel")) + + def resizeEvent(self,resizeEvent): + self.updateListGeometry() + if self.roomGroup and self.miscThreshold: + currentWidth = self.mainFrame.size().width() + if currentWidth < self.miscThreshold: + if self.unseekButton.text() != "": + self.hideMiscLabels() + else: + if self.unseekButton.text() == "": + self.showMiscLabels() + + if currentWidth < self.roomSeekThreshold: + if self.roomButton.text() != "": + self.hideRoomSeekLabels() + else: + if self.roomButton.text() == "": + self.showRoomSeekLabels() + def loadMediaBrowseSettings(self): settings = QSettings("Syncplay", "MediaBrowseDialog") settings.beginGroup("MediaBrowseDialog") @@ -402,9 +455,9 @@ class MainWindow(QtGui.QMainWindow): window.addSeekBox(MainWindow) window.addMiscBox(MainWindow) - window.bottomLayout.addWidget(window.roomGroup, Qt.AlignLeft) - window.bottomLayout.addWidget(window.seekGroup, Qt.AlignLeft) - window.bottomLayout.addWidget(window.miscGroup, Qt.AlignLeft) + window.bottomLayout.addWidget(window.roomGroup) + window.bottomLayout.addWidget(window.seekGroup) + window.bottomLayout.addWidget(window.miscGroup) window.mainLayout.addLayout(window.bottomLayout, Qt.AlignLeft) @@ -425,7 +478,7 @@ class MainWindow(QtGui.QMainWindow): window.roomLayout.addWidget(window.roomButton) window.roomGroup.setLayout(window.roomLayout) - window.roomGroup.setFixedSize(window.roomGroup.sizeHint()) + window.roomGroup.setFixedHeight(window.roomGroup.sizeHint().height()) def addSeekBox(self, window): window.seekGroup = QtGui.QGroupBox(getMessage("seek-heading-label")) @@ -446,7 +499,7 @@ class MainWindow(QtGui.QMainWindow): window.seekLayout.addWidget(window.seekButton) window.seekGroup.setLayout(window.seekLayout) - window.seekGroup.setFixedSize(window.seekGroup.sizeHint()) + window.seekGroup.setFixedHeight(window.seekGroup.sizeHint().height()) def addMiscBox(self, window): window.miscGroup = QtGui.QGroupBox(getMessage("othercommands-heading-label")) @@ -479,7 +532,7 @@ class MainWindow(QtGui.QMainWindow): self.pauseButton.setToolTip(getMessage("pause-tooltip")) window.miscGroup.setLayout(window.miscLayout) - window.miscGroup.setFixedSize(window.miscGroup.sizeHint()) + window.miscGroup.setFixedHeight(window.miscGroup.sizeHint().height()) def addMenubar(self, window): @@ -589,9 +642,10 @@ class MainWindow(QtGui.QMainWindow): self.addBottomLayout(self) self.addMenubar(self) self.addMainFrame(self) + self.setupSizes() self.loadSettings() self.setWindowIcon(QtGui.QIcon(self.resourcespath + "syncplay.png")) self.setWindowFlags( self.windowFlags() & Qt.WindowCloseButtonHint & Qt.WindowMinimizeButtonHint & ~Qt.WindowContextHelpButtonHint) self.show() - self.setAcceptDrops(True) \ No newline at end of file + self.setAcceptDrops(True)