Skip to content

Commit c1bd4db

Browse files
committed
fixed buttons in welcome modal not working
1 parent a0768b6 commit c1bd4db

File tree

2 files changed

+29
-4
lines changed

2 files changed

+29
-4
lines changed

meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
project('gearlever',
2-
version: '1.0.2',
2+
version: '1.0.3',
33
meson_version: '>= 0.59.0',
44
default_options: [ 'warning_level=2',
55
],

src/WelcomeScreen.py

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
from gi.repository import Gtk, Adw, GObject, Gio, GLib
44
from typing import Dict, List, Optional
55

6+
7+
from .State import state
68
from .lib.utils import get_element_without_overscroll, get_gsettings, gio_copy
79
from .lib.costants import APP_ID, APP_NAME
810

@@ -36,15 +38,15 @@ def __init__(self, pkgdatadir):
3638
[self.carousel.append(el) for el in pages]
3739

3840
location_label = second_page.get_object('location-label')
39-
location_label.set_label(location_label.get_label().replace('{location}', get_gsettings().get_string('appimages-default-folder')))
41+
location_label.set_label(location_label.get_label().replace('{location}', '~/AppImages'))
4042
last_page.get_object('close-window').connect('clicked', lambda w: self.close())
4143

4244
self.left_button.connect('clicked', lambda w: self.carousel.scroll_to(get_element_without_overscroll(pages, int(self.carousel.get_position()) - 1), True))
4345
self.right_button.connect('clicked', lambda w: self.carousel.scroll_to(get_element_without_overscroll(pages, int(self.carousel.get_position()) + 1), True))
4446

4547
container.append(self.carousel)
4648

47-
self.demo_folder = GLib.get_tmp_dir() + f'/{APP_ID}/demo'
49+
self.demo_folder = GLib.get_user_cache_dir() + f'/{APP_ID}/demo'
4850
if not os.path.exists(self.demo_folder):
4951
os.makedirs(self.demo_folder)
5052

@@ -54,6 +56,7 @@ def __init__(self, pkgdatadir):
5456

5557
logging.debug(f'Copied demo app into {self.demo_folder}')
5658
third_page.get_object('open-demo-folder').connect('clicked', self.on_open_demo_folder_clicked)
59+
second_page.get_object('open-preferences').connect('clicked', self.on_default_localtion_btn_clicked)
5760

5861
self.set_child(container)
5962

@@ -71,4 +74,26 @@ def on_page_changed(self, widget, index):
7174
def on_open_demo_folder_clicked(self, widget):
7275
gfile = Gio.File.new_for_path(self.demo_folder)
7376
launcher = Gtk.FileLauncher.new(gfile)
74-
launcher.launch()
77+
launcher.launch()
78+
79+
def on_select_default_location_response(self, dialog, result):
80+
try:
81+
selected_file = dialog.select_folder_finish(result)
82+
except Exception as e:
83+
logging.error(str(e))
84+
return
85+
86+
if selected_file.query_exists() and selected_file.get_path().startswith(GLib.get_home_dir()):
87+
get_gsettings().set_string('appimages-default-folder', selected_file.get_path())
88+
state.set__('appimages-default-folder', selected_file.get_path())
89+
else:
90+
raise InternalError(_('The folder must be in your home directory'))
91+
92+
def on_default_localtion_btn_clicked(self, widget):
93+
dialog = Gtk.FileDialog(title=_('Select a folder'), modal=True)
94+
95+
dialog.select_folder(
96+
parent=self,
97+
cancellable=None,
98+
callback=self.on_select_default_location_response
99+
)

0 commit comments

Comments
 (0)