def _setupUI(self): label = ClickableQLabel() label.setPixmap(QtGui.QPixmap(":/images/snakefire-big.png")) label.setAlignment(QtCore.Qt.AlignCenter) self.connect(label, QtCore.SIGNAL("clicked()"), self._website) urlLabel = QtGui.QLabel("<a href=\"http://{url}\">{name}</a>".format( url=self._mainFrame.DOMAIN, name=self._mainFrame.DOMAIN)) urlLabel.setOpenExternalLinks(True) websiteBox = QtGui.QHBoxLayout() websiteBox.addWidget(QtGui.QLabel(self._mainFrame._("Website:"))) websiteBox.addWidget(urlLabel) websiteBox.addStretch(1) twitterLabel = QtGui.QLabel( "<a href=\"http://twitter.com/snakefirelinux\">@snakefirelinux</a>" ) twitterLabel.setOpenExternalLinks(True) twitterBox = QtGui.QHBoxLayout() twitterBox.addWidget(QtGui.QLabel(self._mainFrame._("Twitter:"))) twitterBox.addWidget(twitterLabel) twitterBox.addStretch(1) layout = QtGui.QVBoxLayout() layout.addWidget(label) layout.addStretch(0.5) layout.addWidget( QtGui.QLabel("<strong>{name} v{version}</strong>".format( name=self._mainFrame.NAME, version=self._mainFrame.VERSION))) layout.addStretch(0.5) layout.addLayout(websiteBox) layout.addLayout(twitterBox) # Buttons self._okButton = QtGui.QPushButton(self._mainFrame._("&OK"), self) self.connect(self._okButton, QtCore.SIGNAL('clicked()'), self.close) # Main layout hbox = QtGui.QHBoxLayout() hbox.addStretch(1) hbox.addWidget(self._okButton) vbox = QtGui.QVBoxLayout() vbox.addLayout(layout) vbox.addLayout(hbox) self.setLayout(vbox)
def _setupRoomUI(self, room): topic = room.topic if room.topic else "" topicLabel = ClickableQLabel(topic) topicLabel.setToolTip(self._("Click here to change room's topic")) topicLabel.setWordWrap(True) self.connect(topicLabel, QtCore.SIGNAL("clicked()"), self.changeTopic) view = SnakeFireWebView(self) view.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) frame = view.page().mainFrame() #Send all link clicks to systems web browser view.page().setLinkDelegationPolicy(QtWebKit.QWebPage.DelegateAllLinks) def linkClicked(url): QtGui.QDesktopServices.openUrl(url) view.connect(view, QtCore.SIGNAL("linkClicked (const QUrl&)"), linkClicked) # Support auto scroll when needed def autoScroll(size): frame.scroll(0, size.height()) frame.connect(frame, QtCore.SIGNAL("contentsSizeChanged (const QSize&)"), autoScroll) usersList = QtGui.QListWidget() filesLabel = QtGui.QLabel("") filesLabel.setOpenExternalLinks(True) filesLabel.setWordWrap(True) filesLabel.hide() uploadButton = QtGui.QPushButton(self._("&Upload new file")) self.connect(uploadButton, QtCore.SIGNAL("clicked()"), self.uploadFile) uploadProgressBar = QtGui.QProgressBar() uploadProgressLabel = QtGui.QLabel(self._("Uploading:")) uploadCancelButton = QtGui.QPushButton(self._("Cancel")) self.connect(uploadCancelButton, QtCore.SIGNAL("clicked()"), self.uploadCancel) uploadLayout = QtGui.QHBoxLayout() uploadLayout.addWidget(uploadProgressLabel) uploadLayout.addWidget(uploadProgressBar) uploadLayout.addWidget(uploadCancelButton) uploadWidget = QtGui.QWidget() uploadWidget.setLayout(uploadLayout) uploadWidget.hide() leftFrameLayout = QtGui.QVBoxLayout() leftFrameLayout.addWidget(topicLabel) leftFrameLayout.addWidget(view) leftFrameLayout.addWidget(uploadWidget) rightFrameLayout = QtGui.QVBoxLayout() rightFrameLayout.addWidget(usersList) rightFrameLayout.addWidget(filesLabel) rightFrameLayout.addWidget(uploadButton) rightFrameLayout.addStretch(1) leftFrame = QtGui.QWidget() leftFrame.setLayout(leftFrameLayout) rightFrame = QtGui.QWidget() rightFrame.setLayout(rightFrameLayout) splitter = QtGui.QSplitter() splitter.addWidget(leftFrame) splitter.addWidget(rightFrame) splitter.setSizes( [splitter.size().width() * 0.75, splitter.size().width() * 0.25]) index = self._tabs.addTab(splitter, room.name) self._tabs.setCurrentIndex(index) if not self.COLORS["normal"]: self.COLORS["normal"] = self._tabs.tabBar().tabTextColor(index) else: self._tabs.tabBar().setTabTextColor(index, self.COLORS["normal"]) return { "tab": index, "view": view, "frame": frame, "usersList": usersList, "topicLabel": topicLabel, "filesLabel": filesLabel, "uploadButton": uploadButton, "uploadWidget": uploadWidget, "uploadProgressBar": uploadProgressBar, "uploadProgressLabel": uploadProgressLabel }
def _setupRoomUI(self, room): topicLabel = ClickableQLabel(room.topic) topicLabel.setToolTip(self._("Click here to change room's topic")) topicLabel.setWordWrap(True) self.connect(topicLabel, QtCore.SIGNAL("clicked()"), self.changeTopic) editor = QtGui.QTextBrowser() editor.setOpenExternalLinks(True) usersList = QtGui.QListWidget() filesLabel = QtGui.QLabel("") filesLabel.setOpenExternalLinks(True) filesLabel.setWordWrap(True) filesLabel.hide() uploadButton = QtGui.QPushButton(self._("&Upload new file")) self.connect(uploadButton, QtCore.SIGNAL("clicked()"), self.uploadFile) uploadProgressBar = QtGui.QProgressBar() uploadProgressLabel = QtGui.QLabel(self._("Uploading:")) uploadCancelButton = QtGui.QPushButton(self._("Cancel")) self.connect(uploadCancelButton, QtCore.SIGNAL("clicked()"), self.uploadCancel) uploadLayout = QtGui.QHBoxLayout() uploadLayout.addWidget(uploadProgressLabel) uploadLayout.addWidget(uploadProgressBar) uploadLayout.addWidget(uploadCancelButton) uploadWidget = QtGui.QWidget() uploadWidget.setLayout(uploadLayout) uploadWidget.hide() leftFrameLayout = QtGui.QVBoxLayout() leftFrameLayout.addWidget(topicLabel) leftFrameLayout.addWidget(editor) leftFrameLayout.addWidget(uploadWidget) rightFrameLayout = QtGui.QVBoxLayout() rightFrameLayout.addWidget(QtGui.QLabel(self._("Users in room:"))) rightFrameLayout.addWidget(usersList) rightFrameLayout.addWidget(filesLabel) rightFrameLayout.addWidget(uploadButton) rightFrameLayout.addStretch(1) leftFrame = QtGui.QWidget() leftFrame.setLayout(leftFrameLayout) rightFrame = QtGui.QWidget() rightFrame.setLayout(rightFrameLayout) splitter = QtGui.QSplitter() splitter.addWidget(leftFrame) splitter.addWidget(rightFrame) splitter.setSizes( [splitter.size().width() * 0.75, splitter.size().width() * 0.25]) index = self._tabs.addTab(splitter, room.name) self._tabs.setCurrentIndex(index) if not self.COLORS["tabs"]["normal"]: self.COLORS["tabs"]["normal"] = self._tabs.tabBar().tabTextColor( index) else: self._tabs.tabBar().setTabTextColor(index, self.COLORS["tabs"]["normal"]) return { "tab": index, "editor": editor, "usersList": usersList, "topicLabel": topicLabel, "filesLabel": filesLabel, "uploadButton": uploadButton, "uploadWidget": uploadWidget, "uploadProgressBar": uploadProgressBar, "uploadProgressLabel": uploadProgressLabel }