diff --git a/geest/gui/geest_dock.py b/geest/gui/geest_dock.py index 0c8dfb7..1d3b5f0 100644 --- a/geest/gui/geest_dock.py +++ b/geest/gui/geest_dock.py @@ -76,6 +76,10 @@ def __init__( # Switch to the next tab when the button is clicked lambda: self.stacked_widget.setCurrentIndex(2) ) + self.ors_widget.switch_to_previous_tab.connect( + # Switch to the next tab when the button is clicked + lambda: self.stacked_widget.setCurrentIndex(0) + ) # Create and add the "Project" panel (SetupPanel) self.setup_widget: SetupPanel = SetupPanel() @@ -95,6 +99,11 @@ def __init__( lambda: self.stacked_widget.setCurrentIndex(4) ) + self.setup_widget.switch_to_previous_tab.connect( + # Switch to the next tab when the button is clicked + lambda: self.stacked_widget.setCurrentIndex(1) + ) + # Create and add the "Open Project" panel self.open_project_widget: OpenProjectPanel = OpenProjectPanel() open_project_panel: QWidget = QWidget() @@ -107,6 +116,10 @@ def __init__( # Switch to the next tab when the button is clicked lambda: self.stacked_widget.setCurrentIndex(5) ) + self.open_project_widget.switch_to_previous_tab.connect( + # Switch to the next tab when the button is clicked + lambda: self.stacked_widget.setCurrentIndex(3) + ) # Create and add the "Create Project" panel self.create_project_widget: CreateProjectPanel = CreateProjectPanel() @@ -134,7 +147,7 @@ def __init__( ) self.tree_widget.switch_to_previous_tab.connect( # Switch to the previous tab when the button is clicked - lambda: self.stacked_widget.setCurrentIndex(1) + lambda: self.stacked_widget.setCurrentIndex(2) ) # Create and add the "Help" panel (HelpPanel) help_widget: HelpPanel = HelpPanel() @@ -209,7 +222,7 @@ def qgis_project_changed(self) -> None: ) if geest_project and os.path.exists(geest_project): self.tree_widget.set_working_directory(geest_project) - self.stacked_widget.setCurrentIndex(2) # Tree tab + self.stacked_widget.setCurrentIndex(5) # Tree tab def on_panel_changed(self, index: int) -> None: """ diff --git a/geest/gui/panels/open_project_panel.py b/geest/gui/panels/open_project_panel.py index 02ff1b9..813ba7d 100644 --- a/geest/gui/panels/open_project_panel.py +++ b/geest/gui/panels/open_project_panel.py @@ -16,6 +16,7 @@ class OpenProjectPanel(FORM_CLASS, QWidget): switch_to_next_tab = pyqtSignal() # Signal to notify the parent to switch tabs + switch_to_previous_tab = pyqtSignal() # Signal to notify the parent to switch tabs def __init__(self): super().__init__() @@ -68,9 +69,11 @@ def initUI(self): self.previous_project_combo.setSizeAdjustPolicy( QComboBox.AdjustToMinimumContentsLengthWithIcon ) - self.previous_project_combo.setMinimumContentsLength( - 10 - ) # or another length that fits your needs + self.previous_project_combo.setMinimumContentsLength(10) + self.previous_button.clicked.connect(self.on_previous_button_clicked) + + def on_previous_button_clicked(self): + self.switch_to_previous_tab.emit() def add_project_to_combo(self, project_path: str): """Add a project path to the combo with elided text and full path as data.""" diff --git a/geest/gui/panels/ors_panel.py b/geest/gui/panels/ors_panel.py index 8891b99..f9601fb 100644 --- a/geest/gui/panels/ors_panel.py +++ b/geest/gui/panels/ors_panel.py @@ -19,6 +19,7 @@ class OrsPanel(FORM_CLASS, QWidget): switch_to_next_tab = pyqtSignal() # Signal to notify the parent to switch tabs + switch_to_previous_tab = pyqtSignal() # Signal to notify the parent to switch tabs def __init__(self): super().__init__() @@ -77,3 +78,6 @@ def open_link_in_browser(self, url: str): def on_next_button_clicked(self): self.switch_to_next_tab.emit() + + def on_previous_button_clicked(self): + self.switch_to_previous_tab.emit() diff --git a/geest/gui/panels/setup_panel.py b/geest/gui/panels/setup_panel.py index edcdbc9..e1c5c0d 100644 --- a/geest/gui/panels/setup_panel.py +++ b/geest/gui/panels/setup_panel.py @@ -38,6 +38,7 @@ class SetupPanel(FORM_CLASS, QWidget): switch_to_create_project_tab = ( pyqtSignal() ) # Signal to notify the parent to switch tabs + switch_to_previous_tab = pyqtSignal() # Signal to notify the parent to switch tabs def __init__(self): super().__init__() @@ -53,9 +54,13 @@ def initUI(self): ) self.open_existing_project_button.clicked.connect(self.load_project) self.create_new_project_button.clicked.connect(self.create_project) + self.previous_button.clicked.connect(self.on_previous_button_clicked) def load_project(self): self.switch_to_load_project_tab.emit() def create_project(self): self.switch_to_create_project_tab.emit() + + def on_previous_button_clicked(self): + self.switch_to_previous_tab.emit() diff --git a/geest/ui/geest_settings_base.ui b/geest/ui/geest_settings_base.ui index 48bd840..56f738f 100644 --- a/geest/ui/geest_settings_base.ui +++ b/geest/ui/geest_settings_base.ui @@ -14,7 +14,7 @@ Geest Settings - + # Geest Settings @@ -27,105 +27,17 @@ - - - - - - - - - Your API Key for the Open Route Service - - - - - - - - - Concurrent Tasks - - - - - - - - - - - - The maximum number of concurrent threads to allow during analysis. Setting to the same number of CPU cores you have would be a good conservative approach. If you want to produce your analysis faster, you could probably run 100 or more on a decently specced machine. - - - true - - - 0 - - - - - - - Enable editing - - - - - - - Enable developer mode - - - - - - - Verbose logging mode - - - - - - - With this option enabled, you will see an 'Edit' check box in the dock panel that will let you create new dimensions, factors, layers and edit their properties. - - - true - - - - - - - This is intended for developers to attach to the plugin using a remote debugger so that they can step through the code. Do not enable it if you do not have a remote debugger set up as it will block QGIS startup until a debugger is attached to the process. In addition, debug mode will enable a log tab in the dock. Requires restart after changing. - - - true - - - 0 - - - - - - - Adds verbose log message, useful for diagnostics. - - - true - - - 0 - - - - + + + + + + + Your API Key for the Open Route Service + + - + Qt::Vertical @@ -138,6 +50,90 @@ + + + + + + Concurrent Tasks + + + + + + + + + + + + The maximum number of concurrent threads to allow during analysis. Setting to the same number of CPU cores you have would be a good conservative approach. If you want to produce your analysis faster, you could probably run 100 or more on a decently specced machine. + + + true + + + 0 + + + + + + + Enable editing + + + + + + + With this option enabled, you will see an 'Edit' check box in the dock panel that will let you create new dimensions, factors, layers and edit their properties. + + + true + + + + + + + Enable developer mode + + + + + + + This is intended for developers to attach to the plugin using a remote debugger so that they can step through the code. Do not enable it if you do not have a remote debugger set up as it will block QGIS startup until a debugger is attached to the process. In addition, debug mode will enable a log tab in the dock. Requires restart after changing. + + + true + + + 0 + + + + + + + Verbose logging mode + + + + + + + Adds verbose log message, useful for diagnostics. + + + true + + + 0 + + + diff --git a/geest/ui/open_project_panel_base.ui b/geest/ui/open_project_panel_base.ui index 60283de..e2b0993 100644 --- a/geest/ui/open_project_panel_base.ui +++ b/geest/ui/open_project_panel_base.ui @@ -20,23 +20,76 @@ Form - - - - <html><head/><body><p align="center"><span style=" font-size:16pt; font-weight:600;">GEEST Open Existing Project</span></p></body></html> + + + + Qt::Vertical - - Qt::RichText + + + 20 + 512 + + + + + + + + + + + 0 + 0 + + + + + 10 + + + + + + + + + 10 + + + + ... + + + + + + + + + Qt::Horizontal + + + + + + + + 16 + + + + <html><head/><body><p><span style=" font-size:12pt;">Choose from one of the recent project folders you used, or click the ... button to browse to a specific GEEST project folder.</span></p></body></html> - Qt::AlignCenter + Qt::AlignJustify|Qt::AlignTop true - + @@ -60,13 +113,6 @@ - - - - Qt::Horizontal - - - @@ -91,69 +137,7 @@ - - - - - 16 - - - - <html><head/><body><p><span style=" font-size:12pt;">Choose from one of the recent project folders you used, or click the ... button to browse to a specific GEEST project folder.</span></p></body></html> - - - Qt::AlignJustify|Qt::AlignTop - - - true - - - - - - - - 0 - 0 - - - - 0 - - - - - - - - - - 0 - 0 - - - - - 10 - - - - - - - - - 10 - - - - ... - - - - - - + @@ -166,18 +150,21 @@ - - - - Qt::Vertical + + + + <html><head/><body><p align="center"><span style=" font-size:16pt; font-weight:600;">GEEST Open Existing Project</span></p></body></html> - - - 20 - 512 - + + Qt::RichText - + + Qt::AlignCenter + + + true + +