1. 21 Feb, 2019 1 commit
  2. 11 Feb, 2019 1 commit
  3. 26 Jan, 2019 1 commit
  4. 27 Dec, 2018 3 commits
  5. 18 Dec, 2018 3 commits
  6. 17 Dec, 2018 10 commits
  7. 14 Dec, 2018 1 commit
  8. 12 Dec, 2018 1 commit
  9. 10 Dec, 2018 1 commit
  10. 03 Dec, 2018 2 commits
    • Kalev Lember's avatar
    • Kalev Lember's avatar
      updates section: Fix critical warnings destroying the section header · 7ce26245
      Kalev Lember authored
      Simplify the section header creation, changing it so that the header is
      created in init() and destroyed in dispose() and tie the header
      lifetime to the section lifetime. This makes the object lifetime much
      easier to understand and fixes various criticals removing the last row
      (which triggers header destruction) that appeared after commit 1af00154.
      
      15:06:04:0981 GLib-GObject invalid unclassed pointer in cast to 'GsProgressButton'
      15:06:04:0982 Gtk gtk_css_provider_load_from_data: assertion 'GTK_IS_CSS_PROVIDER (css_provider)' failed
      15:06:04:0982 Gtk gtk_stack_set_visible_child_name: assertion 'GTK_IS_STACK (stack)' failed
      15:06:04:0982 GLib-GObject invalid unclassed pointer in cast to 'GtkWidget'
      15:06:04:0982 Gtk gtk_widget_show: assertion 'GTK_IS_WIDGET (widget)' failed
      15:06:04:0982 GLib-GObject invalid unclassed pointer in cast to 'GtkButton'
      15:06:04:0982 Gtk gtk_button_set_label: assertion 'GTK_IS_BUTTON (button)' failed
      7ce26245
  11. 02 Dec, 2018 1 commit
  12. 30 Nov, 2018 4 commits
    • Kalev Lember's avatar
      plugin loader: Make gs_plugin_loader_get_event_default thread safe · 6ed8412f
      Kalev Lember authored
      We have to take a ref on the event while holding the lock, as otherwise
      a plugin worker thread might destroy it (by adding a new event with the
      same unique ID to the hash table) while we're processing it in the main
      thread.
      6ed8412f
    • Kalev Lember's avatar
      Revert "updates section: Update apps in display order" · b7d42c95
      Kalev Lember authored
      This is no longer necessary now that we use one big transaction for
      flatpak updates.
      
      This reverts commit 5263aee8.
      b7d42c95
    • Kalev Lember's avatar
      flatpak: Construct one big transaction for all updates · e6e03ce7
      Kalev Lember authored
      Let's give this another try. The reason we reverted this the first time
      was that it regressed error reporting: as the plugin loader no longer
      drives app updating, it didn't know how to map errors that occur to apps
      and then we got errors such as 'Unable to update "(null)"' in the UI.
      However, this time around we have a mechanism for passing app IDs from
      the plugins up to the plugin loader and this commit is updated to make
      use of that.
      
      ---
      
      Instad of updating apps one by one, construct one big transaction that
      includes everything we need to update.
      
      This makes state keeping in gnome-software easier, as when we
      simplistically walk the update list and update one by one, sometimes
      updates depend on each other (app requires runtime) and we may end up in
      a case where the update is already installed.
      
      Furthermore, alex is saying that the CLI also makes one big transaction
      and doing so is more efficient as it avoids prunes and triggers between
      each update.
      
      This reverts commit eee60ee8.
      e6e03ce7
    • Kalev Lember's avatar
      plugin loader: Extend error message scraping to app IDs · 12db6dc5
      Kalev Lember authored
      We were already adding origin IDs to error messages; this extends the
      same mechanism to allow adding app IDs as well.
      
      The motivation for doing so is to be able to change the flatpak plugin
      from updating one app at a time to doing all apps in one transaction,
      but when we do that then the plugin loader no longer knows how to map
      errors to apps. This adds the mechanism for that.
      
      It's all pretty hacky, but not more so than the existing origin ID
      passing.
      
      This also improves things somewhat and removes the need for the UI code
      to know and handle unique ID prefixes in the error messages. Instead,
      the plugin loader now does all the work and strips any unique ID
      prefixes.
      12db6dc5
  13. 29 Nov, 2018 8 commits
    • Kalev Lember's avatar
    • Kalev Lember's avatar
      flatpak: Drop the X-Flatpak key fallback and rely on new appstream-glib instead · 195fde23
      Kalev Lember authored
      I got the fallback wrong in commit af05c3e5 and it broke the self tests
      with older appstream-glib. Let's just do what hughsie suggested in the
      first place and depend on new enough appstream-glib instead.
      195fde23
    • Kalev Lember's avatar
    • Kalev Lember's avatar
      updates section: Fix row unrevealing to not leave behind 2 pixels · f27c7f55
      Kalev Lember authored
      It's not enough to just hide the contents of the row, we also need to
      hide the row itself, as otherwise we have 2 pixels of the row left on
      the screen.
      f27c7f55
    • Kalev Lember's avatar
      flatpak: Use X-Flatpak key for mapping desktop files to apps · af05c3e5
      Kalev Lember authored
      When scanning local desktop files, rely on appstream-glib correctly
      parsing X-Flatpak key and only do .desktop discarding as fallback.
      
      08:43:06:0210 GsPluginFlatpak Could not get app (from ID 'org.libreoffice.LibreOffice-calc') for installed desktop file /var/lib/flatpak/exports/share/applications/org.libreoffice.LibreOffice-calc.desktop: App org.libreoffice.LibreOffice-calc not installed
      08:43:06:0217 GsPluginFlatpak Could not get app (from ID 'org.libreoffice.LibreOffice-base') for installed desktop file /var/lib/flatpak/exports/share/applications/org.libreoffice.LibreOffice-base.desktop: App org.libreoffice.LibreOffice-base not installed
      08:43:06:0217 GsPluginFlatpak Could not get app (from ID 'org.libreoffice.LibreOffice-impress') for installed desktop file /var/lib/flatpak/exports/share/applications/org.libreoffice.LibreOffice-impress.desktop: App org.libreoffice.LibreOffice-impress not installed
      08:43:06:0218 GsPluginFlatpak Could not get app (from ID 'org.libreoffice.LibreOffice-draw') for installed desktop file /var/lib/flatpak/exports/share/applications/org.libreoffice.LibreOffice-draw.desktop: App org.libreoffice.LibreOffice-draw not installed
      08:43:06:0220 GsPluginFlatpak Could not get app (from ID 'org.libreoffice.LibreOffice-math') for installed desktop file /var/lib/flatpak/exports/share/applications/org.libreoffice.LibreOffice-math.desktop: App org.libreoffice.LibreOffice-math not installed
      08:43:06:0222 GsPluginFlatpak Could not get app (from ID 'org.libreoffice.LibreOffice-writer') for installed desktop file /var/lib/flatpak/exports/share/applications/org.libreoffice.LibreOffice-writer.desktop: App org.libreoffice.LibreOffice-writer not installed
      af05c3e5
    • Kalev Lember's avatar
      96728973
    • Kalev Lember's avatar
      shell: Avoid the "reload" signal interrupting the loading page · e5f68196
      Kalev Lember authored
      When we do the initial metadata download, packagekit downloads appstream
      metadata that the appstream plugin detects and then emits "reload".
      
      This however messes up the loading page as then all other pages ask for
      data and the packagekit initial refresh transaction gets interrupted and
      we end up inadvertently switching to the main page.
      
      To fix this, this commit connects up the "reload" signal handler only
      when the initial refresh is done.
      e5f68196
    • Kalev Lember's avatar
      loading page: Don't stay stuck in the loading phase on error · 534e3528
      Kalev Lember authored
      We lack proper error handling in the loading page, only emitting a
      g_warning on failure.
      
      As a stop gap, this commit makes the loading page ignore the error and
      continue (previously we'd just continue showing the progress bar
      forever), so that we display the main UI and the user can possibly do
      something to fix the error (disable the faulty repo or similar).
      534e3528
  14. 28 Nov, 2018 1 commit
  15. 27 Nov, 2018 2 commits
    • Kalev Lember's avatar
      trivial: Fix whitespace · a4b4423a
      Kalev Lember authored
      a4b4423a
    • Kalev Lember's avatar
      flatpak: Rewrite noenumarate=true filtering code · efdca6a5
      Kalev Lember authored
      For apps installed from repos that have noenumarate=true, we were using
      the origin name (e.g. "org.frozen_bubble.frozen-bubble-origin") and
      tried to figure out the installed app ID on that. The code would split
      on - and append .desktop and end up with something like
      "org.frozen_bubble.frozen.desktop", which is pretty far from the actual
      app ID "org.frozen_bubble.frozen-bubble".
      
      This commit replaces this by just asking flatpak what ref is installed
      from that repo.
      
      This is slightly made more complicated by the fact that the flatpak API
      only appears in flatpak 1.1.1, but we need to support 1.0 as well, so
      this commit also adds fallback to parsing the key file manually.
      
      Fixes: #195
      efdca6a5