100 Commits

Author SHA1 Message Date
Florian Müllner 200d337769 apps-menu: Reindent to conform with new style
Instead of aligning arguments like we used to do, use a consistent
four-space indent as mandated by gjs' current style guide.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/66
2019-05-22 20:40:19 +02:00
Florian Müllner 7e5726e632 apps-menu: Promisify marking file as trusted
Use async/await to make nested operations easier to read.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/60
2019-03-04 19:35:10 +01:00
Florian Müllner 95b40069bf apps-menu: Remove unnecessary check
The function is always called with an array parameter (albeit it may
be empty), so remove the unnecessary check and cut down on indentation.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/60
2019-03-04 19:35:10 +01:00
Florian Müllner bd9f1cfd91 apps-menu: Avoid deep nesting
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/60
2019-03-04 19:35:10 +01:00
Florian Müllner d83d6e857a style: Use single-quotes for translated strings
The coding style of using double quotes for translatable strings
and single quotes otherwise is unnecessarily complex and cannot
be enforced with an eslint rule.

Simply use single quotes consistently for all strings.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/57
2019-02-28 23:29:31 +01:00
Florian Müllner db35d7ae7c style: Change indentation style of object literals
Instead of keeping the first property on the same line as the opening
brace and aligning the properties, use a four-space indent. This brings
us closer to gjs' coding style, and as a bonus helps keeping lines in
the soft 80 character limit.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/57
2019-02-28 23:29:24 +01:00
Florian Müllner 7f8f1234ae style: Stop using braces for single-line arrow functions
Braces are optional for single-line arrow functions, but there's a
subtle difference:
Without braces, the expression is implicitly used as return value; with
braces, the function returns nothing unless there's an explicit return.

We currently reflect that in our style by only omitting braces when the
function is expected to have a return value, but that's not very obvious,
not an important differentiation to make, and not easy to express in an
automatic rule.

So just omit braces consistently as mandated by gjs' coding style.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/57
2019-02-28 23:29:05 +01:00
Florian Müllner 9b25a227c6 style: Don't exempt ternary expressions from indent rule
It turns out we can comply with gjs' coding style and still align the
branches if line breaks are required, so do that to reduce diversion
from the canonical GNOME style.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/57
2019-02-28 23:28:55 +01:00
Florian Müllner 0d41643866 cleanup: Use destructuring for imports from GI
This is *much* nicer than repetitive "imports.gi" lines ...

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/54
2019-02-16 00:49:44 +01:00
Florian Müllner d8f7d70c10 apps-menu: Remove outdated legacy-tray handling
The tray is long gone, so trying to access it will result in
warnings.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/53
2019-02-16 00:40:55 +01:00
Florian Müllner bab4be1a59 extensions: Drop Convenience library
Its methods are now provided by gnome-shell itself and can be used
as an easy drop-in replacement.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/44
2019-02-06 20:17:59 +01:00
Florian Müllner 3861ffae31 extensions: Mark exported symbols
eslint obviously doesn't know about gnome-shell's extension API, so
the various entry points trigger unused-variable errors. To fix,
explicitly mark those symbols as exported.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/50
2019-01-28 06:51:20 +01:00
Florian Müllner 7b363fd659 cleanup: Mark unused arguments as unused
This will stop eslint from warning about them, while keeping their
self-documenting benefit.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/50
2019-01-28 06:51:02 +01:00
Florian Müllner 8a2b9abc09 style: Stop using string concatenation
String concatenation is considered bad style after ES6 added
template strings. The latter is the replacement we generally
want, except where the aforementioned xgettext bug would trip
over the backtick/slash combination.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/49
2019-01-28 06:37:28 +01:00
Florian Müllner 3effc9cfc2 style: Fix indentation errors
While we have some style inconsistencies - mostly regarding split lines,
i.e. aligning to the first arguments vs. a four-space indent - there are
a couple of places where the spacing is simply wrong. Fix those.

