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