def __init__(self, session, parent = None): QWidget.__init__(self, parent) self.parent = parent self.threads = [] self.timer = new_timer(10) self.connect(self.timer, SIGNAL("timeout()"), self.setSpacingByTimer) self.spacingTimers = [] self.tabs = [] self.session = session # Layout vLayout = QVBoxLayout(self) self.wLayout = QHBoxLayout() vLayout.addLayout(self.wLayout) self.netStatusLabel = QLabel() self.netStatusLabel.setMinimumWidth(200) self.wLayout.addWidget(self.netStatusLabel) self.updateNetStatusLabelThread = updateNetStatusThread(self) self.updateNetStatusLabelThread.start() self.connect(self.updateNetStatusLabelThread, SIGNAL('update(int, int)'), self.updateNetStatusLabel) # Spacing self.wLayout.setSpacing(self.newSpacingSize()) # Search Box self.searchBox = SearchLineEdit() self.searchBox.setPlaceholderText("Search torrent file") self.connect(self.searchBox, SIGNAL('returnPressed()'), self.searchTorrent) self.connect(self.searchBox.searchButton, SIGNAL('clicked()'), self.searchTorrent) self.connect(self.searchBox, SIGNAL('focusChange()'), self.timer.start) self.wLayout.addWidget(self.searchBox) self.tabWidget = QTabWidget(self) #self.tabWidget.setTabPosition(QTabWidget.South) self.tabWidget.setMovable(True) vLayout.addWidget(self.tabWidget) # Tabs self.DownloadTab = DownloadTab() self.DownloadTabIndex = self.tabWidget.addTab(self.DownloadTab, QIcon("./img/download.svg"), 'Downloads') self.tabWidget.setStyleSheet(''' QPushButton { border: none; } QToolButton { border: none; } ''') self.updateNetStatusLabel(0, 0)
def searchTorrent(self): if str(self.searchBox.displayText()).strip(): # Add a new search tab SearchTab = SearchTabClass() thread = SearchThread(self.searchBox.displayText().replace(" ", "%20")) thread.start() self.connect(thread, SIGNAL("update(PyQt_PyObject)"), SearchTab.SearchTable.addResults) SearchTabIndex = self.tabWidget.addTab(SearchTab, QIcon("./img/loading/loading-0.png"), 'Search "%s"' % self.searchBox.displayText()) # Loading icon loadingIcon = loadingIconClass(lambda icon: self.tabWidget.setTabIcon(self.tabWidget.indexOf(SearchTab), icon)) timer = new_timer(50) timer.connect(timer, SIGNAL("timeout()"), loadingIcon.update); self.connect(thread, SIGNAL('finish()'), lambda: loadingIcon.finish(timer)) # Clear the search box self.searchBox.clear() # Add close button to search tab closeButton = QPushButton(QIcon("./img/close.png"), "") self.tabWidget.tabBar().setTabButton(SearchTabIndex, QTabBar.RightSide, closeButton) self.connect(closeButton, SIGNAL('clicked()'), thread.quit) self.connect(closeButton, SIGNAL('clicked()'), lambda: self.RemoveSearchTorrent(SearchTab)) # Add a new download self.connect(SearchTab.SearchTable, SIGNAL('doubleClicked (const QModelIndex)'), lambda index: self.torrentAdd(SearchTab.SearchTable.results[index.row()]))