def load_map(self, map_name): try: map_data = MapData(str(map_name)) except: traceback.print_exc() else: self._data = map_data self._scene.clear() self._z_index = 0 self._draw() rect = self._scene.sceneRect() rect.adjust(-self._data.geometry.width * 2, -self._data.geometry.height * 2, self._data.geometry.width * 2, self._data.geometry.height * 2) self.setSceneRect(rect) self.update() self.update_() self.centerOn(self._data.geometry.center_x, self._data.geometry.center_y) self._mouse_location = MouseLocation() self._scene.addItem(self._mouse_location) config.data['maps']['last_zone'] = self._data.zone config.save()
def _save_to_config(self): config.data['push']['triggers'] =\ [ [x[0], x[1]] for x in sorted(self._custom_triggers.values(), key=lambda x: x[0]) if x[0] != "" ] config.save()
def _save_to_config(self): config.data['spells']['custom_timers'] =\ [ x.to_list() for x in sorted(self._custom_triggers.values(), key=lambda x: x.name) if x.name != "" ] config.save()
def toggle(self, _=None): if self.isVisible(): self.hide() config.data[self.name]['toggled'] = False else: self.set_flags() self.show() config.data[self.name]['toggled'] = True config.save()
def _save(self): for stacked_widget in self._widget_stack.findChildren(QFrame): for widget in stacked_widget.children(): wt = type(widget) if wt == QCheckBox: key1, key2 = widget.objectName().split(':') config.data[key1][key2] = widget.isChecked() elif wt == QSpinBox: key1, key2 = widget.objectName().split(':') config.data[key1][key2] = widget.value() elif wt == QLineEdit: key1, key2 = widget.objectName().split(':') config.data[key1][key2] = widget.text() config.save() self.accept()
def closeEvent(self, _): config.data[self.name]['toggled'] = False config.save()
def _menu(self, event): """Returns a new QMenu for system tray.""" menu = QMenu() menu.setAttribute(Qt.WA_DeleteOnClose) # check online for new version new_version_text = "" if self.new_version_available(): new_version_text = "Update Available {}".format(ONLINE_VERSION) else: new_version_text = "Version {}".format(CURRENT_VERSION) check_version_action = menu.addAction(new_version_text) menu.addSeparator() get_eq_dir_action = menu.addAction('Select EQ Logs Directory') menu.addSeparator() parser_toggles = set() for parser in self._parsers: toggle = menu.addAction(parser.name.title()) toggle.setCheckable(True) toggle.setChecked(config.data[parser.name]['toggled']) parser_toggles.add(toggle) menu.addSeparator() settings_action = menu.addAction('Settings') menu.addSeparator() quit_action = menu.addAction('Quit') action = menu.exec_(QCursor.pos()) if action == check_version_action: webbrowser.open('https://github.com/nomns/nparse/releases') elif action == get_eq_dir_action: dir_path = str(QFileDialog.getExistingDirectory( None, 'Select Everquest Logs Directory')) if dir_path: config.data['general']['eq_log_dir'] = dir_path config.save() self._toggle() elif action == settings_action: if self._settings.exec_(): # Update required settings for parser in self._parsers: if parser.windowOpacity() != config.data['general']['parser_opacity']: parser.setWindowOpacity( config.data['general']['parser_opacity'] / 100) parser.settings_updated() # some settings are saved within other settings automatically # force update for parser in self._parsers: if parser.name == "spells": parser.load_custom_timers() elif action == quit_action: if self._toggled: self._toggle() # save parser geometry for parser in self._parsers: g = parser.geometry() config.data[parser.name]['geometry'] = [ g.x(), g.y(), g.width(), g.height() ] config.save() self._system_tray.setVisible(False) self.quit() elif action in parser_toggles: parser = [ parser for parser in self._parsers if parser.name == action.text().lower()][0] parser.toggle()
def _reset_all(self, _): config.data['push']['triggers'] = DEFAULT_PUSH_REGEXES config.save() self._load_from_config()
def _level_change(self, _): config.data['spells']['level'] = self._level_widget.value() config.save()
def _toggle_custom_timers(self, _): config.data['spells']['use_custom_triggers'] = \ self._custom_timer_toggle.isChecked() config.save()
def _toggle_show_mouse_location(self, ): config.data['maps']['show_mouse_location'] = not config.data['maps']['show_mouse_location'] config.save()
def _toggle_show_grid(self, _): config.data['maps']['show_grid'] = not config.data['maps']['show_grid'] config.save() self._map.update_()
def _toggle_z_layers(self, _): config.data['maps']['use_z_layers'] = not config.data['maps']['use_z_layers'] config.save() self._map.update_()
def _toggle_auto_follow(self, _): config.data['maps']['auto_follow'] = not config.data['maps']['auto_follow'] config.save() self._map.center()
def _toggle_push_notifications(self, _): config.data['push']['push_enabled'] = \ self._push_toggle.isChecked() config.save()