def init_base_layout(self): self.base_layout = QGridLayout() self.base_layout.setAlignment(QtCore.Qt.AlignTop) header_left = Label(Translation.get_text('interface')) header_center = Label(Translation.get_text('bot')) header_right = Label(Translation.get_text('other')) header_left.setFixedWidth(400) header_center.setFixedWidth(400) header_right.setFixedWidth(400) self.left_layout = QVBoxLayout() self.center_layout = QVBoxLayout() self.right_layout = QVBoxLayout() self.left_layout.setAlignment(QtCore.Qt.AlignTop) self.center_layout.setAlignment(QtCore.Qt.AlignTop) self.right_layout.setAlignment(QtCore.Qt.AlignTop) self.base_layout.addWidget(header_left, 0, 0) self.base_layout.addWidget(VLine(), 0, 1) self.base_layout.addWidget(header_center, 0, 2) self.base_layout.addWidget(VLine(), 0, 3) self.base_layout.addWidget(header_right, 0, 4) self.base_layout.addWidget(HLine(), 1, 0) self.base_layout.addWidget(HLine(), 1, 2) self.base_layout.addWidget(HLine(), 1, 4) self.base_layout.addLayout(self.left_layout, 2, 0) self.base_layout.addWidget(VLine(), 2, 1) self.base_layout.addLayout(self.center_layout, 2, 2) self.base_layout.addWidget(VLine(), 2, 3) self.base_layout.addLayout(self.right_layout, 2, 4)
def table_widget(self): self.accounts_table = Table([("", 0), (Translation.get_text('email'), 150), (Translation.get_text('server'), 100), (Translation.get_text('name'), 180), (Translation.get_text('points'), 150)], scrolling_off=True, sorting_off=True)
def buttons_layout(self): layout = QGridLayout() remove_account_button = Button(Translation.get_text("remove_accounts")) change_password_button = Button(Translation.get_text("change_password")) remove_account_button.clicked.connect(self.button_clicked_remove_accounts) change_password_button.clicked.connect(self.button_clicked_change_password) layout.addWidget(remove_account_button, 0, 0) layout.addWidget(change_password_button, 0, 1) return layout
def load_servers_clicked(self): password = hashlib.sha256(self.password_field.text().encode("utf-8")).hexdigest() request_template = Requests.worlds(self.email_field.text(), password, Constants.DEVICE_ID, Constants.DEVICE_GROUP, Constants.IOS_VERSION) res = send_lak_request_template(request_template, None) if "info" in res: show_popup(Translation.get_text("tab_accounts_popup_error"), Translation.get_text("tab_accounts_wrong_credentials_popup_text")) self.fill_table_widget(None) else: self.fill_table_widget(res)
def email_password_layout(self): layout = QGridLayout() email_label = Label(Translation.get_text("email")) password_label = Label(Translation.get_text("password")) self.email_field = QLineEdit("") self.password_field = QLineEdit("") load_servers_button = Button(Translation.get_text("load_servers")) load_servers_button.clicked.connect(self.load_servers_clicked) layout.addWidget(email_label, 0, 0) layout.addWidget(self.email_field, 0, 1) layout.addWidget(password_label, 0, 2) layout.addWidget(self.password_field, 0, 3) layout.addWidget(load_servers_button, 1, 0) return layout
def init_left_layout_language(self): label = Label("{}: ".format(Translation.get_text("language_multi"))) inp = QComboBox() inp.addItems(Translation.LANGUAGES) inp.setCurrentText(Settings.get('language')) language_layout = QGridLayout() language_layout.addWidget(label, 0, 0) language_layout.addWidget(inp, 0, 1) warning = Label(Translation.get_text('language_warning')) warning.setAlignment(QtCore.Qt.AlignCenter) inp.currentTextChanged.connect(self.change_language) self.left_layout.addLayout(language_layout) self.left_layout.addWidget(warning)
def add_button_clicked(self): servers_to_connect = [] for index in range(self.servers_table.rowCount()): if self.servers_table.item(index, 0).checkState() == QtCore.Qt.Checked: print(self.servers_table.item(index, 1).text()) servers_to_connect.append(self.servers_table.item(index, 2).text()) if len(servers_to_connect) == 0: show_popup(Translation.get_text("error"), Translation.get_text("no_servers_selected_popup")) for server_id in servers_to_connect: account_database = Database_Account() account_database.email = self.email_field.text() account_database.password = hashlib.sha256(self.password_field.text().encode("utf-8")).hexdigest() account_database.world = int(server_id) account_database.active = True account_database.order = len(self.accounts_thread.get_accounts()) result = self.accounts_thread.add_account(account_database) if result: add_account(account_database.email, account_database.password, account_database.world) self.fill_table_widget(None) # clean servers table
def init_center_layout_minimum_time_between_requests(self): label = Label(Translation.get_text('minimum_time_between_requests')) label.setAlignment(QtCore.Qt.AlignCenter) self.center_layout.addWidget(label) selector = QSlider(QtCore.Qt.Horizontal) selector.setMinimum(100) selector.setMaximum(6000) selector.setSingleStep(100) selector.setValue(int(Settings.get('minimum_time_between_requests'))) selector.setTickPosition(QSlider.TicksBelow) selector.setTickInterval(100) self.center_layout.addWidget(selector) label = Label('- ' + str(selector.value() / 1000.0) + ' ' + Translation.get_text('seconds') + ' -') label.setAlignment(QtCore.Qt.AlignCenter) self.center_layout.addWidget(label) self.minimum_time_between_requests_old = int( Settings.get('minimum_time_between_requests')) selector.valueChanged.connect(lambda x: label.setText('- ' + str( x / 1000.0) + ' ' + Translation.get_text('seconds') + ' -')) def sync(): v1 = selector.value() if v1 != self.minimum_time_between_requests_old: self.minimum_time_between_requests_old = v1 Settings.put('minimum_time_between_requests', str(v1)) self.timer = QTimer() self.timer.setInterval(1000) self.timer.timeout.connect(sync) self.timer.start()
def restart(self): while self.tab_widget.count() > 0: self.tab_widget.removeTab(0) self.tab_widget.addTab(Overview(self.accounts_thread), Translation.get_text("overview")) self.tab_widget.addTab(AddAccount(self.accounts_thread), Translation.get_text("add_accounts"))
def server_table_widget(self): self.servers_table = Table([("", 0), (Translation.get_text('server'), 100), (Translation.get_text('id'), 180)], sorting_off=True)
def add_button_widget(self): button = Button(Translation.get_text("add_accounts")) button.clicked.connect(self.add_button_clicked) return button