improve tabs + disconnection in main menu
This commit is contained in:
parent
f5df806196
commit
f24088a991
16
AO2XP.py
16
AO2XP.py
@ -25,10 +25,6 @@ app = QtGui.QApplication(sys.argv)
|
||||
path = sys.argv[0]
|
||||
demofile = None
|
||||
|
||||
# Experimental. No setting for this yet.
|
||||
tabsEnabled = False
|
||||
tabAmount = 2
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
demofile = sys.argv[-1]
|
||||
if not exists(demofile):
|
||||
@ -55,13 +51,17 @@ class MainWindow(QtGui.QMainWindow):
|
||||
self.gameWidget = None
|
||||
self.currentTab = 0
|
||||
|
||||
if tabsEnabled:
|
||||
# Experimental. No setting for this yet.
|
||||
self.tabsEnabled = False
|
||||
self.tabAmount = 2
|
||||
|
||||
if self.tabsEnabled:
|
||||
self.gameTabs = QtGui.QTabWidget(self)
|
||||
self.gameTabs.currentChanged.connect(self.currentTabChanged)
|
||||
self.widgetStackList = []
|
||||
self.gameWidgetList = []
|
||||
self.menuWidgetList = []
|
||||
for i in range(tabAmount):
|
||||
for i in range(self.tabAmount):
|
||||
print "[debug] Added instance", i
|
||||
self.widgetStackList.append(QtGui.QStackedWidget(self))
|
||||
self.gameWidgetList.append(gameview.GUI(self))
|
||||
@ -143,7 +143,7 @@ class MainWindow(QtGui.QMainWindow):
|
||||
self.gameWidget = self.gameWidgetList[self.currentTab]
|
||||
|
||||
def setFixedSize(self, w, h, initial = False):
|
||||
if tabsEnabled:
|
||||
if self.tabsEnabled:
|
||||
if initial:
|
||||
super(MainWindow, self).setFixedSize(w + 4, h + self.gameTabs.tabBar().height())
|
||||
return
|
||||
@ -156,7 +156,7 @@ class MainWindow(QtGui.QMainWindow):
|
||||
super(MainWindow, self).setFixedSize(w, h)
|
||||
|
||||
def aboutToQuit(self):
|
||||
if tabsEnabled:
|
||||
if self.tabsEnabled:
|
||||
for widget in self.gameWidgetList:
|
||||
widget.exitCommon()
|
||||
else:
|
||||
|
||||
24
mainmenu.py
24
mainmenu.py
@ -166,7 +166,7 @@ class Lobby(QtGui.QWidget):
|
||||
self.aoserverinfo.returnToLobby.connect(self.onClickedCancelconnect)
|
||||
self.aoserverinfo.setConnectProgress.connect(self.connectprogress.setText)
|
||||
self.aoserverinfo.readySoon.connect(self.connectcancel.hide)
|
||||
self.aoserverinfo.setWindowTitle.connect(self.mainWindow.setWindowTitle)
|
||||
self.aoserverinfo.setWindowTitle.connect(self.setTitle)
|
||||
self.aoserverinfo.canConnect.connect(self.setCanConnect)
|
||||
|
||||
self.masterserver = MasterServer()
|
||||
@ -175,7 +175,7 @@ class Lobby(QtGui.QWidget):
|
||||
self.masterserver.msgboxSignal.connect(self.showMessageBox)
|
||||
self.masterserver.start()
|
||||
|
||||
if not demo and self.autoconnect:
|
||||
if not demo and self.autoconnect and not self.mainWindow.tabsEnabled:
|
||||
self.aoserverinfo.setIP(self.autoconnect[-1], self.autoconnect[0], self.autoconnect[1], self.autoconnect[2], self.autoconnect[3])
|
||||
print '[debug]', 'Connecting automatically to ip: ' + self.autoconnect[0] + ', port: ' + str(self.autoconnect[1]) + ", websocket port: " + str(self.autoconnect[2]) + ", secure websocket port: " + str(self.autoconnect[3])
|
||||
self.aoserverinfo.stop()
|
||||
@ -299,6 +299,8 @@ class Lobby(QtGui.QWidget):
|
||||
self.serverinfo.show()
|
||||
self.btnSettings.show()
|
||||
self.btnDemo.show()
|
||||
self.aoserverinfo.stop()
|
||||
self.canConnect = False
|
||||
|
||||
def onClickedServerlist(self, item):
|
||||
self.svclicked = item
|
||||
@ -334,6 +336,13 @@ class Lobby(QtGui.QWidget):
|
||||
return QtGui.QMessageBox.question(self, title, message)
|
||||
elif type == 3: #warning
|
||||
return QtGui.QMessageBox.warning(self, title, message)
|
||||
|
||||
def setTitle(self, title):
|
||||
if self.mainWindow.tabsEnabled:
|
||||
self.mainWindow.gameTabs.setTabText(self.mainWindow.currentTab, title)
|
||||
else:
|
||||
self.mainWindow.setWindowTitle("AO2XP: " + title)
|
||||
|
||||
|
||||
class MasterServer(QtCore.QThread):
|
||||
gotServers = QtCore.pyqtSignal(list)
|
||||
@ -386,8 +395,10 @@ class AOServerInfo(QtCore.QThread):
|
||||
def stop(self):
|
||||
self.disconnect = True
|
||||
if self.isRunning():
|
||||
self.terminate()
|
||||
self.wait()
|
||||
if self.tcp:
|
||||
self.tcp.close()
|
||||
self.tcp = None
|
||||
self.quit()
|
||||
|
||||
def run(self):
|
||||
self.disconnect = False
|
||||
@ -423,8 +434,7 @@ class AOServerInfo(QtCore.QThread):
|
||||
|
||||
while True:
|
||||
if self.disconnect:
|
||||
try: self.tcp.close()
|
||||
except: pass
|
||||
self.tcp.close()
|
||||
return
|
||||
|
||||
pingtimer -= 1
|
||||
@ -443,7 +453,7 @@ class AOServerInfo(QtCore.QThread):
|
||||
self.returnToLobby.emit()
|
||||
return
|
||||
|
||||
self.setWindowTitle.emit("AO2XP: "+self.name)
|
||||
self.setWindowTitle.emit(self.name)
|
||||
return
|
||||
|
||||
error, totals = self.tcp.recv()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user