def __init__(self, parent = None): QtGui.QWidget.__init__(self, parent) Gui.set_sizing(self, 0, 1) self.main_window = parent self.games = [] self.default_game_path = '~/play/ants/dist' self.loader = LoadThread() self.loader.ready.connect(self.on_game_loaded) self.loader.progress.connect(self.on_game_progress) self.stack = QtGui.QStackedLayout() # Game Path selection self.gp = QtGui.QWidget() self.gp.hbox = Gui.new_hbox(self.gp, 1, 6, -1) self.gp.hbox.setContentsMargins(4, 1, 1, 1) self.gp.folder = Gui.new_LineEdit(self.gp.hbox, '', 300) self.gp.folder.setFocusPolicy(QtCore.Qt.NoFocus) self.gp.browse = Gui.new_PushButton(self.gp.hbox, " Browse ", self.on_browse_folder, 1) self.gp.status = Gui.new_Label(self.gp.hbox, 'Select folder where game replays reside', -1) self.gp.status.setPalette(Gui.GRAY_TEXT) self.gp.next = Gui.new_PushButton(self.gp.hbox, "Next", self.switch_to_gs, 1) self.gp.next.setEnabled(False) # Game Selection self.gs = QtGui.QWidget() self.gs.hbox = Gui.new_hbox(self.gs, 1, 6, -1) self.gs.back = Gui.new_PushButton(self.gs.hbox, "Back", self.switch_to_gp, 1) self.gs.combo = Gui.new_Combo(self.gs.hbox, None, self.on_game_selected, 1) self.gs.progress_bar = QtGui.QProgressBar() Gui.embox_and_size(self.gs.hbox, self.gs.progress_bar, None, 200) self.gs.progress_bar.setRange(0, 100) self.gs.progress_bar.setVisible(False) self.gs.status = Gui.new_Label(self.gs.hbox, 'Please select a game replay', -1) self.gs.status.setPalette(Gui.GRAY_TEXT) self.gs.next = Gui.new_PushButton(self.gs.hbox, "Next", self.switch_to_gr, 1) self.gs.next.setEnabled(False) # Game running self.gr = QtGui.QWidget() self.gr.hbox = Gui.new_hbox(self.gr, 1, 4, -1) self.gr.back = Gui.new_PushButton(self.gr.hbox, "Back", self.switch_to_gs, 1) self.gr.sep1 = Gui.new_Label(self.gr.hbox, '', 12) self.gr.play = Gui.new_PushButton(self.gr.hbox, "Play", self.on_play_pause, 1) self.gr.speed_label = Gui.new_Label(self.gr.hbox, 'Speed:', 1) self.gr.speed = Gui.new_Combo(self.gr.hbox, ['512x', '256x', '128x', '64x', '32x', '16x', '8x', '4x', '2x', '1x'], self.on_speed_changed, 1) self.gr.step = Gui.new_PushButton(self.gr.hbox, "Step", self.on_step, 1) self.gr.progress_bar = QtGui.QProgressBar() Gui.embox_and_size(self.gr.hbox, self.gr.progress_bar, None, 100) self.gr.progress_bar.setTextVisible(True) self.gr.eta = Gui.new_Label(self.gr.hbox, '', 1) self.gr.eta.setPalette(Gui.GRAY_TEXT) # self.gr.eta.setTooltip("ETA 'til end of game at current speed") self.gr.sep2 = Gui.new_Label(self.gr.hbox, '', 4) self.gr.p1 = Gui.new_Label(self.gr.hbox, '', -1) self.gr.p1.setPalette(Gui.RED_TEXT) self.gr.p2 = Gui.new_Label(self.gr.hbox, '', -1) self.gr.p2.setPalette(Gui.BLUE_TEXT) self.gr.status = Gui.new_Label(self.gr.hbox, '', -1) self.gr.status.setPalette(Gui.GRAY_TEXT) self.gr.fog = Gui.new_CheckBox(self.gr.hbox, 'Fog', self.on_fog, 1) self.gr.fog.setChecked(True) # timer self.timer = QtCore.QTimer(self) self.timer.timeout.connect(self.run_turn) self.on_speed_changed(0) # Stack self.stack.addWidget(self.gp) self.stack.addWidget(self.gs) self.stack.addWidget(self.gr) self.stack.setCurrentIndex(0) self.setLayout(self.stack) if os.path.isdir(Gui.resolved_path(self.default_game_path)): self.set_game_path(self.default_game_path) if len(self.games): self.switch_to_gs() else: self.default_game_path = '~'