def __init__(self, dock_widget): super().__init__(parent=dock_widget) self.setupUi(self) self.setWindowFlags(QtCore.Qt.Window) if isinstance(dock_widget, mslib.msui.wms_control.HSecWMSControlWidget): self.setWindowTitle(self.windowTitle() + " (Top View)") elif isinstance(dock_widget, mslib.msui.wms_control.VSecWMSControlWidget): self.setWindowTitle(self.windowTitle() + " (Side View)") self.dock_widget = dock_widget self.layers = {} self.layers_priority = [] self.current_layer: Layer = None self.threads = 0 self.filter_favourite = False self.settings = load_settings_qsettings("multilayers", { "favourites": [], "saved_styles": {} }) self.synced_reference = Layer(None, None, None, is_empty=True) self.listLayers.itemChanged.connect(self.multilayer_changed) self.listLayers.itemClicked.connect(self.multilayer_clicked) self.listLayers.itemClicked.connect(self.check_icon_clicked) self.listLayers.itemDoubleClicked.connect( self.multilayer_doubleclicked) self.listLayers.setVisible(True) self.leMultiFilter.setVisible(True) self.lFilter.setVisible(True) self.filterFavouriteAction = self.leMultiFilter.addAction( QtGui.QIcon(icons("64x64", "star_unfilled.png")), QtWidgets.QLineEdit.TrailingPosition) self.filterRemoveAction = self.leMultiFilter.addAction( QtGui.QIcon(icons("64x64", "remove.png")), QtWidgets.QLineEdit.TrailingPosition) self.filterRemoveAction.setVisible(False) self.filterRemoveAction.setToolTip("Click to remove the filter") self.filterFavouriteAction.setToolTip("Show only favourite layers") self.filterRemoveAction.triggered.connect( lambda x: self.remove_filter_triggered()) self.filterFavouriteAction.triggered.connect( lambda x: self.filter_favourite_toggled()) self.cbMultilayering.stateChanged.connect(self.toggle_multilayering) self.leMultiFilter.textChanged.connect(self.filter_multilayers) self.listLayers.setColumnWidth(2, 50) self.listLayers.setColumnWidth(1, 200) self.listLayers.setColumnHidden(2, True) self.listLayers.header().setSectionResizeMode( 0, QtWidgets.QHeaderView.Stretch) self.delete_shortcut = QtWidgets.QShortcut( QtGui.QKeySequence("Delete"), self) self.delete_shortcut.activated.connect(self.delete_server)
def __init__(self, parent=None, view=None): super(KMLOverlayControlWidget, self).__init__(parent) self.setupUi(self) self.view = view # canvas self.kml = None self.patch = None # patch refers to plottings on the map self.dict_files = {} # Dictionary of files added; key : patch , color , linewidth # Connect slots and signals. self.btSelectFile.clicked.connect(self.get_file) self.pushButton_remove.clicked.connect(self.remove_file) self.pushButton_select_all.clicked.connect(self.select_all) self.pushButton_unselect_all.clicked.connect(self.unselect_all) self.pushButton_merge.clicked.connect(self.merge_file) self.labelStatusBar.setText("Status: Click on Add KML Files to get started.") self.dialog = CustomizeKMLWidget(self) # create object of dialog UI Box self.listWidget.itemDoubleClicked.connect(self.open_customize_kml_dialog) self.dialog.pushButton_colour.clicked.connect(self.select_color) self.listWidget.itemChanged.connect(self.load_file) # list of files in ListWidget self.settings_tag = "kmldock" settings = load_settings_qsettings( self.settings_tag, {"filename": "", "linewidth": 5, "colour": (0, 0, 0, 1), "saved_files": {}}) # initial settings self.directory_location = settings["filename"] self.dialog.dsb_linewidth.setValue(settings["linewidth"]) # Restore previously opened files if settings["saved_files"] is not None: delete_files = [] # list to store non-existing files self.dict_files = settings["saved_files"] for file in self.dict_files: if os.path.isfile(file) is True: self.create_list_item(file) else: delete_files.append(file) # add non-existent files to list logging.info(file + " does not exist in the directory anymore") for file in delete_files: del self.dict_files[file] # remove non-existent files from dictionary self.load_file() palette = QtGui.QPalette(self.dialog.pushButton_colour.palette()) colour = QtGui.QColor() colour.setRgbF(*settings["colour"]) palette.setColor(QtGui.QPalette.Button, colour) self.dialog.pushButton_colour.setPalette(palette) # sets the last colour before closing KML Overlay self.dialog.dsb_linewidth.valueChanged.connect(self.select_linewidth)
def __init__(self, parent=None, view=None): super(SatelliteControlWidget, self).__init__(parent) self.setupUi(self) self.view = view # Currently loaded satellite overpass segments. self.overpass_segments = None # Connect slots and signals. self.btSelectFile.clicked.connect(self.select_file) self.btLoadFile.clicked.connect(self.load_file) self.cbSatelliteOverpasses.currentIndexChanged.connect(self.plot_overpass_track) self.settings_tag = "satellitedock" settings = load_settings_qsettings(self.settings_tag, {"filename": ""}) self.leFile.setText(settings["filename"])
def test_load_settings(self): settings = utils.load_settings_qsettings(self.tag) assert isinstance(settings, dict) assert settings["foo"] == "bar"
def load_settings(self): """Load settings from the file self.settingsfile. """ self.performance_settings = load_settings_qsettings( self.settings_tag, DEFAULT_PERFORMANCE)
def load_settings(self): """ Load settings from the file self.settingsfile. """ settings = load_settings_qsettings(self.settings_tag, {}) self.getView().set_map_appearance(settings)
def __init__(self, parent=None, view=None): super(KMLOverlayControlWidget, self).__init__(parent) self.setupUi(self) self.view = view # canvas self.kml = None self.dict_files = { } # Dictionary of files added; key : patch , color , linewidth self.colour = None # Connect slots and signals. self.btSelectFile.clicked.connect(self.get_file) self.pushButton_remove.clicked.connect(self.remove_file) self.pushButton_select_all.clicked.connect(self.select_all) self.pushButton_unselect_all.clicked.connect(self.unselect_all) self.pushButton_merge.clicked.connect(self.merge_file) self.labelStatusBar.setText( "Status: Click on Add KML Files to get started.") self.dsbx_linewidth.setValue( 0.1) # sets initial value as 0.1 for linewidth # Hiding the color and linewidth options. self.frame.hide() # setting flags to control self.load_file() while changing color and linewidth. self.flag = 0 # Flag for control of load_file() for linewidth self.flag2 = 0 # Flag for control of load_file() for linewidth # Connect slots and signals (For showing color and linewidth of clicked file). self.listWidget.itemClicked.connect(self.show_linewidth) self.pushButton_color.clicked.connect(self.select_color) self.dsbx_linewidth.valueChanged.connect(self.select_linewidth) self.listWidget.itemChanged.connect( self.flagop) # when item changes, flag operation happens. self.settings_tag = "kmldock" settings = load_settings_qsettings( self.settings_tag, { "filename": "", "linewidth": 5, "colour": (0, 0, 0, 1), "saved_files": {} }) # initial settings self.directory_location = settings["filename"] if parent is not None: parent.viewCloses.connect(self.save_settings) # Restore previously opened files if settings["saved_files"] is not None: delete_files = [] # list to store non-existing files self.dict_files = settings["saved_files"] for fn in self.dict_files: if os.path.isfile(fn) is True: self.create_list_item(fn) else: delete_files.append(fn) # add non-existent files to list logging.info( "'%s' does not exist in the directory anymore.", fn) for fn in delete_files: del self.dict_files[ fn] # remove non-existent files from dictionary self.load_file() # When KMLoverlaywidget is opened, it ensures that the # color of individual KML files are already shown as icons. self.set_color_icons() self.view.plot_kml(self)
def load_settings(self): """Load settings from the file self.settingsfile. """ settings = load_settings_qsettings(self.settings_tag) self.getView().set_settings(settings)
def __init__(self, parent=None, data_dir=mss_default.mss_dir, mscolab_server_url=mss_default.mscolab_server_url): """ Set up user interface """ super(MSSMscolabWindow, self).__init__(parent) self.setupUi(self) self.loggedInWidget.hide() # if token is None, not authorized, else authorized self.token = None # User related signals self.toggleConnectionBtn.clicked.connect(self.connect_handler) self.addUser.clicked.connect(self.add_user_handler) self.loginButton.clicked.connect(self.authorize) self.logoutButton.clicked.connect(self.logout) self.deleteAccountButton.clicked.connect(self.delete_account) self.helpBtn.clicked.connect(self.open_help_dialog) # Project related signals self.addProject.clicked.connect(self.add_project_handler) self.importBtn.clicked.connect(self.handle_import) self.exportBtn.clicked.connect(self.handle_export) self.workLocallyCheckBox.stateChanged.connect(self.handle_work_locally_toggle) self.save_ft.clicked.connect(self.save_wp_mscolab) self.fetch_ft.clicked.connect(self.fetch_wp_mscolab) self.chatWindowBtn.clicked.connect(self.open_chat_window) self.adminWindowBtn.clicked.connect(self.open_admin_window) self.versionHistoryBtn.clicked.connect(self.open_version_history_window) self.deleteProjectBtn.clicked.connect(self.handle_delete_project) # View related signals self.topview.clicked.connect(self.open_topview) self.sideview.clicked.connect(self.open_sideview) self.tableview.clicked.connect(self.open_tableview) # int to store active pid self.active_pid = None # storing access_level to save network call self.access_level = None # storing project_name to save network call self.active_project_name = None # Storing project list to pass to admin window self.projects = None # store active_flight_path here as object self.waypoints_model = None # Store active project's file path self.local_ftml_file = None # store a reference of window in class self.open_windows_mscolab = [] # connection object to interact with sockets self.conn = None # store window instances self.active_windows = [] # assign ids to view-window self.id_count = 0 # project window self.chat_window = None # Admin Window self.admin_window = None # Version History Window self.version_window = None # Merge waypoints dialog self.merge_dialog = None # Mscolab help dialog self.help_dialog = None # set data dir, uri self.data_dir = data_dir self.mscolab_server_url = None self.disable_action_buttons() # disabling login, add user button. they are enabled when url is connected self.loginButton.setEnabled(False) self.addUser.setEnabled(False) self.url.setEditable(True) self.url.setModel(MSCOLAB_URL_LIST) # fill value of mscolab url from config default_MSCOLAB = config_loader( dataset="default_MSCOLAB") add_mscolab_urls(self.url, default_MSCOLAB) self.emailid.setEnabled(False) self.password.setEnabled(False) # fill value of mscolab url if found in QSettings storage self.settings = \ load_settings_qsettings('mscolab', default_settings={'recent_mscolab_urls': [], 'auth': {}, 'server_settings': {}}) if len(self.settings['recent_mscolab_urls']) > 0: add_mscolab_urls(self.url, self.settings['recent_mscolab_urls'])