History log of /haiku/src/apps/haikudepot/ui/App.cpp
Revision Date Author Comments
# a18f873f 06-May-2021 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Background Processing

Unify the background processing in the
application to one system and refactor
the package actions. This won't fix
any specific current issues with this
area, but lays the ground for later
fixes.

Change-Id: I098b81e7afc4aeb883bddf1acfc01f7888134257
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3997
Reviewed-by: Andrew Lindesay <apl@lindesay.co.nz>


# 02ccdc6f 22-Feb-2021 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Drop Caches on Version Change

To avoid having to upgrade cache-data formats,
drop the caches when the application starts with
a different version from last time the
application launches.

Change-Id: I2f5b831b6a4fc570457bc633fd440a9021648b02
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3749
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 779ab335 09-Dec-2020 X512 <danger_mail@list.ru>

use .IsSet() instead if .Get() != NULL

Change-Id: Ia2b7a719fd398e78cc3b11d4f7b02cb81179f65f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3488
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 05880d13 16-Sep-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Custom List Removal (Depots)

Remove use of custom list class where it is not
really required in the area of Depots. Also
convert the use of Depots to be wrapped in
BReference to match other model objects. At the
same time some data-loading logic has been
simplified.

Relates To #15534

Change-Id: Ie6fcc35f258a0c69c44990e4b09f6c32ec79945d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3225
Reviewed-by: Rene Gollent <rene@gollent.com>


# f0e491d3 28-Jul-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Icon / Tarball Handling

Instead of exploding the tar-ball of icons from
HDS, keep it as a tar-ball, index it and read
data directly out from specific indicies on demand.

This will speed up the process of downloading
the icons by removing the unpack. Also updates
will be faster by avoiding the need to delete the
old icon files.

Because icons are loaded on-demand, the start
time is faster by avoiding all the icon loads.
There are also savings on memory consumption.

Indexing on each load is surprisingly fast so
no external index is maintained. Likewise for
the tar-balls's meta-data.

This commit does not cover the implementation
of an LRU cache of the icons in memory.

Relates to #15370

Change-Id: Ia1647d8c805be89618f493d2592bf7877fca3f14
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3205
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# fa5c8097 25-Jul-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Languages List

Abstacts the list of supported languages into
the LanguageModel class preventing use of
List. Also; fix a few cases where newer
logging techniques may have caused incorrect
logic flow.

Relates To #15534

Change-Id: I144fe4788abdaf0d93e53eeabc97b3f7aa2ec710
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3085
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# f96d1f4d 10-Jul-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Better Logging

Changes the logging in HD to use a macro for the
various log levels to declutter the code and to
make it easier to more systematically log.

Change-Id: I025970707a0a11e7e3aaa4b52fc91288af0183f5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3018
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# d309d940 29-May-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Refresh Repo Cache

When HD first loads in a new install, it will experience
a near-empty set of repositories. This is because only
build-time repo caches are present. This change will
cause HD to pull data from remotes on first load, in the
case that the cache is somehow missing and on a user-
initiated update.

Resolves #14840

Change-Id: I4f0e6c9fdba4141841cc167d7953967edb526033
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2821
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 32ed7659 22-Mar-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Check Working Files Writable

At start time, it is possible that the local disk
system is not able to be written to where the
application is trying to store working files. This
change introduces a check at startup that ensures
working files can be written to and warns the user
if this is not the case.

Change-Id: I907bf41a3b4eceb0083119a082fd5e68e4d534c1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2397
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# b711002d 07-Aug-2019 Ryan Leavengood <leavengood@gmail.com>

HaikuDepot: Set package state when loading single package

Without this, even installed packages still get an "Install" button.

Fixes #14821.

This was implemented by adding BPackageRoster::IsPackageActive. I decided to
have this take a location since GetActivePackages also did, but as noted in my
TODO comment, I think this is awkward.

It would also be nice to show the user they have a different version of a
particular package, but that would require some changes to IsPackageActive.

Change-Id: Iab0d35eb6b671a17711b0214b15164d296927e5a
Reviewed-on: https://review.haiku-os.org/c/1694
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>


# ddd56c01 10-Jan-2019 Murai Takashi <tmurai01@gmail.com>

Haikudepot: Fix PVS 856

Fix 'true' value becomes a class object.

Change-Id: I7d36c024a9fec7c9649765370f529de2df44d7cb
Reviewed-on: https://review.haiku-os.org/c/868
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>


# 3369e03d 15-Dec-2018 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Process and Data-loading Improvements

