Exemple #1
0
    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)
Exemple #3
0
    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"])
Exemple #4
0
 def test_load_settings(self):
     settings = utils.load_settings_qsettings(self.tag)
     assert isinstance(settings, dict)
     assert settings["foo"] == "bar"
Exemple #5
0
 def load_settings(self):
     """Load settings from the file self.settingsfile.
     """
     self.performance_settings = load_settings_qsettings(
         self.settings_tag, DEFAULT_PERFORMANCE)
Exemple #6
0
 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)
Exemple #8
0
 def load_settings(self):
     """Load settings from the file self.settingsfile.
     """
     settings = load_settings_qsettings(self.settings_tag)
     self.getView().set_settings(settings)
Exemple #9
0
    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'])