Spotted by eslint.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/49
2019-01-28 06:37:28 +01:00
Florian Müllner 1be7061da0 style: Fix stray/missing spaces
Spotted by eslint.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/49
2019-01-28 06:37:28 +01:00
Florian Müllner f75d1d75af style: Fix stray/missing semi-colons
Spotted by eslint.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/49
2019-01-28 06:37:28 +01:00
Florian Müllner 67f9e4c419 style: Use space after catch
We currently use a consistent style of not adding spaces in catch
clauses, however that's inconsistent with the style we use for any
other statement. There's not really a good reason to stick with it,
so switch to the style gjs/eslint default to.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/49
2019-01-28 06:37:28 +01:00
Florian Müllner aaeff6d12b style: Use camelCase for variable names
Spotted by eslint.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/49
2019-01-28 06:37:28 +01:00
Florian Müllner 912ba1e651 cleanup: Remove unhelpful unused init() argument
Virtually all extensions use the getCurrentExtension() helper instead
of the obscure init() argument, and we are no exception.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/49
2019-01-28 06:37:28 +01:00
Florian Müllner a317d75f70 cleanups: Clean up unused imports
Spotted by eslint.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/49
2019-01-28 06:37:28 +01:00
Florian Müllner a092da2527 apps-menu: Remove unused function parameter
It hasn't been used since commit d86044f383.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/49
2019-01-28 06:37:28 +01:00
Florian Müllner 072fbee7cb apps-menu: Stop using compatibility actor property
PanelMenu.Button sets up a `this.actor = this` property for compatibility,
but let's reflect the actual new object hierarchy.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/113
2018-11-12 23:42:06 +00:00
Florian Müllner e9928b3c08 apps-menu: Adjust to gnome-shell changes
PanelMenu.Button is now a GObject subclass, so initialization must
happen in _init() rather than constructor().

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/113
2018-11-12 23:42:06 +00:00
Florian Müllner 2af737a8c2 apps-menu: Remove pointless destroy() implementation
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/113
2018-11-12 23:42:06 +00:00
Florian Müllner c0454db0c6 appsMenu: Consider scale-factor in height computation
Actor heights are in physical pixels, while CSS measures are in logical
pixels, so we need to adjust accordingly to prevent the scale factor
from being applied twice.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/102
2018-09-23 17:31:03 +02:00
Xiaoguang Wang 496ae16cf1 apps-menu: Duplicate destroy actor
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/59
2018-03-13 09:06:00 +08:00
Florian Müllner 2aaf4370b6 meta: Update description note for reporting bugs
We no longer take bugs in bugzilla.
2017-12-01 21:04:02 +01:00
Florian Müllner ba27cc4a64 cleanup: Get rid of Lang.bind()
After replacing Lang.Class with ES6 classes and adopting arrow notation
for anonymous callbacks, we only use the Lang module to bind `this` to
named callbacks. However since ES5, this functionality is already provided
by Function.prototype.bind() - in fact, Lang.bind() itself uses it when
no extra arguments are specified.

So just use the built-in function directly instead of the wrapper.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/30
2017-12-01 20:50:52 +01:00
Florian Müllner 48399d46c0 cleanup: Port non-GObject classes to ES6 classes
ES6 finally adds standard class syntax to the language, so we can
replace our custom Lang.Class framework with the new syntax. Any
classes that inherit from GObject will need special treatment,
so limit the port to regular javascript classes for now.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/30
2017-12-01 20:50:46 +01:00
Florian Müllner 30e7ff5a8f cleanup: Use method syntax
Modern javascript has a short-hand for function properties, embrace
it for better readability and to prepare for porting to ES6 classes.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/30
2017-12-01 20:50:28 +01:00
Florian Müllner 968ae427f1 cleanup: Use arrow-notation for anonymous functions
Arrow notation is great, but as we only started using it recently,
we currently have a wild mix of Lang.bind(), function() and () => {}.
To make the style consistent again, change all anonymous functions
to arrow notation.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/30
2017-12-01 20:40:32 +01:00
Florian Müllner ba38019049 build: Remove autotools support
Complete the switch to meson and drop autotools support ...

Fixes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/31
2017-12-01 17:43:21 +01:00
Florian Müllner 3ab01aebec build: Support the meson build system
Meson is on track to replace autotools as the build system of choice,
so support it in addition to autotools.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/31
2017-12-01 17:41:04 +01:00
Florian Müllner 21315d74c3 apps-menu: Support separators
We currently only load entries and directories, and ignore any
separators defined by the user/admin. Make some people happy
by supporting them ...

Fixes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/27
2017-11-25 06:46:29 +01:00
Florian Müllner d86044f383 apps-menu: Minor code cleanup
The parameter to _clearApplicationBox() has never been used, so
remove it. In fact, modern javascript makes the function so compact
that we can just move the code inline.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/27
2017-11-25 06:46:29 +01:00
Florian Müllner 077a292952 apps-menu: Reload on tree changes
Now that we respect the sort order defined in the .menu file, make
sure to reload the menu on those changes as well, not just when
the installed apps themselves change.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/27
2017-11-25 06:46:29 +01:00
Florian Müllner 8bd35eeb09 apps-menu: Don't override sort order
Keep the order in which GMenu returns loaded apps, so users can
reorder entries in Alacarte.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/27
2017-11-25 06:46:29 +01:00
Florian Müllner 01893ca048 apps-menu: Fix whitespace errors 2017-10-13 16:08:07 +02:00
Alexander Rüedlinger c1143fa716 apps-menu: Use "0o" prefix for octal literals
In short, gjs complains that octal escape sequences are deprecated
and advises to use the "0o" prefix for octal literals. Do that to
fix the warning.