This change is a reshuffle of the backend processing involved in the
aquisition of data from servers including the pull-down and load of
HPKR data as well as the pull-down and load of data from the
HaikuDepotServer (HDS) system. The driver for this change is to
implement an initial implementation of a progress bar for the
loading of data as the application starts.

The following are notable changes;

* Removed some previously attempted 'functional style' logic in the
model which didn't fit well with C++
* Use of the base-url in the logical mapping from HDS and HD data is no
longer required and has been removed
* Some logging has been improved making it clearer which part of HD
is producing the logging which in turn helps with debugging issues
* List class has been modified to more cleanly support sorted lists
and binary searches; tests have also be updated accordingly
* Reorganise and tidy-up of the data-loading processes' structures
* The local repository update (HPKR) and data-load occur in background
processes now in the same system as the HDS data-load - this has been
crudely shifted from the MainWindow to new Processes and incorporated
into the background processing system
* The 'state-machine' background process runner is now replaced with a
'coordinator' style approach that can more easily handle the new
processes related to HPKR loading.
* Progress for loading processes is shown in the main window in the
WorkStatusView - this is flickering a bit, but basically works
* Added some documentation regarding how Processes work in the system
* The "Refresh Repositories" menu item now also updates data from HDS
* The "Refresh Repositories" menu item is disabled when the background
processes are running that update the repository data

Some further refinement would be good, but this change is large enough
for one round of improvements. There is an issue that the status bar
is used for screenshot display as well as this data-loading, but that
was the case before so it is something that can be dealt with later if
it is a problem.

Change-Id: I7668307645e3aabaf7e4a6e37e2cca80cc0f489e
Reviewed-on: https://review.haiku-os.org/770
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# cbadcae1 24-Jun-2018 Humdinger <humdingerb@gmail.com>

Small string changes in HaikuDepot GUI

* Don't translate internally used names in BMenuBars.
* Use presentable strings for the title of BAlerts.
* Make the wording a bit less technical.
Should the HaikuServer URL be part of the update/remove rating alert?

Change-Id: I0a984082eadbc5834ac6b8b2b1955e66098d1c8a


# a9edb9bf 05-Jun-2018 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Multiple improvements for user-ratings

* Display of the user-ratings listing improved
* When a user-rating is created / edited, the pkg is updated
* Creation date of the user-rating is unpacked shown
* Ability to create a user-rating with a comment, but no numerical rating
* Stars display show grey if no numerical rating present
* Improvements to error reporting when problem arise
* Parsing of the 'revision' field of the version working
* Removed debug logging for the text engine
* Other minor tweaks

Change-Id: I99f881ab1426641ef4177eec2d3bcacc7cb74e95


# 54312619 15-Feb-2018 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : 'Old Client' Handling

The server side has the ability to reject client
requests where the client is no longer supported
because it is presumably too old. This change
will inform the user when this happens and will
prevent the client from attempting further server
communications within this execution of the
application.


# 3094fef3 19-Dec-2017 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : More Backend Communications Improvements

* Further improves the logging and provides some
basic performance numbers.
* Moves the bulk-load logic out of the data-model
class.
* Introduces a state-machine for the bulk-load
process so that it will be more easily able to be
shifted to non-blocking IO when the HTTP libraries
can do that.
* Implements concurrent loading of the bulk-data to
hopefully improve lead time for icons and meta-data.
* Loads data to a temporary file and then moves to the
final location in order to avoid partially written
data in the cache.
* Handles situations where no network is available;
prevents attempt to access the network.
* Allows bulk-load processes to be cancelled when the
application quits.
* Introduces command-line arguments to help simulate
scenarios to help with testing performance and
network absence.
* Implements ordered insert and binary search in the
'List' class + basic unit test.


# 622e144f 27-Nov-2017 Julian Harnath <julian.harnath@rwth-aachen.de>

HaikuDepot: add icons to screenshot window tool bar

* Arrow icons instead of text for previous/next buttons


# f0665db4 05-Nov-2017 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Improved logging control

The application had previously no means to control the verbosity of
logging. This excessive logging meant that it was bit hard to
understand what is going on. Now it is possible to define the level
of logging that is output; especially as the application pulls-down
data from the remote server system.


# 0c1bbfe5 31-Jan-2017 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: suggested code improvements from Adrien


# 19c15fec 27-Jan-2017 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Improve icon download handling performance

Previously each icon would launch an independent HTTP request to
pull down the HVIF icon data. This change means that the data
will be pulled down in bulk across all packages as a .tgz and
will then be kept in a cache locally. The client-server logic
will use standard "If-Modified-Since" headers to check for
updates each time the HaikuDepot desktop application starts up.
This arrangement will bring down the HVIF as well as bitmap
icons and use the best representation it can.

