예제 #1
0
파일: mapcanvas.py 프로젝트: rm-you/nparse
    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()
예제 #2
0
 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()
예제 #3
0
 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()
예제 #4
0
파일: parser.py 프로젝트: rm-you/nparse
 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()
예제 #5
0
 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()
예제 #6
0
파일: parser.py 프로젝트: rm-you/nparse
 def closeEvent(self, _):
     config.data[self.name]['toggled'] = False
     config.save()
예제 #7
0
파일: nparse.py 프로젝트: rm-you/nparse
    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()
예제 #8
0
 def _reset_all(self, _):
     config.data['push']['triggers'] = DEFAULT_PUSH_REGEXES
     config.save()
     self._load_from_config()
예제 #9
0
 def _level_change(self, _):
     config.data['spells']['level'] = self._level_widget.value()
     config.save()
예제 #10
0
 def _toggle_custom_timers(self, _):
     config.data['spells']['use_custom_triggers'] = \
         self._custom_timer_toggle.isChecked()
     config.save()
예제 #11
0
 def _toggle_show_mouse_location(self, ):
     config.data['maps']['show_mouse_location'] = not config.data['maps']['show_mouse_location']
     config.save()
예제 #12
0
 def _toggle_show_grid(self, _):
     config.data['maps']['show_grid'] = not config.data['maps']['show_grid']
     config.save()
     self._map.update_()
예제 #13
0
 def _toggle_z_layers(self, _):
     config.data['maps']['use_z_layers'] = not config.data['maps']['use_z_layers']
     config.save()
     self._map.update_()
예제 #14
0
 def _toggle_auto_follow(self, _):
     config.data['maps']['auto_follow'] = not config.data['maps']['auto_follow']
     config.save()
     self._map.center()
예제 #15
0
파일: spells.py 프로젝트: cfurgang/nparse
 def _toggle_push_notifications(self, _):
     config.data['push']['push_enabled'] = \
         self._push_toggle.isChecked()
     config.save()