Beispiel #1
0
class DataWidget(ui_datawidget.Ui_widget, WidgetBase):
    def __init__(self, parent=None):
        super(DataWidget, self).__init__(parent)
        self.setupUi(self)
        self.model = QFileSystemModel()
        self.settings = None
        allfilters = []
        filters = re.findall(
            r"\((.*?)\)",
            QgsProviderRegistry.instance().fileVectorFilters())[1:]
        for filter in filters:
            allfilters = allfilters + filter.split(" ")

        filters += re.findall(
            r"\((.*?)\)",
            QgsProviderRegistry.instance().fileRasterFilters())[1:]
        for filter in filters:
            allfilters = allfilters + filter.split(" ")
        self.model.setNameFilters(allfilters)
        self.model.setNameFilterDisables(False)
        self.listDataList.setModel(self.model)
        self.btnAddData.pressed.connect(self.open_data_folder)
        for col in range(self.model.columnCount())[1:]:
            self.listDataList.hideColumn(col)
        self.service = None

    def open_data_folder(self):
        """
        Open the data folder of the project using the OS
        """
        path = os.path.join(self.data['data_root'])
        openfolder(path)

    def set_data(self, data):
        super(DataWidget, self).set_data(data)
        self.service = DataService(self.config)

        root = data['data_root']

        if not os.path.exists(root):
            os.mkdir(root)
        self.model.setRootPath(root)
        self.listDataList.setRootIndex(self.model.index(root))
        self.refresh()

    def write_config(self):
        self.logger.info("Data write config")
        DataService(self.config).update_date_to_latest()
        super(DataWidget, self).write_config()

    def refresh(self):
        self.lastSaveLabel.setText("Last save date: {}".format(
            self.service.last_save_date))