Additionally, it is possible from a command-line option to log
HTTP traffic verbosely and it is also possible to use an "-h"
flag to display help on command-line arguments.

The code-structure around this change also anticipates some
future extensions to handle other client-server improvements.

Fixes #11804


# d41bd688 27-Jul-2016 Murai Takashi <tmurai01@gmail.com>

HaikuDepot: Fix -Wlogical-not-parentheses


# f7c2983e 08-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

HaikuDepot: change window frame setting.

* Moved entirely into MainWindow.
* Moved duplicated code into separate methods.
* Resize the main window on larger screens by default, as we can make
use of the extra space.
* Use BWindow::MoveOnScreen() instead of make_sure_frame_is_on_screen()
as the former has more info. And is even smarter now as it can
optionally resize windows to fit on screen.
* Center window on screen by default (ie. when there are no settings).


# e34f2638 19-Jul-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

haikudepot: Fix style issues in hrev49418


# 93407f0c 18-Jul-2015 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: desktop app can now have server url specified

* Enables us to test to other HD servers

Completes Task #12216


# 35024c4a 12-Jun-2015 Janus <janus2@ymail.com>

HaikuDepot: use default window position for single package mode.

* Fixes #12141.


# 87084745 07-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

HaikuDepot: Clean up trailing whitespace.


# 056d423c 28-Dec-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Mark installed featured packages...

... with a checkmark icon.


# 474b9e09 23-Dec-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Check if package_daemon runs and offer to start it

Fixes ticket #9967.


# 89fbeddf 25-Oct-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Store local package path in PackageInfo...

... when launched with a path to a .hpkg file.


# 6d519fd1 10-Oct-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: WIP to open .hpkg files.

* When opening .hpkg files, shows just the PackageInfoView in a smaller
window.
* PackageInfo constructor with BPackageInfo argument
* Default pkg icon has a single instance only. Before, there would be another
instance for each repository refresh.

TODO:
* Install button on single package view is non functional
* Probably needs to do someting different when opening .hpkg from an
installed packages folder (show the regular list and focus that package?).
* The filter view and list view are still constructed for the single package
mode.
* ...


# 04c9d578 27-Sep-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Organized source into sub-folders


# f7c2983edc4573504fece2e673f10a0258789a15 08-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

HaikuDepot: change window frame setting.

* Moved entirely into MainWindow.
* Moved duplicated code into separate methods.
* Resize the main window on larger screens by default, as we can make
use of the extra space.
* Use BWindow::MoveOnScreen() instead of make_sure_frame_is_on_screen()
as the former has more info. And is even smarter now as it can
optionally resize windows to fit on screen.
* Center window on screen by default (ie. when there are no settings).


# e34f2638372c698a71645c145bc4e617817a5ab1 19-Jul-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

haikudepot: Fix style issues in hrev49418


# 93407f0c870981d98a4dafbc16ef5e25b01c52a7 18-Jul-2015 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: desktop app can now have server url specified

* Enables us to test to other HD servers

Completes Task #12216


# 35024c4a2e852a47042f01ad6b062521f1fb11b8 12-Jun-2015 Janus <janus2@ymail.com>

HaikuDepot: use default window position for single package mode.

* Fixes #12141.


# 8708474567be756984f35cd6c5bfcc2c9546dc1e 07-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

HaikuDepot: Clean up trailing whitespace.


# 056d423c39381594a9ec74eaf3e7dffc5f26e4e9 28-Dec-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Mark installed featured packages...

... with a checkmark icon.


# 474b9e090d0440d4543b727428dfb1d8987d57e1 23-Dec-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Check if package_daemon runs and offer to start it

Fixes ticket #9967.


# 89fbeddf2a351946530e55a1333dd223ffe10986 25-Oct-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Store local package path in PackageInfo...

... when launched with a path to a .hpkg file.


# 6d519fd17558a53659c82f7a5ac101b7b6be1213 10-Oct-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: WIP to open .hpkg files.

* When opening .hpkg files, shows just the PackageInfoView in a smaller
window.
* PackageInfo constructor with BPackageInfo argument
* Default pkg icon has a single instance only. Before, there would be another
instance for each repository refresh.

TODO:
* Install button on single package view is non functional
* Probably needs to do someting different when opening .hpkg from an
installed packages folder (show the regular list and focus that package?).
* The filter view and list view are still constructed for the single package
mode.
* ...


# 04c9d578d85baa79584c1c40c61cc73ca58d527b 27-Sep-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Organized source into sub-folders