diff --git a/IsogeoToOffice.py b/IsogeoToOffice.py index e0976136..7c90123e 100644 --- a/IsogeoToOffice.py +++ b/IsogeoToOffice.py @@ -198,6 +198,9 @@ def initUI(self): li_url=["https://isogeo.gitbooks.io/app-isogeo2office/", ] ) ) + # reset factory defaults + self.ui.btn_settings_reset.pressed.connect(partial(self.settings_reset)) + # view credits self.ui.btn_credits.pressed.connect(partial(self.displayer, self.ui_credits)) @@ -294,8 +297,8 @@ def settings_loader(self): # try full restore try: - self.restoreGeometry(self.app_settings.value("geometry")) - self.restoreState(self.app_settings.value("windowState")) + self.restoreGeometry(self.app_settings.value("settings/geometry")) + self.restoreState(self.app_settings.value("settings/windowState")) logger.debug("Application restore successed.") except AttributeError: logger.debug("Application restore failed.") @@ -554,7 +557,7 @@ def closeEvent(self, event_sent): self.tray_icon.deleteLater() # -- Save settings - self.app_settings.setValue("log/log_level", "10") + self.app_settings.setValue("settings/log_level", "10") # API self.app_settings.setValue("auth/app_id", api_mngr.api_app_id) @@ -598,8 +601,8 @@ def closeEvent(self, event_sent): self.ui.chb_systray_minimize.isChecked()) # global - self.app_settings.setValue("geometry", self.saveGeometry()) - self.app_settings.setValue("windowState", self.saveState()) + self.app_settings.setValue("settings/geometry", self.saveGeometry()) + self.app_settings.setValue("settings/windowState", self.saveState()) # accept the close event_sent.accept() @@ -649,6 +652,19 @@ def set_output_folder(self): self.app_settings.setValue("settings/out_folder_path", selected_folder) + def settings_reset(self): + """Reset settings to factiry defaults. Do not not remove authentication + credentials. See #41 + """ + QMessageBox.information(self, + self.tr("Settings - Reset to factory defaults"), + self.tr("Settings will be reinitialized (not" + " authentication credentials).\n" + "application will be closed.")) + logger.info("Settings - Reset to factory defaults.") + self.app_settings.remove("settings") + self.close() + # -- UI Slots ------------------------------------------------------------- @pyqtSlot(str) def fill_app_props(self, app_infos_retrieved: str = ""): diff --git a/modules/ui/main/ui_win_IsogeoToOffice.py b/modules/ui/main/ui_win_IsogeoToOffice.py index fcafadea..5a61413c 100644 --- a/modules/ui/main/ui_win_IsogeoToOffice.py +++ b/modules/ui/main/ui_win_IsogeoToOffice.py @@ -362,7 +362,7 @@ def setupUi(self, win_IsogeoToOffice): self.tlb_settings.setMaximumSize(QtCore.QSize(600, 500)) self.tlb_settings.setObjectName("tlb_settings") self.tlb_section_global = QtWidgets.QWidget() - self.tlb_section_global.setGeometry(QtCore.QRect(0, 0, 580, 197)) + self.tlb_section_global.setGeometry(QtCore.QRect(0, 0, 580, 194)) self.tlb_section_global.setMinimumSize(QtCore.QSize(3, 0)) self.tlb_section_global.setMaximumSize(QtCore.QSize(600, 200)) self.tlb_section_global.setObjectName("tlb_section_global") @@ -370,30 +370,69 @@ def setupUi(self, win_IsogeoToOffice): self.gridLayout.setObjectName("gridLayout") self.gridLayout_2 = QtWidgets.QGridLayout() self.gridLayout_2.setObjectName("gridLayout_2") - self.btn_open_output_folder = QtWidgets.QPushButton(self.tlb_section_global) - self.btn_open_output_folder.setText("") - icon4 = QtGui.QIcon() - icon4.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/folder-open-o.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.btn_open_output_folder.setIcon(icon4) - self.btn_open_output_folder.setObjectName("btn_open_output_folder") - self.gridLayout_2.addWidget(self.btn_open_output_folder, 1, 3, 1, 1) + self.rdb_timestamp_datetime = QtWidgets.QRadioButton(self.tlb_section_global) + self.rdb_timestamp_datetime.setObjectName("rdb_timestamp_datetime") + self.gridLayout_2.addWidget(self.rdb_timestamp_datetime, 2, 3, 1, 1) + self.rdb_timestamp_no = QtWidgets.QRadioButton(self.tlb_section_global) + self.rdb_timestamp_no.setChecked(True) + self.rdb_timestamp_no.setObjectName("rdb_timestamp_no") + self.gridLayout_2.addWidget(self.rdb_timestamp_no, 2, 1, 1, 1) + self.lbl_output_folder_value = QtWidgets.QLabel(self.tlb_section_global) + self.lbl_output_folder_value.setMinimumSize(QtCore.QSize(150, 25)) + self.lbl_output_folder_value.setMaximumSize(QtCore.QSize(250, 40)) + self.lbl_output_folder_value.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor)) + self.lbl_output_folder_value.setToolTip("") + self.lbl_output_folder_value.setAutoFillBackground(True) + self.lbl_output_folder_value.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.lbl_output_folder_value.setFrameShadow(QtWidgets.QFrame.Sunken) + self.lbl_output_folder_value.setScaledContents(False) + self.lbl_output_folder_value.setObjectName("lbl_output_folder_value") + self.gridLayout_2.addWidget(self.lbl_output_folder_value, 1, 1, 1, 1) self.lbl_output_folder = QtWidgets.QLabel(self.tlb_section_global) self.lbl_output_folder.setMinimumSize(QtCore.QSize(100, 20)) self.lbl_output_folder.setMaximumSize(QtCore.QSize(200, 25)) self.lbl_output_folder.setObjectName("lbl_output_folder") self.gridLayout_2.addWidget(self.lbl_output_folder, 1, 0, 1, 1) - self.btn_directory_change = QtWidgets.QToolButton(self.tlb_section_global) - self.btn_directory_change.setMaximumSize(QtCore.QSize(16777215, 35)) - self.btn_directory_change.setText("...") - self.btn_directory_change.setObjectName("btn_directory_change") - self.gridLayout_2.addWidget(self.btn_directory_change, 1, 2, 1, 1) - spacerItem6 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) - self.gridLayout_2.addItem(spacerItem6, 7, 0, 1, 5) self.line = QtWidgets.QFrame(self.tlb_section_global) + self.line.setLineWidth(4) + self.line.setMidLineWidth(4) self.line.setFrameShape(QtWidgets.QFrame.HLine) self.line.setFrameShadow(QtWidgets.QFrame.Sunken) self.line.setObjectName("line") - self.gridLayout_2.addWidget(self.line, 5, 0, 1, 5) + self.gridLayout_2.addWidget(self.line, 6, 0, 1, 5) + self.chb_systray_minimize = QtWidgets.QCheckBox(self.tlb_section_global) + self.chb_systray_minimize.setLayoutDirection(QtCore.Qt.LeftToRight) + self.chb_systray_minimize.setAutoFillBackground(True) + self.chb_systray_minimize.setTristate(False) + self.chb_systray_minimize.setObjectName("chb_systray_minimize") + self.gridLayout_2.addWidget(self.chb_systray_minimize, 7, 0, 1, 2) + spacerItem6 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_2.addItem(spacerItem6, 8, 0, 1, 5) + self.rdb_timestamp_day = QtWidgets.QRadioButton(self.tlb_section_global) + self.rdb_timestamp_day.setObjectName("rdb_timestamp_day") + self.gridLayout_2.addWidget(self.rdb_timestamp_day, 2, 2, 1, 1) + self.btn_directory_change = QtWidgets.QToolButton(self.tlb_section_global) + self.btn_directory_change.setMinimumSize(QtCore.QSize(30, 25)) + self.btn_directory_change.setMaximumSize(QtCore.QSize(75, 35)) + self.btn_directory_change.setText("Select ...") + self.btn_directory_change.setObjectName("btn_directory_change") + self.gridLayout_2.addWidget(self.btn_directory_change, 1, 2, 1, 1) + self.lbl_timestamp = QtWidgets.QLabel(self.tlb_section_global) + self.lbl_timestamp.setMinimumSize(QtCore.QSize(100, 20)) + self.lbl_timestamp.setMaximumSize(QtCore.QSize(200, 25)) + self.lbl_timestamp.setObjectName("lbl_timestamp") + self.gridLayout_2.addWidget(self.lbl_timestamp, 2, 0, 1, 1) + self.btn_open_output_folder = QtWidgets.QPushButton(self.tlb_section_global) + self.btn_open_output_folder.setMinimumSize(QtCore.QSize(30, 25)) + self.btn_open_output_folder.setMaximumSize(QtCore.QSize(75, 35)) + self.btn_open_output_folder.setText("Open") + icon4 = QtGui.QIcon() + icon4.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/folder-open-o.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btn_open_output_folder.setIcon(icon4) + self.btn_open_output_folder.setObjectName("btn_open_output_folder") + self.gridLayout_2.addWidget(self.btn_open_output_folder, 1, 3, 1, 1) + spacerItem7 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_2.addItem(spacerItem7, 5, 0, 1, 5) self.txt_output_fileprefix = QtWidgets.QLineEdit(self.tlb_section_global) self.txt_output_fileprefix.setMinimumSize(QtCore.QSize(200, 25)) self.txt_output_fileprefix.setMaximumSize(QtCore.QSize(300, 40)) @@ -403,34 +442,17 @@ def setupUi(self, win_IsogeoToOffice): self.txt_output_fileprefix.setMaxLength(25) self.txt_output_fileprefix.setClearButtonEnabled(True) self.txt_output_fileprefix.setObjectName("txt_output_fileprefix") - self.gridLayout_2.addWidget(self.txt_output_fileprefix, 4, 1, 1, 1) + self.gridLayout_2.addWidget(self.txt_output_fileprefix, 3, 1, 1, 1) + self.lbl_output_fileprefix = QtWidgets.QLabel(self.tlb_section_global) + self.lbl_output_fileprefix.setMinimumSize(QtCore.QSize(100, 20)) + self.lbl_output_fileprefix.setMaximumSize(QtCore.QSize(200, 25)) + self.lbl_output_fileprefix.setObjectName("lbl_output_fileprefix") + self.gridLayout_2.addWidget(self.lbl_output_fileprefix, 3, 0, 1, 1) self.lbl_uid = QtWidgets.QLabel(self.tlb_section_global) self.lbl_uid.setMinimumSize(QtCore.QSize(100, 20)) self.lbl_uid.setMaximumSize(QtCore.QSize(200, 25)) self.lbl_uid.setObjectName("lbl_uid") - self.gridLayout_2.addWidget(self.lbl_uid, 3, 0, 1, 1) - self.lbl_timestamp = QtWidgets.QLabel(self.tlb_section_global) - self.lbl_timestamp.setMinimumSize(QtCore.QSize(100, 20)) - self.lbl_timestamp.setMaximumSize(QtCore.QSize(200, 25)) - self.lbl_timestamp.setObjectName("lbl_timestamp") - self.gridLayout_2.addWidget(self.lbl_timestamp, 2, 0, 1, 1) - self.lbl_output_folder_value = QtWidgets.QLabel(self.tlb_section_global) - self.lbl_output_folder_value.setMinimumSize(QtCore.QSize(150, 25)) - self.lbl_output_folder_value.setMaximumSize(QtCore.QSize(250, 40)) - self.lbl_output_folder_value.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor)) - self.lbl_output_folder_value.setToolTip("") - self.lbl_output_folder_value.setAutoFillBackground(True) - self.lbl_output_folder_value.setFrameShape(QtWidgets.QFrame.StyledPanel) - self.lbl_output_folder_value.setFrameShadow(QtWidgets.QFrame.Sunken) - self.lbl_output_folder_value.setScaledContents(False) - self.lbl_output_folder_value.setObjectName("lbl_output_folder_value") - self.gridLayout_2.addWidget(self.lbl_output_folder_value, 1, 1, 1, 1) - self.chb_systray_minimize = QtWidgets.QCheckBox(self.tlb_section_global) - self.chb_systray_minimize.setLayoutDirection(QtCore.Qt.LeftToRight) - self.chb_systray_minimize.setAutoFillBackground(True) - self.chb_systray_minimize.setTristate(False) - self.chb_systray_minimize.setObjectName("chb_systray_minimize") - self.gridLayout_2.addWidget(self.chb_systray_minimize, 6, 0, 1, 2) + self.gridLayout_2.addWidget(self.lbl_uid, 3, 2, 1, 1) self.int_md_uuid = QtWidgets.QSpinBox(self.tlb_section_global) self.int_md_uuid.setMinimumSize(QtCore.QSize(30, 25)) self.int_md_uuid.setMaximumSize(QtCore.QSize(40, 40)) @@ -438,38 +460,25 @@ def setupUi(self, win_IsogeoToOffice): self.int_md_uuid.setMaximum(8) self.int_md_uuid.setProperty("value", 5) self.int_md_uuid.setObjectName("int_md_uuid") - self.gridLayout_2.addWidget(self.int_md_uuid, 3, 1, 1, 1) - spacerItem7 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) - self.gridLayout_2.addItem(spacerItem7, 1, 4, 4, 1) - self.lbl_output_fileprefix = QtWidgets.QLabel(self.tlb_section_global) - self.lbl_output_fileprefix.setMinimumSize(QtCore.QSize(100, 20)) - self.lbl_output_fileprefix.setMaximumSize(QtCore.QSize(200, 25)) - self.lbl_output_fileprefix.setObjectName("lbl_output_fileprefix") - self.gridLayout_2.addWidget(self.lbl_output_fileprefix, 4, 0, 1, 1) - self.rdb_timestamp_datetime = QtWidgets.QRadioButton(self.tlb_section_global) - self.rdb_timestamp_datetime.setObjectName("rdb_timestamp_datetime") - self.gridLayout_2.addWidget(self.rdb_timestamp_datetime, 2, 3, 1, 1) - self.rdb_timestamp_no = QtWidgets.QRadioButton(self.tlb_section_global) - self.rdb_timestamp_no.setChecked(True) - self.rdb_timestamp_no.setObjectName("rdb_timestamp_no") - self.gridLayout_2.addWidget(self.rdb_timestamp_no, 2, 1, 1, 1) - self.rdb_timestamp_day = QtWidgets.QRadioButton(self.tlb_section_global) - self.rdb_timestamp_day.setObjectName("rdb_timestamp_day") - self.gridLayout_2.addWidget(self.rdb_timestamp_day, 2, 2, 1, 1) + self.gridLayout_2.addWidget(self.int_md_uuid, 3, 3, 1, 1) + spacerItem8 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.gridLayout_2.addItem(spacerItem8, 1, 4, 4, 1) self.gridLayout.addLayout(self.gridLayout_2, 0, 1, 1, 2) icon5 = QtGui.QIcon() icon5.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/settings/bars.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.tlb_settings.addItem(self.tlb_section_global, icon5, "") self.tlb_section_excel = QtWidgets.QWidget() - self.tlb_section_excel.setGeometry(QtCore.QRect(0, 0, 424, 35)) + self.tlb_section_excel.setGeometry(QtCore.QRect(0, 0, 580, 194)) self.tlb_section_excel.setObjectName("tlb_section_excel") self.formLayout = QtWidgets.QFormLayout(self.tlb_section_excel) self.formLayout.setObjectName("formLayout") self.chb_xls_attributes = QtWidgets.QCheckBox(self.tlb_section_excel) + self.chb_xls_attributes.setEnabled(False) self.chb_xls_attributes.setMinimumSize(QtCore.QSize(200, 0)) self.chb_xls_attributes.setObjectName("chb_xls_attributes") self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.chb_xls_attributes) self.chb_xls_stats = QtWidgets.QCheckBox(self.tlb_section_excel) + self.chb_xls_stats.setEnabled(False) self.chb_xls_stats.setMinimumSize(QtCore.QSize(200, 0)) self.chb_xls_stats.setObjectName("chb_xls_stats") self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.chb_xls_stats) @@ -477,26 +486,25 @@ def setupUi(self, win_IsogeoToOffice): icon6.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/excel.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.tlb_settings.addItem(self.tlb_section_excel, icon6, "Excel") self.tlb_section_word = QtWidgets.QWidget() - self.tlb_section_word.setGeometry(QtCore.QRect(0, 0, 274, 98)) + self.tlb_section_word.setGeometry(QtCore.QRect(0, 0, 580, 194)) self.tlb_section_word.setObjectName("tlb_section_word") self.formLayout_4 = QtWidgets.QFormLayout(self.tlb_section_word) self.formLayout_4.setObjectName("formLayout_4") - self.lbl_word_tpl = QtWidgets.QLabel(self.tlb_section_word) - self.lbl_word_tpl.setMinimumSize(QtCore.QSize(100, 20)) - self.lbl_word_tpl.setMaximumSize(QtCore.QSize(150, 25)) - self.lbl_word_tpl.setAutoFillBackground(True) - self.lbl_word_tpl.setObjectName("lbl_word_tpl") - self.formLayout_4.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.lbl_word_tpl) - self.cbb_word_tpl = QtWidgets.QComboBox(self.tlb_section_word) - self.cbb_word_tpl.setMinimumSize(QtCore.QSize(150, 25)) - self.cbb_word_tpl.setMaximumSize(QtCore.QSize(250, 35)) - self.cbb_word_tpl.setCurrentText("") - self.cbb_word_tpl.setObjectName("cbb_word_tpl") - self.formLayout_4.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.cbb_word_tpl) + self.gridLayout_4 = QtWidgets.QGridLayout() + self.gridLayout_4.setObjectName("gridLayout_4") + self.pushButton_2 = QtWidgets.QPushButton(self.tlb_section_word) + self.pushButton_2.setMinimumSize(QtCore.QSize(50, 25)) + self.pushButton_2.setMaximumSize(QtCore.QSize(250, 35)) + self.pushButton_2.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) + icon7 = QtGui.QIcon() + icon7.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/settings/table.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.pushButton_2.setIcon(icon7) + self.pushButton_2.setObjectName("pushButton_2") + self.gridLayout_4.addWidget(self.pushButton_2, 1, 3, 1, 1) self.lbl_thumbnails_edit = QtWidgets.QLabel(self.tlb_section_word) self.lbl_thumbnails_edit.setAutoFillBackground(True) self.lbl_thumbnails_edit.setObjectName("lbl_thumbnails_edit") - self.formLayout_4.setWidget(5, QtWidgets.QFormLayout.LabelRole, self.lbl_thumbnails_edit) + self.gridLayout_4.addWidget(self.lbl_thumbnails_edit, 1, 0, 1, 1) self.btn_thumbnails_edit = QtWidgets.QPushButton(self.tlb_section_word) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) @@ -510,27 +518,58 @@ def setupUi(self, win_IsogeoToOffice): self.btn_thumbnails_edit.setContextMenuPolicy(QtCore.Qt.NoContextMenu) self.btn_thumbnails_edit.setLayoutDirection(QtCore.Qt.RightToLeft) self.btn_thumbnails_edit.setAutoFillBackground(True) - icon7 = QtGui.QIcon() - icon7.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/settings/table.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.btn_thumbnails_edit.setIcon(icon7) + icon8 = QtGui.QIcon() + icon8.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/settings/edit.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btn_thumbnails_edit.setIcon(icon8) self.btn_thumbnails_edit.setDefault(False) self.btn_thumbnails_edit.setFlat(False) self.btn_thumbnails_edit.setObjectName("btn_thumbnails_edit") - self.formLayout_4.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.btn_thumbnails_edit) - icon8 = QtGui.QIcon() - icon8.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/word.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.tlb_settings.addItem(self.tlb_section_word, icon8, "Word") + self.gridLayout_4.addWidget(self.btn_thumbnails_edit, 1, 2, 1, 1) + self.lbl_word_tpl = QtWidgets.QLabel(self.tlb_section_word) + self.lbl_word_tpl.setMinimumSize(QtCore.QSize(100, 20)) + self.lbl_word_tpl.setMaximumSize(QtCore.QSize(150, 25)) + self.lbl_word_tpl.setAutoFillBackground(True) + self.lbl_word_tpl.setObjectName("lbl_word_tpl") + self.gridLayout_4.addWidget(self.lbl_word_tpl, 0, 0, 1, 1) + self.cbb_word_tpl = QtWidgets.QComboBox(self.tlb_section_word) + self.cbb_word_tpl.setMinimumSize(QtCore.QSize(150, 25)) + self.cbb_word_tpl.setMaximumSize(QtCore.QSize(300, 35)) + self.cbb_word_tpl.setCurrentText("") + self.cbb_word_tpl.setObjectName("cbb_word_tpl") + self.gridLayout_4.addWidget(self.cbb_word_tpl, 0, 2, 1, 2) + spacerItem9 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.gridLayout_4.addItem(spacerItem9, 1, 1, 1, 1) + spacerItem10 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.gridLayout_4.addItem(spacerItem10, 0, 1, 1, 1) + self.formLayout_4.setLayout(0, QtWidgets.QFormLayout.SpanningRole, self.gridLayout_4) + icon9 = QtGui.QIcon() + icon9.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/word.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.tlb_settings.addItem(self.tlb_section_word, icon9, "Word") self.tlb_section_xml = QtWidgets.QWidget() - self.tlb_section_xml.setGeometry(QtCore.QRect(0, 0, 190, 35)) + self.tlb_section_xml.setGeometry(QtCore.QRect(0, 0, 580, 194)) self.tlb_section_xml.setObjectName("tlb_section_xml") self.formLayout_2 = QtWidgets.QFormLayout(self.tlb_section_xml) self.formLayout_2.setObjectName("formLayout_2") + self.gridLayout_3 = QtWidgets.QGridLayout() + self.gridLayout_3.setObjectName("gridLayout_3") + spacerItem11 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.gridLayout_3.addItem(spacerItem11, 3, 1, 1, 1) + self.btn_xml_from_xlsx = QtWidgets.QPushButton(self.tlb_section_xml) + icon10 = QtGui.QIcon() + icon10.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/settings/sitemap.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btn_xml_from_xlsx.setIcon(icon10) + self.btn_xml_from_xlsx.setObjectName("btn_xml_from_xlsx") + self.gridLayout_3.addWidget(self.btn_xml_from_xlsx, 3, 2, 1, 1) + self.lbl_xml_from_xlsx = QtWidgets.QLabel(self.tlb_section_xml) + self.lbl_xml_from_xlsx.setObjectName("lbl_xml_from_xlsx") + self.gridLayout_3.addWidget(self.lbl_xml_from_xlsx, 3, 0, 1, 1) self.chb_xml_zip = QtWidgets.QCheckBox(self.tlb_section_xml) self.chb_xml_zip.setObjectName("chb_xml_zip") - self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.chb_xml_zip) - icon9 = QtGui.QIcon() - icon9.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/xml.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.tlb_settings.addItem(self.tlb_section_xml, icon9, "XML") + self.gridLayout_3.addWidget(self.chb_xml_zip, 2, 0, 1, 2) + self.formLayout_2.setLayout(0, QtWidgets.QFormLayout.SpanningRole, self.gridLayout_3) + icon11 = QtGui.QIcon() + icon11.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/xml.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.tlb_settings.addItem(self.tlb_section_xml, icon11, "XML") self.verticalLayout_4.addWidget(self.tlb_settings) self.verticalLayout_5.addWidget(self.grp_preferences) self.grp_auth = QtWidgets.QGroupBox(self.tab_settings) @@ -548,14 +587,14 @@ def setupUi(self, win_IsogeoToOffice): self.lbl_auth.setFont(font) self.lbl_auth.setObjectName("lbl_auth") self.horizontalLayout_21.addWidget(self.lbl_auth) - spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) - self.horizontalLayout_21.addItem(spacerItem8) + spacerItem12 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_21.addItem(spacerItem12) self.btn_change_user = QtWidgets.QPushButton(self.grp_auth) self.btn_change_user.setMinimumSize(QtCore.QSize(91, 24)) self.btn_change_user.setText("") - icon10 = QtGui.QIcon() - icon10.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/settings/key.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.btn_change_user.setIcon(icon10) + icon12 = QtGui.QIcon() + icon12.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/settings/key.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btn_change_user.setIcon(icon12) self.btn_change_user.setObjectName("btn_change_user") self.horizontalLayout_21.addWidget(self.btn_change_user) self.gridLayout_10.addLayout(self.horizontalLayout_21, 0, 0, 1, 1) @@ -574,10 +613,8 @@ def setupUi(self, win_IsogeoToOffice): self.grp_ressources.setMinimumSize(QtCore.QSize(550, 150)) self.grp_ressources.setMaximumSize(QtCore.QSize(600, 200)) self.grp_ressources.setObjectName("grp_ressources") - self.gridLayout_11 = QtWidgets.QGridLayout(self.grp_ressources) - self.gridLayout_11.setObjectName("gridLayout_11") - self.verticalLayout_12 = QtWidgets.QVBoxLayout() - self.verticalLayout_12.setObjectName("verticalLayout_12") + self.verticalLayout = QtWidgets.QVBoxLayout(self.grp_ressources) + self.verticalLayout.setObjectName("verticalLayout") self.horizontalLayout_24 = QtWidgets.QHBoxLayout() self.horizontalLayout_24.setObjectName("horizontalLayout_24") self.lbl_report = QtWidgets.QLabel(self.grp_ressources) @@ -587,8 +624,8 @@ def setupUi(self, win_IsogeoToOffice): self.lbl_report.setFont(font) self.lbl_report.setObjectName("lbl_report") self.horizontalLayout_24.addWidget(self.lbl_report) - spacerItem9 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) - self.horizontalLayout_24.addItem(spacerItem9) + spacerItem13 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_24.addItem(spacerItem13) self.btn_log_dir = QtWidgets.QPushButton(self.grp_ressources) self.btn_log_dir.setMinimumSize(QtCore.QSize(80, 25)) self.btn_log_dir.setMaximumSize(QtCore.QSize(100, 30)) @@ -603,12 +640,12 @@ def setupUi(self, win_IsogeoToOffice): self.btn_report.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) self.btn_report.setAutoFillBackground(True) self.btn_report.setText("") - icon11 = QtGui.QIcon() - icon11.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/settings/bullhorn.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.btn_report.setIcon(icon11) + icon13 = QtGui.QIcon() + icon13.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/settings/bullhorn.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btn_report.setIcon(icon13) self.btn_report.setObjectName("btn_report") self.horizontalLayout_24.addWidget(self.btn_report) - self.verticalLayout_12.addLayout(self.horizontalLayout_24) + self.verticalLayout.addLayout(self.horizontalLayout_24) self.horizontalLayout_23 = QtWidgets.QHBoxLayout() self.horizontalLayout_23.setObjectName("horizontalLayout_23") self.lbl_help = QtWidgets.QLabel(self.grp_ressources) @@ -618,20 +655,38 @@ def setupUi(self, win_IsogeoToOffice): self.lbl_help.setFont(font) self.lbl_help.setObjectName("lbl_help") self.horizontalLayout_23.addWidget(self.lbl_help) - spacerItem10 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) - self.horizontalLayout_23.addItem(spacerItem10) + spacerItem14 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_23.addItem(spacerItem14) self.btn_help = QtWidgets.QPushButton(self.grp_ressources) self.btn_help.setMinimumSize(QtCore.QSize(80, 25)) self.btn_help.setMaximumSize(QtCore.QSize(100, 30)) self.btn_help.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) self.btn_help.setAutoFillBackground(True) self.btn_help.setText("") - icon12 = QtGui.QIcon() - icon12.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/settings/question.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.btn_help.setIcon(icon12) + icon14 = QtGui.QIcon() + icon14.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/settings/question.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btn_help.setIcon(icon14) self.btn_help.setObjectName("btn_help") self.horizontalLayout_23.addWidget(self.btn_help) - self.verticalLayout_12.addLayout(self.horizontalLayout_23) + self.verticalLayout.addLayout(self.horizontalLayout_23) + self.horizontalLayout_25 = QtWidgets.QHBoxLayout() + self.horizontalLayout_25.setSizeConstraint(QtWidgets.QLayout.SetMinimumSize) + self.horizontalLayout_25.setObjectName("horizontalLayout_25") + self.lbl_settings_reset = QtWidgets.QLabel(self.grp_ressources) + self.lbl_settings_reset.setObjectName("lbl_settings_reset") + self.horizontalLayout_25.addWidget(self.lbl_settings_reset) + spacerItem15 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_25.addItem(spacerItem15) + self.btn_settings_reset = QtWidgets.QPushButton(self.grp_ressources) + self.btn_settings_reset.setMinimumSize(QtCore.QSize(80, 25)) + self.btn_settings_reset.setMaximumSize(QtCore.QSize(100, 30)) + self.btn_settings_reset.setText("") + icon15 = QtGui.QIcon() + icon15.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/settings/wrench.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btn_settings_reset.setIcon(icon15) + self.btn_settings_reset.setObjectName("btn_settings_reset") + self.horizontalLayout_25.addWidget(self.btn_settings_reset) + self.verticalLayout.addLayout(self.horizontalLayout_25) self.horizontalLayout_22 = QtWidgets.QHBoxLayout() self.horizontalLayout_22.setObjectName("horizontalLayout_22") self.lbl_credits = QtWidgets.QLabel(self.grp_ressources) @@ -641,24 +696,23 @@ def setupUi(self, win_IsogeoToOffice): self.lbl_credits.setFont(font) self.lbl_credits.setObjectName("lbl_credits") self.horizontalLayout_22.addWidget(self.lbl_credits) - spacerItem11 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) - self.horizontalLayout_22.addItem(spacerItem11) + spacerItem16 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_22.addItem(spacerItem16) self.btn_credits = QtWidgets.QPushButton(self.grp_ressources) self.btn_credits.setMinimumSize(QtCore.QSize(80, 25)) self.btn_credits.setMaximumSize(QtCore.QSize(100, 30)) self.btn_credits.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) self.btn_credits.setText("") - icon13 = QtGui.QIcon() - icon13.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/settings/info.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.btn_credits.setIcon(icon13) + icon16 = QtGui.QIcon() + icon16.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/settings/info.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btn_credits.setIcon(icon16) self.btn_credits.setObjectName("btn_credits") self.horizontalLayout_22.addWidget(self.btn_credits) - self.verticalLayout_12.addLayout(self.horizontalLayout_22) - self.gridLayout_11.addLayout(self.verticalLayout_12, 0, 0, 1, 1) + self.verticalLayout.addLayout(self.horizontalLayout_22) self.verticalLayout_5.addWidget(self.grp_ressources) - icon14 = QtGui.QIcon() - icon14.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/settings/gear.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.tabs_IsogeoToOffice.addTab(self.tab_settings, icon14, "") + icon17 = QtGui.QIcon() + icon17.addPixmap(QtGui.QPixmap(":/IsogeoToOffice/resources/settings/gear.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.tabs_IsogeoToOffice.addTab(self.tab_settings, icon17, "") self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.tabs_IsogeoToOffice) self.pgb_exports = QtWidgets.QProgressBar(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) @@ -704,33 +758,37 @@ def retranslateUi(self, win_IsogeoToOffice): self.btn_launch_export.setText(_translate("win_IsogeoToOffice", "Launch export")) self.tabs_IsogeoToOffice.setTabText(self.tabs_IsogeoToOffice.indexOf(self.tab_export), _translate("win_IsogeoToOffice", "Export")) self.grp_preferences.setTitle(_translate("win_IsogeoToOffice", "Export settings")) - self.btn_open_output_folder.setToolTip(_translate("win_IsogeoToOffice", "Open the output folder")) + self.rdb_timestamp_datetime.setText(_translate("win_IsogeoToOffice", "Datetime")) + self.rdb_timestamp_no.setText(_translate("win_IsogeoToOffice", "No date (overwrite)")) + self.lbl_output_folder_value.setText(_translate("win_IsogeoToOffice", "Output")) self.lbl_output_folder.setText(_translate("win_IsogeoToOffice", "Output directory:")) + self.chb_systray_minimize.setToolTip(_translate("win_IsogeoToOffice", "Minimize application into systray icon (near to the clock)")) + self.chb_systray_minimize.setText(_translate("win_IsogeoToOffice", "Minimize application during export process")) + self.rdb_timestamp_day.setText(_translate("win_IsogeoToOffice", "Day")) self.btn_directory_change.setToolTip(_translate("win_IsogeoToOffice", "Change the output folder")) + self.lbl_timestamp.setText(_translate("win_IsogeoToOffice", "Display Timestamp:")) + self.btn_open_output_folder.setToolTip(_translate("win_IsogeoToOffice", "Open the output folder")) self.txt_output_fileprefix.setToolTip(_translate("win_IsogeoToOffice", "Custom output filename prefix")) self.txt_output_fileprefix.setText(_translate("win_IsogeoToOffice", "IsogeoToOffice")) self.txt_output_fileprefix.setPlaceholderText(_translate("win_IsogeoToOffice", "IsogeoToOffice")) + self.lbl_output_fileprefix.setText(_translate("win_IsogeoToOffice", "Output fileprefix:")) self.lbl_uid.setText(_translate("win_IsogeoToOffice", "Length of metadata UUID:")) - self.lbl_timestamp.setText(_translate("win_IsogeoToOffice", "Display Timestamp:")) - self.lbl_output_folder_value.setText(_translate("win_IsogeoToOffice", "Output")) - self.chb_systray_minimize.setToolTip(_translate("win_IsogeoToOffice", "Minimize application into systray icon (near to the clock)")) - self.chb_systray_minimize.setText(_translate("win_IsogeoToOffice", "Minimize application during export process")) self.int_md_uuid.setToolTip(_translate("win_IsogeoToOffice", "Useful to avoid name conflicts")) - self.lbl_output_fileprefix.setText(_translate("win_IsogeoToOffice", "Output fileprefix:")) - self.rdb_timestamp_datetime.setText(_translate("win_IsogeoToOffice", "Datetime")) - self.rdb_timestamp_no.setText(_translate("win_IsogeoToOffice", "No date (overwrite)")) - self.rdb_timestamp_day.setText(_translate("win_IsogeoToOffice", "Day")) self.tlb_settings.setItemText(self.tlb_settings.indexOf(self.tlb_section_global), _translate("win_IsogeoToOffice", "Location and naming rules")) self.chb_xls_attributes.setToolTip(_translate("win_IsogeoToOffice", "Add a sheet to the output workbook about features attributes")) self.chb_xls_attributes.setText(_translate("win_IsogeoToOffice", "Features attributes analysis")) self.chb_xls_stats.setToolTip(_translate("win_IsogeoToOffice", "Add a sheet to the the output workbook with some metrics")) self.chb_xls_stats.setText(_translate("win_IsogeoToOffice", "Cataloguing dashboard")) - self.lbl_word_tpl.setText(_translate("win_IsogeoToOffice", "Template to apply:")) - self.cbb_word_tpl.setToolTip(_translate("win_IsogeoToOffice", "Word template to apply to the exported metadata")) + self.pushButton_2.setToolTip(_translate("win_IsogeoToOffice", "Generate or update matching table from Isogeo API")) + self.pushButton_2.setText(_translate("win_IsogeoToOffice", "Generate/update")) self.lbl_thumbnails_edit.setToolTip(_translate("win_IsogeoToOffice", "Open thumbnails matching table in Excel")) self.lbl_thumbnails_edit.setText(_translate("win_IsogeoToOffice", "Thumbnails table:")) - self.btn_thumbnails_edit.setToolTip(_translate("win_IsogeoToOffice", "Edit the thumbnails matching table in Excel")) - self.btn_thumbnails_edit.setText(_translate("win_IsogeoToOffice", "Edit the thumbnails matching table in Excel")) + self.btn_thumbnails_edit.setToolTip(_translate("win_IsogeoToOffice", "Open Excel to complete thumbnails matching table with images paths")) + self.btn_thumbnails_edit.setText(_translate("win_IsogeoToOffice", "Complete the matching table")) + self.lbl_word_tpl.setText(_translate("win_IsogeoToOffice", "Template to apply:")) + self.cbb_word_tpl.setToolTip(_translate("win_IsogeoToOffice", "Word template to apply to the exported metadata")) + self.btn_xml_from_xlsx.setText(_translate("win_IsogeoToOffice", "Select input table and generate")) + self.lbl_xml_from_xlsx.setText(_translate("win_IsogeoToOffice", "Fillfull XML from an Excel workbook:")) self.chb_xml_zip.setToolTip(_translate("win_IsogeoToOffice", "Export metadata in XML ISO 19139")) self.chb_xml_zip.setText(_translate("win_IsogeoToOffice", "Pack all XML in one zip archive")) self.grp_auth.setTitle(_translate("win_IsogeoToOffice", "Authentication settings")) @@ -740,8 +798,8 @@ def retranslateUi(self, win_IsogeoToOffice): self.txt_shares.setHtml(_translate("win_IsogeoToOffice", "\n" "
\n" -"