Skip to content

Commit fc9bee9

Browse files
Add Description field to Web App editor (#339)
* added webapp description entry field * strip whitespace from webapp description entry
1 parent a636d6e commit fc9bee9

3 files changed

Lines changed: 209 additions & 165 deletions

File tree

usr/lib/webapp-manager/common.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ def __init__(self, path, codename):
8181
self.codename = codename
8282
self.web_browser = None
8383
self.name = None
84+
self.desc = None
8485
self.icon = None
8586
self.is_valid = False
8687
self.exec = None
@@ -105,6 +106,12 @@ def __init__(self, path, codename):
105106
self.name = line.replace("Name=", "")
106107
continue
107108

109+
if "Comment=" in line:
110+
self.desc = line.replace("Comment=", "")
111+
if self.desc == _("Web App"):
112+
self.desc = ""
113+
continue
114+
108115
if "Icon=" in line:
109116
self.icon = line.replace("Icon=", "")
110117
continue
@@ -254,17 +261,20 @@ def delete_webbapp(self, webapp):
254261
os.remove(falkon_orig_prof_dir)
255262
shutil.rmtree(os.path.join(FALKON_PROFILES_DIR, webapp.codename), ignore_errors=True)
256263

257-
def create_webapp(self, name, url, icon, category, browser, custom_parameters, isolate_profile=True, navbar=False, privatewindow=False):
264+
def create_webapp(self, name, desc, url, icon, category, browser, custom_parameters, isolate_profile=True, navbar=False, privatewindow=False):
258265
# Generate a 4 digit random code (to prevent name collisions, so we can define multiple launchers with the same name)
259266
random_code = ''.join(choice(string.digits) for _ in range(4))
260267
codename = "".join(filter(str.isalpha, name)) + random_code
261268
path = os.path.join(APPS_DIR, "WebApp-%s.desktop" % codename)
262269

270+
if not desc:
271+
desc = _("Web App")
272+
263273
with open(path, 'w') as desktop_file:
264274
desktop_file.write("[Desktop Entry]\n")
265275
desktop_file.write("Version=1.0\n")
266276
desktop_file.write("Name=%s\n" % name)
267-
desktop_file.write("Comment=%s\n" % _("Web App"))
277+
desktop_file.write("Comment=%s\n" % desc)
268278

269279
exec_string = self.get_exec_string(browser, codename, custom_parameters, icon, isolate_profile, navbar,
270280
privatewindow, url)
@@ -427,13 +437,16 @@ def get_exec_string(self, browser, codename, custom_parameters, icon, isolate_pr
427437

428438
return exec_string
429439

430-
def edit_webapp(self, path, name, browser, url, icon, category, custom_parameters, codename, isolate_profile, navbar, privatewindow):
440+
def edit_webapp(self, path, name, desc, browser, url, icon, category, custom_parameters, codename, isolate_profile, navbar, privatewindow):
441+
if not desc:
442+
desc = _("Web App")
443+
431444
config = configparser.RawConfigParser()
432445
config.optionxform = str
433446
config.read(path)
434447
config.set("Desktop Entry", "Name", name)
435448
config.set("Desktop Entry", "Icon", icon)
436-
config.set("Desktop Entry", "Comment", _("Web App"))
449+
config.set("Desktop Entry", "Comment", desc)
437450
config.set("Desktop Entry", "Categories", "GTK;%s;" % category)
438451

439452
try:

usr/lib/webapp-manager/webapp-manager.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ def __init__(self, application):
8989
self.run_button = self.builder.get_object("run_button")
9090
self.ok_button = self.builder.get_object("ok_button")
9191
self.name_entry = self.builder.get_object("name_entry")
92+
self.desc_entry = self.builder.get_object("desc_entry")
9293
self.url_entry = self.builder.get_object("url_entry")
9394
self.url_label = self.builder.get_object("url_label")
9495
self.customparameters_entry = self.builder.get_object("customparameters_entry")
@@ -309,6 +310,7 @@ def on_ok_button(self, widget):
309310
category = self.category_combo.get_model()[self.category_combo.get_active()][CATEGORY_ID]
310311
browser = self.browser_combo.get_model()[self.browser_combo.get_active()][BROWSER_OBJ]
311312
name = self.name_entry.get_text()
313+
desc = self.desc_entry.get_text().strip()
312314
url = self.get_url()
313315
isolate_profile = self.isolated_switch.get_active()
314316
navbar = self.navbar_switch.get_active()
@@ -322,10 +324,10 @@ def on_ok_button(self, widget):
322324
shutil.copyfile(icon, new_path)
323325
icon = new_path
324326
if self.edit_mode:
325-
self.manager.edit_webapp(self.selected_webapp.path, name, browser, url, icon, category, custom_parameters, self.selected_webapp.codename, isolate_profile, navbar, privatewindow)
327+
self.manager.edit_webapp(self.selected_webapp.path, name, desc, browser, url, icon, category, custom_parameters, self.selected_webapp.codename, isolate_profile, navbar, privatewindow)
326328
self.load_webapps()
327329
else:
328-
self.manager.create_webapp(name, url, icon, category, browser, custom_parameters, isolate_profile, navbar,
330+
self.manager.create_webapp(name, desc, url, icon, category, browser, custom_parameters, isolate_profile, navbar,
329331
privatewindow)
330332
self.load_webapps()
331333

@@ -351,6 +353,7 @@ def on_add_button(self, widget):
351353
def on_edit_button(self, widget):
352354
if self.selected_webapp is not None:
353355
self.name_entry.set_text(self.selected_webapp.name)
356+
self.desc_entry.set_text(self.selected_webapp.desc)
354357
self.icon_chooser.set_icon(self.selected_webapp.icon)
355358
self.url_entry.set_text(self.selected_webapp.url)
356359
self.customparameters_entry.set_text(self.selected_webapp.custom_parameters)

0 commit comments

Comments
 (0)