https://bugzilla.gnome.org/show_bug.cgi?id=787294
2017-09-17 23:18:52 +02:00
Alexander Rüedlinger 37b95a8498 apps-menu: Remove excess argument
This was an oversight in commit 63653406a3 when porting from a
removed Popover API to ClutterActor.add_child().

https://bugzilla.gnome.org/show_bug.cgi?id=787294
2017-09-17 23:18:52 +02:00
Alexander Rüedlinger 69700dc29b apps-menu: Remove more dead code
Commit 0a91893b02 removed dead code, namely a ::panel-box-changed signal
handler. Unfortunately, it forgot to remove the associated code that
disconnects the signal.

Signed-off-by: Alexander Rüedlinger <a.rueedlinger@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=785202
2017-07-21 10:09:13 +02:00
Alexander Rüedlinger 0a91893b02 apps-menu: Remove dead code
This fell through the cracks in commit 2d1d81247 when adjusting to
the gnome-shell changes that also removed the ::panel-box-changed
signal ...

Signed-off-by: Alexander Rüedlinger <a.rueedlinger@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=785200
2017-07-21 01:34:38 +02:00
Florian Müllner 8453cf05a7 apps-menu: 'Touch' copied .desktop file after updating attributes
At least for now, nautilus' file monitor is blind to certain metadata
updates:
https://git.gnome.org/browse/nautilus/tree/src/nautilus-mime-actions.c#n1537

So in order for the changes in the previous patch to take effect
immediately, we need to force nautilus to reload the file info.
Achieve this by updating the access time of the newly copied file
after marking it as trusted.

https://bugzilla.gnome.org/show_bug.cgi?id=781596
2017-04-24 17:22:26 +02:00
Florian Müllner 5cb2657df7 apps-menu: Mark copied .desktop files as trusted
The application can already be launched from the menu without further
confirmation from the user, so there is no security gain in asking the
user to trust it when launched from the desktop - just set the appropriate
attributes of the newly copied file to mark it as trusted to nautilus.

https://bugzilla.gnome.org/show_bug.cgi?id=781596
2017-04-24 17:22:26 +02:00
Florian Müllner 234cf96d39 apps-menu: Remove excess parameters
Someone mixed up add() and add_actor() - this has been present since the
the big rewrite based on the AxeMenu extension in commit 9211fa4409, so
there's little point in coming up with a replacement for something that
never had any effect to begin with ...
2017-04-22 00:59:00 +02:00
Florian Müllner 09a60a27ba apps-menu: Only enable DND when there's a desktop
It's not very useful to allow dragging when there's no drop target,
so tie the functionality added in the previous commit to the presence
of a DESKTOP window.

https://bugzilla.gnome.org/show_bug.cgi?id=780371
2017-03-22 19:15:28 +01:00
Florian Müllner 243f700fa2 apps-menu: Allow creating desktop launchers via DND
Back in the olden days, it used to be possible to drag items from
the application menu to the desktop to create a launcher shortcut.
Reimplement that "classic" functionality in the apps menu extension.

https://bugzilla.gnome.org/show_bug.cgi?id=780371
2017-03-22 19:15:28 +01:00
Florian Müllner 021037bfcd apps-menu: Use Map to keep track of app items
The use of Array to keep track of inserted items is extremely
confusing, as no elements are ever added to the array. What
the code actually does is monkey-patching properties into an
empty object (that happens to be of type "Array"). While the
direct idiomatic replacement would be {}, update the code to
use a proper map instead.

https://bugzilla.gnome.org/show_bug.cgi?id=780371
2017-03-21 21:01:04 +01:00
Florian Müllner a35336d3c2 apps-menu: Handle .desktop files from non-standard directories
.desktop files in non-standard locations are not handled by GIO,
so looking up apps for entries for such locations (e.g. a
directory added via the AppsDir directive) will fail. We can
still handle this case in the menu by creating the app directly
from the entry's AppInfo.

https://bugzilla.gnome.org/show_bug.cgi?id=762206
2016-07-13 01:28:56 +02:00