Skip to content

Commit 7b51c17

Browse files
Merge pull request #13 from mylinuxforwork/12-add-folder-menu
12 add folder menu
2 parents 2d651cd + b3f6be2 commit 7b51c17

File tree

3 files changed

+56
-11
lines changed

3 files changed

+56
-11
lines changed

src/classes/information.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class Information(Gtk.Box):
3636
config_source = Gtk.Template.Child()
3737
config_tag = Gtk.Template.Child()
3838
config_subfolder = Gtk.Template.Child()
39-
open_dotfiles_content = Gtk.Template.Child()
39+
folder_menu = Gtk.Template.Child()
4040
show_replacement = False
4141

4242
props = {}
@@ -154,14 +154,25 @@ def on_get_source_completed(self):
154154
# Write config.dotinst into original folder
155155
self.writeProjectConfig()
156156

157+
# Update Folder Menu
158+
159+
self.folder_menu.set_visible(True)
160+
161+
fm = Gio.Menu.new()
162+
folder_section = Gio.Menu.new()
163+
folder_section.append(label='Open Download Folder', detailed_action='win.open_download_folder::' + self.props.id)
164+
folder_section.append(label='Open Prepared Folder', detailed_action='win.open_prepared_folder::' + self.props.id)
165+
folder_section.append(label='Open Backup Folder', detailed_action='win.open_backup_folder::' + self.props.id)
166+
fm.append_section(None, folder_section)
167+
self.folder_menu.set_menu_model(fm)
168+
157169
# Check for setup script
158170
if "setupscript" in self.props.config_json:
159171
self.create_runsetup_dialog()
160172
self.config_setupscript.set_visible(True)
161173

162174
self.props.spinner.set_visible(False)
163175
self.props.wizzard_next_btn.set_sensitive(True)
164-
self.open_dotfiles_content.set_visible(True)
165176
self.props.wizzard_next_btn.set_label("Next")
166177
self.show_replacement = True
167178
self.props.updateProgressBar(0.2)
@@ -250,7 +261,8 @@ def on_open_dependencies(self, widget, _):
250261

251262
# Clear page
252263
def clear_page(self):
253-
self.open_dotfiles_content.set_visible(False)
264+
self.folder_menu.set_visible(False)
265+
self.config_setupscript.set_visible(False)
254266

255267
# Show Error Message
256268
def _show_error_and_reset(self, message: str):

src/ui/information.ui

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@
1818
<child>
1919
<object class="GtkLabel">
2020
<property name="label">The following dotfiles can now be downloaded and installed.</property>
21-
<property name="margin-bottom">2</property>
2221
<property name="justify">2</property>
2322
<property name="wrap">1</property>
2423
</object>
2524
</child>
2625

2726
<child>
2827
<object class="AdwPreferencesGroup">
28+
<property name="margin-bottom">20</property>
2929
<child>
3030
<object class="AdwActionRow" id="config_name">
3131
<style>
@@ -106,13 +106,6 @@
106106
</child>
107107
</object>
108108
</child>
109-
<child>
110-
<object class="AdwButtonRow" id="open_dotfiles_content">
111-
<property name="title" translatable="yes">Open Download Folder</property>
112-
<property name="visible">false</property>
113-
<property name="action-name">win.show_dotfiles</property>
114-
</object>
115-
</child>
116109
<child>
117110
<object class="AdwButtonRow" id="config_setupscript">
118111
<property name="title" translatable="yes">Run Setup Script</property>
@@ -125,6 +118,16 @@
125118
<child>
126119
<object class="AdwPreferencesGroup">
127120
<property name="title" translatable="yes">Dotfiles</property>
121+
<property name="description" translatable="yes">Information about the sources of the dotfiles.</property>
122+
<child type="header-suffix">
123+
<object class="GtkMenuButton" id="folder_menu">
124+
<property name="halign">3</property>
125+
<property name="valign">3</property>
126+
<property name="icon-name">folder-symbolic</property>
127+
<property name="primary">true</property>
128+
<property name="visible">false</property>
129+
</object>
130+
</child>
128131
<child>
129132
<object class="AdwActionRow" id="config_source">
130133
<style>
@@ -155,4 +158,5 @@
155158
</child>
156159

157160
</template>
161+
158162
</interface>

src/window.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,18 @@ def create_actions(self):
127127
self.dev_reinstall_dotfiles_action.connect("activate", self.on_dev_reinstall_dotfiles)
128128
self.add_action(self.dev_reinstall_dotfiles_action) # Add the action to the window
129129

130+
self.dev_open_download_folder_action = Gio.SimpleAction.new("open_download_folder", GLib.VariantType.new('s'))
131+
self.dev_open_download_folder_action.connect("activate", self.on_open_download_folder)
132+
self.add_action(self.dev_open_download_folder_action) # Add the action to the window
133+
134+
self.dev_open_prepared_folder_action = Gio.SimpleAction.new("open_prepared_folder", GLib.VariantType.new('s'))
135+
self.dev_open_prepared_folder_action.connect("activate", self.on_open_prepared_folder)
136+
self.add_action(self.dev_open_prepared_folder_action) # Add the action to the window
137+
138+
self.dev_open_backup_folder_action = Gio.SimpleAction.new("open_backup_folder", GLib.VariantType.new('s'))
139+
self.dev_open_backup_folder_action.connect("activate", self.on_open_backup_folder)
140+
self.add_action(self.dev_open_backup_folder_action) # Add the action to the window
141+
130142

131143
@Gtk.Template.Callback()
132144
def on_wizzard_back_action(self, widget):
@@ -143,6 +155,7 @@ def reset_app(self):
143155
self.config_backup.backup_store.remove_all()
144156
self.config_protect.protect_store.remove_all()
145157
self.config_configuration.load_installed_dotfiles()
158+
self.config_information.folder_menu.set_visible(False)
146159
self.updateProgressBar(0.0)
147160
self.install_mode = "install"
148161
self.progress_bar.set_visible(False)
@@ -331,6 +344,22 @@ def on_open_backups_action(self, widget, _):
331344
def on_github_action(self, widget, _):
332345
Gtk.UriLauncher(uri="https://github.com/mylinuxforwork/dotfiles-installer").launch()
333346

347+
# --------------------------------------------
348+
# Folder Menu Actions
349+
# --------------------------------------------
350+
351+
def on_open_download_folder(self, widget, param):
352+
p = param.get_string()
353+
open_folder(download_folder + p)
354+
355+
def on_open_prepared_folder(self, widget, param):
356+
p = param.get_string()
357+
open_folder(prepared_folder + p)
358+
359+
def on_open_backup_folder(self, widget, param):
360+
p = param.get_string()
361+
open_folder(backup_folder + p)
362+
334363
# --------------------------------------------
335364
# Updates
336365
# --------------------------------------------

0 commit comments

Comments
 (0)