History log of /haiku/src/apps/haikudepot/ui/MainWindow.cpp
Revision Date Author Comments
# 88af15cf 18-Dec-2023 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : Refactor Screenshots

Rework the way in which the application deals
with screenshots so that there is a repository
of screenshots that is referenced from
identifiers on the package model and not that
the screenshot bitmaps are stored with the
model and not cleaned up.

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


# 3538133f 28-Oct-2023 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Log Process Report

To make it easier to understand what process
elements are taking a long time to run, a
small simple report is output as debug log
at completion of a process.

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


# 4b347fcc 23-Sep-2023 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Token Based Authentication

This switches the application over from using basic
authentication to using token-based authentication in
preparation for later using Open-ID based
authentication flows. The application version is also
bumped in order that the server can detect this version
at some later date in the future when it no longer
supports basic authentication itself.

Change-Id: I7addde1d57503c58d6bcd54908f22f66830c0c59
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6944
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 84674570 05-Jun-2022 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Delayed Increment View Counter

Performs the increment of the view counter
after a delay of three seconds; otherwise
a number of "false views" can be stored as
people use keyboard navigation.

Relates to #16879

Change-Id: I6f3440e1e3132c832cd807e48105022d22df9abf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5356
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 409af934 01-May-2022 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Fix Crash on Shutdown

The MainWindow itself was a BReferencable via a listener
virtual class. It looks like the error has come from a
conflict between the MainWindow's own deletion and the
state of the reference count. This change moves the
listener / BReferencable out of the MainWindow so that
the lifecycle of the BReferenable can be managed
correctly.

A further problem here is that the new listener
was leaked from the MainWindow class on shutdown.
To resolve this problem requires a considerable
change to the "process coordinator" system.

Fixes #17689

Change-Id: I7230843ba05537015f4a597b4a616b96c6db3dde
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5285
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Andrew Lindesay <apl@lindesay.co.nz>


# 467ffecd 26-Apr-2022 Augustin Cavalier <waddlesplash@gmail.com>

HaikuDepot: Temporarily disable viewing usage statistics.

It causes crashes (see #17689) and I was unable to determine the cause;
and it causes very noticeable lag (see #16879.) It can be reinstated
once those problems are fixed.


# 7d7de135 26-Apr-2022 Augustin Cavalier <waddlesplash@gmail.com>

HaikuDepot: Fix leak of ProcessCoordinators.

This function is supposed to take ownership of the coordinator item,
but it didn't do that in all cases. Use a BReference(..., true)
to do that.


# a3866854 25-Apr-2022 Augustin Cavalier <waddlesplash@gmail.com>

HaikuDepot: Cause and wait for the package-populator thread to exit on window close.

May help with #17689.


# 4329a83f 23-Mar-2022 Augustin Cavalier <waddlesplash@gmail.com>

HaikuDepot: Inherit from BWindow last so it is destroyed before everything else.

This eliminates the need for the early deletion of certain controls.

Part of #17579.


# d5562247 18-Feb-2022 Augustin Cavalier <waddlesplash@gmail.com>

HaikuDepot: Cleanup and release references early.

So that we do not destroy things in the wrong order and trigger
the reference-counting assertions.

Fixes #17579.


# afe7affb 19-Aug-2021 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Fix Local Pkg Install

Fixes #17186

Change-Id: I85e54c0261a7338ec2baeaff6b0905f77087171a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4358
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 95c7b018 22-Jul-2021 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Shutdown Handling

Improvements to the shutdown handling mechanics so that
if there is an install etc... happening when the
application is quit that it will wait until the process
is complete before actually terminating.

Change-Id: I8d3c4fbd9de0abc9382d55f0a6955b7f63a36637
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4322
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 0ebb9177 04-Jul-2021 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: reflect package install changes

This update will mean that HaikuDepot is able to detect
install / uninstall actions on packages at the system
level and reflect this in the user interface.

Fixes #15879, #15994 and #15046.
Relates to #11674.

Also cleans up disused code in the WorkStatusView.

Change-Id: Ide2d5d93c2f71915bc7cfe7d3628e5f343e43f35
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4145
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# f32d5c5c 03-Jul-2021 Andrew Lindesay <apl@lindesay.co.nz>

Packages: signal added|removed packages

Update the package server so that it reports the
added and removed packages when it commits a
change so that clients are able to pickup and
act on the changes without iterating over all of
the packages.

Change-Id: I6feb52c34fc51a78e2282d8d5ca6cb6775b221ca
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4141
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 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>


# f706ac5b 17-Apr-2021 Niels Sascha Reedijk <niels.reedijk@gmail.com>

HaikuDepot: remove double space after period in UI string

Change-Id: If5e63499c5fe7894294319c31c15e6ef133553d9


# e1ae57ab 04-Apr-2021 Joachim Mairböck <j.mairboeck@gmail.com>

HaikuDepot: add shortcut key for Settings

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


# 0b6928f1 01-Apr-2021 Humdinger <humdingerb@gmail.com>

HaikuDepot: Rename/consolidate menus

* Rename "Tools" to "HaikuDepot"
* Move "Settings..." and "Quit" from the new and not well fitting
"Window" menu to "HaikuDepot"
* Add the SettingsWindow to DoCatalogs

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


# 133ebab6 16-Mar-2021 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Increment Pkg View Counter

Closes #16814

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


# 0b69420b 06-Mar-2021 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Fix Redraw Featured Pkgs

The invalidation logic for when packages are
added or removed from this view was broken. The
new approach involves demarcating the mutation
of the data with a begin operation and
terminating it with an end operation with the
view invalidation happening in the end operation.

Resolves #16260

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


# 6f07fead 06-Feb-2021 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Remove Custom List

Further removal of the use of custom list class;
this time with the package action lists.

Also resolve an error created by a last minute
change in the last pull request for this ticket.

Relates To #15534

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


# d75b4d61 31-Jan-2021 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Remove Custom List

Further removal of the use of custom list class;
this time with the package lists.

Relates To #15534
Change-Id: I1f01ed9d5ddbd7754097ce0adbf505d6ba17fd2f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3732
Reviewed-by: Adrien Destugues <pulkomandy@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>


# f95ec23e 24-May-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Fix Crash on Quit During Load

If the system is currently loading-up and populating
data and the user quits then it was crashing because
of a call to a deleted ProcessCoordinator object.
This change implements the reference as BReference
ensuring that the ProcessCoordinator object is only
deleted after it is not used anywhere.

Resolves #16109

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


# 87016f8f 23-May-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Single Package Crash

In single package mode there was a crash owing to the
status bar not being present. This may as well be
added because it provides some feedback that the
application is actually doing something. The
behaviour of this is not ideal because the feedback
could be better, but it will resolve the crash
issue this ticket is raising.

Resolves #15964

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


# c4199192 19-May-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Performance

This change removes two mistakes I made a long time ago
that caused unnecessarily copying of lists of data. This
fix speeds up the UI alot.

This change also clears data in UI list elements when a
bulk load is requested. It stops clearing otherwise and
instead uses "add" and "remove" operations in the lists
which is OK now because the UI list elements are much
faster than they have been in the past. This removes
the strange clean-and-reload that was visible in the UI
previously.

A threaded package loading system was put in place a long
time ago, but with these performance improvements this
mechanism is no longer necessary; it has been removed to
simplify the code.

Fixes #16012

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


# 9883929b 15-May-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Featured Pkgs View

This change will move the display of the featured packages
from a dynamic layout to one that is static. This should
improve layout consistency and ui performance as well as
introduce keyboard navigation in the featured packages
list.

Resolves #11675, #15012
Helps #14675

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


# 5ad01608 16-Apr-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Disable System Pkg Updates

HaikuDepot reacts to changes in packages installed in the
running system, but is currently reloading everything
which is too slow with the quantity of data involved.
Short term; disable this function in this commit so the
application can be used and then come back to it later
with a better solution.

Relates to #15879

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


# ccf707d0 30-Mar-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Fixes for Tabs

Cleans up the code around tab-switching and
also improves some logic around inserting
packages into the list of 'prominent'
packages by using a binary search.

If Haiku is installed into an environment with no
networking then it won't be able to talk to HDS
and so won't know which packages are promoted.
In this case switch the user to the "all packages"
tab so they are not shown a blank panel by default.

Relates to #14675, #14927

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


# 10cd325c 30-Mar-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Check User Auth on Start

The user might have changed their authentication details
on the server and the client won't detect this until
they go to do something. Instead, if possible, check
this as the client starts. Also check that the user has
agreed to the current user usage conditions.

As a side-effect this generalizes the logic for process
coordination in the main window and also fixes some bugs
in the main window's progress display as the application
starts.

Relates to #15209

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


# b21c9447 27-Feb-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Instructions on Logs

Some error messages make mention of application logs
and users don't know how to view the logs. This
change adds some instructions about that to the user
guide and also directs the user to the user guide in
any error messages that mention the logs.

Change-Id: Ib98737abe853586c58a1c1df7befb86aa1c04491
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2285
Reviewed-by: humdinger <humdingerb@gmail.com>


# 976cadf1 09-Oct-2019 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Resolve Hpkg File Opening Issue

Fixes #15389

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


# d2d4866d 19-Sep-2019 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Display User's Usage Conditions

A HaikuDepotServer may have previously agreed to
user usage conditions. If this is the case then
they are now able to view those conditions. There
were some problems with date formatting in this
change and so the date formatting logic has moved
into the HaikuDepot source code temporarily until
issues with the BDateTime class can be resolved;
most likely as a separate piece of work.

Relates to 15209

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


# 1448ced0 18-Sep-2019 Humdinger <humdingerb@gmail.com>

HaikuDepot: sentence casing notification titles

* We generally use sentence casing, even for alerts and notification
titles

* Using "User usage conditions" uses a bit too many 'users' for my
taste. How about dropping the "User" and distinguish possible future
additions with e.g. "Developer usage conditions"?

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


# 0c82f64b 02-Sep-2019 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Conditions on Create User

When the user chooses to create a new user they
are able to view the current usage conditions for
users. They are also required to agree to the
conditions and they are required to confirm that
they meet the minimum age requirement.

Relates to 15209

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


# 55fdd59f 01-Sep-2019 Niels Sascha Reedijk <niels.reedijk@gmail.com>

i18n: fix minor issues in English strings

Thanks for the reports via Pootle (i18n.haiku-os.org)


# 01339a54 08-Jul-2019 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Display User Usage Conditions

This change will allow the user to view the user
usage conditions from the HDS system in a
HaikuDepot window. The display of the text is not
currently well formatted in that the Markdown is
not yet properly parsed, but the display of the
data is working.

Relates to 15209

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


# 89b16bb4 22-May-2019 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Categories from Server

The list of categories for packages is currently
hard-coded into the HaikuDepot desktop
application. This change will change that so that
the list is obtained from the HaikuDepot Server
system and is always up to date with the server's
list of categories.

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


# cd002761 21-May-2019 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Filtering Crash Resolution

I am unable to reproduce the problem locally, but
suspect that the lack of locking around one line
may be the cause. Hopefully fixes #14025.

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


# 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>


# e00a489b 28-Oct-2018 Augustin Cavalier <waddlesplash@gmail.com>

HaikuDepot: Replace the "featured packages" checkbox with tabs.

As discussed in #14598, there are now two tabs instead of the
checkbox: "Featured packages" and "All packages". It otherwise
behaves as before.

Also fixes #12428.


# bc622f6b 15-Oct-2018 Humdinger <humdingerb@gmail.com>

Fix missing localization

This addresses some of what's reported in ticket #14637.

* Keymap preferences: Localize key labels. Translators have
to be careful not too use too long words here...

* Media preferences: Fix typo "SoundFonts" -> "SoundFont"
The two popup menus, Video input/output, both use "<none>",
which when the catkeys are collected is reduced to one item.
Apparently, Italian likes to have different tranlsations for
them. I hope to fix that by using B_TRANSLATE_COMMENT with
differing comments. Not sure if that'll work...

* Network preferences: Localize "on/off" and "Enable/Disable"
in the Services.

* Repositories preferences:
Add RepoRow.cpp to DoCatalogs.

* Shortcuts preferences: Localize "Left/Right/Both/Either/None"

* Bluetooth replicant: Localize menu items and alerts.

* DeskCalc: Localize button names.

* HaikuDepot:
- Use BStringFormat and variables to replace for the WorkStatusView.
- Put package name in single quotes; nicer if you have package names
with spaces.
- Avoid leading and trailing spaces in translatable strings. Those
can be overlooked b the translator.
- Use B_UTF8_ELLIPSIS instead of "...".

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


# 6ab878c0 02-Oct-2018 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : Fix Rating of Installed Pkg

This commit resolves a problem where a user would be
unable to rate an installed packge.

fixes #14554

Change-Id: I3141eaebbdf531f17eb05302a536c6e0d722a164
Reviewed-on: https://review.haiku-os.org/611
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 6d18e980 03-Oct-2018 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : Performance for Package List Updates

Performance improvements for the application updating
lists of packages when the user is operating with the
locale set to Russian.

fixes #14513

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


# 3b17d8dd 27-Jun-2018 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot / PackageKit: Repositories 'Identifier' URL

Repositories are identified with a 'url' in the
remote 'repo.info' file. There is also a
'base url' which is the URL locally with which
the system is able to access the repository
data on. There is some confusion between these
two terms in the source. This change aims to
separate the two out and consistently name them.
The settings for the repository locally also was
not storing these values and that has been fixed.
Debug info about the repositories also did not
display the two urls consistently and will now
also do so. Finally, HaikuDepot now correlates
locally configured repositories with the data in
HaikuDepotServer using the identifier URL; this
makes the use of mirrors with HaikuDepot possible.

Fixes #13888
Change-Id: I66dfe589b05c24e1ab123a6945352e0f24b60bf1


# 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


# d13c3d89 04-Mar-2018 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : Handling for Depot Name Anomalies

There is a problem primarily manifesting itself in
the x86_64 build where the packages' names from the
solver are not correlating with the names of the
as-configured depots. There was also a problem
with a local variable being the same name as a function
parameter. This does not fix the underlying problem,
but avoids further anomalies in the HaikuDepot UI.

Possibly related trac #11317, #11674, #13940.
Change-Id: Ic140f114bbe38e59c78760213843bf492ff7a270


# b965ce70 16-Dec-2017 Humdinger <humdingerb@gmail.com>

Changes to HaikuDepot GUI

As discussed at #13860.

* Moved "Show only featured packages" from the "Show" menu to a
checkbox in the filter view.
* Moved "Repositories" popup menu into the menu bar.
* Removed the "Featured packages" title.
* Entering a search term doesn't override the "Only featured"
filter anymore (used to disable the "Only featured" filter).


# 4e6fbe03 27-Dec-2017 Julian Harnath <julian.harnath@rwth-aachen.de>

HaikuDepot: notify work status from main window

* Update the work status view with package state changes from
MainWindow instead of PackageListView, because PackageListView
does not always show all packages that are going to be installed
(e.g. dependencies that are not shown when a search filter is
active).

* Fixes the bug that prevented pending/download status to show up
for dependencies when filters are used.


# 39f49f70 26-Dec-2017 Julian Harnath <julian.harnath@rwth-aachen.de>

HaikuDepot: speed up package change handling

* During package population, when the repository is being
refreshed, thousands of package change messages arrive
in MainWindow while the PackageInfo fields are filled with
data.

Every such message caused a full generation of a package
list (including applying filters to all known packages),
which is quite slow, and caused the freezing from bug
#13823. The list was only used temporarily to figure out
if the package should be visible now or not.

* Instead of generating a new package list, we now only
match the single updated PackageInfo against the current
filters.

* Fixes #13823

* To reduce CPU usage even more, it would be better to not
generate at all, or not subscribe to, package changes while the
list is being initially populated, and/or to coalesce all the
changes to each package info into one update message (instead
of one for title, one for prominence, etc).
Deferring subscription requires some additional thought on when
to subscribe then, and how to avoid leaving a "hole" where
changes would go unnoticed.


# 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.


# d144f952 16-Dec-2017 Augustin Cavalier <waddlesplash@gmail.com>

HaikuDepot: Add "Check for updates" item in Tools menu to open SoftwareUpdater.


# d78bfd8d 26-Nov-2017 Julian Harnath <julian.harnath@rwth-aachen.de>

HaikuDepot: fix single package install

* Fix crash report by Diver


# 72fff6d3 24-Nov-2017 Julian Harnath <julian.harnath@rwth-aachen.de>

HaikuDepot: async listing of packages in PackageListView

* The UI became unresponsive while the PackageListView was filled
with all the packages. This was especially apparent when using
the search function, which clears and refills the view with every
typed character.

* Add a new worker thread with the task of asynchronously filling the
PackageListView. When a new data model is adopted, we hand the
thread a copy of the visible package list. The worker thread then
goes through the list and sends the package infos via BMessage back
to the MainWindow, in batches of 20 infos per message. When the 20
entries were added, it acknowledges this to the worker thread which
will send the next 20 infos (so UI messages can get in between,
keeping it responsive). The lists also get a unique ID so that
model changes while the list is populating will invalidate
previously sent messages (and cause the worker thread to cancel
processing the outdated list).

* Search is much nicer to use this way, staying responsive and
listing packages while typing. Still not perfect since the
PackageListView is still cleared and refilled each time a character
is typed, instead of just narrowing down the already displayed
package set. But that's to be improved on another day...

* Same applies to filling FeaturedPackagesView btw


# 125d42d9 23-Nov-2017 Julian Harnath <julian.harnath@rwth-aachen.de>

HaikuDepot: add work status view

* Add new WorkStatusView which keeps the user informed about what's
happening. It's a status bar at the bottom of the window which
shows on the left side either a spinning barber pole (for
operations without a progress), or a progress bar (for download
progress). Next to that is a text view showing a descriptive
status text.

* Currently, it will notify of the following operations:
- Repository refresh (barber pole)
- Background packet actions, like preparation of install or uninstall
(barber pole)
- Package downloads, including downloads of dependencies (progress
bar). Status text indicates the name of the package currently
being downloaded (if any), and how many more packages are queued
for download after it (if any).

* Hooks into PackageListView to be notified of package status changes
(such as becoming pending or download progress)

* When the package currently being downloaded is also selected in the
list view, the user sees the progress bar in WorkStatusView
as well as the one in the PackageInfoView, which is redundant. This
still needs a good solution...


# 3d528c4a 03-Nov-2017 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Change communication mechanism with server for repos

(last commit with same title only included new files - added those now)

Previously the desktop application would make a number of JSON-RPC calls
over HTTP to get the repositories. Now it will make a single call to get
the repositories and cache the result. This uses standard HTTP cache
signalling techniques and allows the server-side the ability to cache
the generated data as well. Note that the model classes and parse-
related classes are generated and may not be code-style compliant. They
are generated from JSON schema files in the server-side project.
Information about this as well as the python files used to generate the
C++ classes and headers are included in the server-side project.


# d7f78130 08-Jan-2017 Humdinger <humdingerb@gmail.com>

Fixed build...


# d193fb94 08-Jan-2017 Humdinger <humdingerb@gmail.com>

HaikuDepot prefs: Add ellipsis to menu item

As Diver pointed out, the "Manage repositories" opens a window and
should therefore be suffixed with an ellipsis.


# 5bf2b6eb 04-Jan-2017 Brian Hill <supernova@warpmail.net>

Add the new Repositories preflet.

Also includes changes to HaikuDepot to change wording and add the menu item
to open the Repositories preflet.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Closes #13147.


# ebb1a01c 20-Oct-2016 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Handling for communications with application server over multiple repositories

This change allows for the HaikuDepot desktop application to query the server application
over HTTP for data regarding packages across the various repositories that the have been
configured on the desktop environment. Previously it was 'hard-coded' to only
communicate about the HaikuPorts repository.


# 8e96ec34 14-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

BWindow::MoveOnScreen() now has a flags field.

* You can now specify whether or not you want to resize the window,
and move it on screen, or center it.
* Removed PulseWindow::MoveOnScreen() method.


# 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).


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

HaikuDepot: Clean up trailing whitespace.


# 72992391 04-Apr-2015 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Title versus Name distinction

* The name is the static package name. The title is either that name,
or a translated pretty version of the name.
* Adjust package info retrieval to server API changes. Unbreaks package
translations.


# 7b2c59b9 25-Jan-2015 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Implemented light-weight package manager update

No, not updating packages via HaikuDepot, but a light-weight synchronization
between the system package manager list and the HaikuDepot model. After
installing or removing a package, HaikuDepot performed a very costly update
of all information by basically throwing everything away and reloading it.
Implements #11786.


# 57e51fff 11-Jan-2015 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Fix failing to show some packages after refreshing.

Since the package information is refreshed asynchronously, some packages
may fit the current filter parameters. Check for this situation more
generically in the MSG_PACKAGE_CHANGED notification. Before, it was only
done for prominent packages to make them appear in the Featured packages
view. The problem was visible by for example selecting a category and then
refreshing packages. Many of the previously shown packages would be missing
and magically appear when changing filter parameters slightly and back
to what they were.


# 09f82905 10-Jan-2015 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Always init the thread ids...

... also in case creating the semaphores fails.


# 05bffa62 10-Jan-2015 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Check thread ids before waiting for threads.

These threads are not created if creating a semaphore failed, so
it's not fixing a bug which anyone has likely encountered.


# 75ba9dbf 27-Dec-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Lock model when selecting a package


# 93a7cf94 27-Dec-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Clear package info view if package not listed

If the visible packages list does not contain the currently showing package
anymore after filter parameters have changed, clear the package info area.
This also means that when installed packages are turned off, which means
a package will disappear from the list after being installed, the package
will no longer keep showing in the info area. This situation is less likely
with the change that installed packages will now show by default and the
user has to explicitly turn them off.


# 0c6df5d5 27-Dec-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Fixed regression: selecting featured packages

Since the fVisiblePackages list in MainWindow is now also filtered by
featured packages, and since the "featured" status of packages is collected
asynchronously, the list needs to be updated in the package changed
notification. Also, the package should only be added to the featured packages
view if it is now in the visible list. Other filter criteria would not be
taken into account otherwise. Fixes #11663


# 1986ab9f 26-Dec-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Sync the selection between normal and featured list


# 2997e05b 26-Dec-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: All "Show" settings are persistent now.


# 4fade61f 26-Dec-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Change when featured packages are shown

* Renamed the "Option" menu to "Show", removed the now redundant "Show" from
the items in that menu.
* Add an "Only featured packages" item in the Show menu. This item is disabled
as soon as the user types something in the search terms field. Othetwise,
this setting is respected, i.e. one can combine the featured setting with
other settings, i.e. show all featured packages of a certain depot and in a
certain category.
* Added PackageInfo::IsProminent() and removed the respective method from
the MainWindow (which only considered a package prominent if it was not
yet installed).
* "Show -> Installed packages" now defaults to on. There have been complaints
on Trac and I guess rightfully so. The use-cases in which one starts
HaikuDepot and wants to know about installed packages are just as likely
as the use-case where one wants to install new software.


# d5ef985e 29-Nov-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Added rudimentary screenshot window.

Clicking the thumbnail in the package info area will now open a
window where the full-size screenshot is downloaded and shown. There can
only be one such screenshot window open. Navigating between multiple
screenshots of a package is not yet implemented. Also, no caching, but
this may be OK as it is, since one usually looks at these only once and
doesn't want the harddrive filling up with screenshots.


# 664372ab 08-Nov-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Visualize selection in featured packages view


# 0a9c9029 01-Nov-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Show a "Featured packages" label

Also remove the left-over separator in the Tools menu.


# 419dc642 01-Nov-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Feature packages with prominence <= 200


# da651104 01-Nov-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Properly add featured packages.

* Rework existing package listener mechanism to report any interesting
changes. Listen for prominence changes in addition to package state.
* Add featured packages to the FeaturedPackagesView when their prominence
is retrived, and also in _AdoptModel().
* In _AdoptModel(), show the featured packages view when no search filters
are active and installed packages are not shown either. Otherwise show
the list of all packages matching the current filtering.


# 4b930cca 26-Oct-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Work in progress on featured packages

Not yet visible. But the package list area in the main window has a card
layout now and a second (hidden) page for featured packages. Which packages
are visible there will depend on the prominence value from the web-app
and other parameters later (suggestions based on packages already installed
and user-ratings). At the moment, there is no mechanism for updating the
package list when package info is retrieved asynchronously, even from the
cache. Also, the view should switch to the list when searching and perhaps
in other situations as well, like selecting a category or when no packages
would be featured. And clicking featured packages does not yet select them in
the info area...


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

HaikuDepot: Fixed potential dead-lock in package list refresh.

When the package list was refreshed while package info was still being
pulled from the web app, calling Model::Clear() with the model lock already
held could lead to a dead-lock: The package populator could block on the
model lock to update information, while StopPopulatingAllPackages() waited
for the thread to exit, but held the lock that the thread was blocking on.
So call StopPopulatingAllPackages() before grabbing the lock and calling
Clear() in MainWindow::_RefreshPackageList().


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

HaikuDepot: Resurrect Options menu...

And move the (new) checkmarks into the Options menu. This makes them less
easy to discover, but cleans up the UI, especially since the options to show
development and source code packages are not very important for most users.


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

HaikuDepot: Centralized user account features in the UI

There is now a right-aligned second menu bar for the account management.
The menu label is what was previously shown underneath the search terms field.
The menu items have moved from the Tools menu into the new user menu. This
means the login/logout functionality is directly available where the login
info is shown in the UI when you click it.


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

HaikuDepot: Never refresh repositories or package lists...

... when in single package mode.


# 63975654 12-Oct-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Move worker thread init into method

... and call it from the second version of the MainWindow constructor.


# 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.
* ...


# 1bbda92d 30-Sep-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Request to login before rating a package

* There is now a flow of logging in or creating an account before being
able to rate a package and the user is not yet logged in. The
UserLoginWindow stores an "on success" BMessenger and BMessage which are
send after the alert which confirms successful login or account creation.
This is used to make the RatePackageWindow show once logged in successfully.


# 46bcb34d 29-Sep-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Store BPackageVersion in PackageInfo...

...instead of the string representation. This makes it easier to
get the major, minor, micro, prerelease and revision parts later on.


# 046dc04e 28-Sep-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Now retrives existing rating for a package...

... if there is one and fills the RatePackageWindow UI accordingly.
This will allow a user to edit her earlier rating for a given package.
The button labels will need to be adjusted. Uploading a rating still not
implemented.


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

HaikuDepot: Restore logged in user across sessions.

* Store the username in the app settings. The password was already stored
in the keyring. Restore the username upon next launch.
* Display the logged in user in the main window.
* Added "Log out" menu entry.
* When the password could not be retrieved from the keyring (also because
the user rejects the keyring dialog), unset the username.
* Allow unsetting the username by passing an empty name.


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

HaikuDepot: Allow to set the rating comment's language.


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

HaikuDepot: Organized source into sub-folders


# 8e96ec340bee0b8279e3776c8cba1c3e37e7a956 14-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

BWindow::MoveOnScreen() now has a flags field.

* You can now specify whether or not you want to resize the window,
and move it on screen, or center it.
* Removed PulseWindow::MoveOnScreen() method.


# 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).


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

HaikuDepot: Clean up trailing whitespace.


# 72992391bb6f9351f80367604d64c5da21a9f4a9 04-Apr-2015 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Title versus Name distinction

* The name is the static package name. The title is either that name,
or a translated pretty version of the name.
* Adjust package info retrieval to server API changes. Unbreaks package
translations.


# 7b2c59b9b848f467d2229dedf91ca19899b8ed13 25-Jan-2015 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Implemented light-weight package manager update

No, not updating packages via HaikuDepot, but a light-weight synchronization
between the system package manager list and the HaikuDepot model. After
installing or removing a package, HaikuDepot performed a very costly update
of all information by basically throwing everything away and reloading it.
Implements #11786.


# 57e51fff75882f40988e3a8e2cd474b47ddca200 11-Jan-2015 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Fix failing to show some packages after refreshing.

Since the package information is refreshed asynchronously, some packages
may fit the current filter parameters. Check for this situation more
generically in the MSG_PACKAGE_CHANGED notification. Before, it was only
done for prominent packages to make them appear in the Featured packages
view. The problem was visible by for example selecting a category and then
refreshing packages. Many of the previously shown packages would be missing
and magically appear when changing filter parameters slightly and back
to what they were.


# 09f8290534c965883f44bb0917249b760b08baa6 10-Jan-2015 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Always init the thread ids...

... also in case creating the semaphores fails.


# 05bffa62e63aa5c4fcbb3c69cf5d2a8017482289 10-Jan-2015 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Check thread ids before waiting for threads.

These threads are not created if creating a semaphore failed, so
it's not fixing a bug which anyone has likely encountered.


# 75ba9dbfc371a8fb5a3c67ee1bb264fa22ec2b21 27-Dec-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Lock model when selecting a package


# 93a7cf94a33b4fac9207d48aee9b87608c4a1ba1 27-Dec-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Clear package info view if package not listed

If the visible packages list does not contain the currently showing package
anymore after filter parameters have changed, clear the package info area.
This also means that when installed packages are turned off, which means
a package will disappear from the list after being installed, the package
will no longer keep showing in the info area. This situation is less likely
with the change that installed packages will now show by default and the
user has to explicitly turn them off.


# 0c6df5d52ea06e5b096388fa9c609e7fb0032ded 27-Dec-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Fixed regression: selecting featured packages

Since the fVisiblePackages list in MainWindow is now also filtered by
featured packages, and since the "featured" status of packages is collected
asynchronously, the list needs to be updated in the package changed
notification. Also, the package should only be added to the featured packages
view if it is now in the visible list. Other filter criteria would not be
taken into account otherwise. Fixes #11663


# 1986ab9f319871507efe805fedcbec799f7cae86 26-Dec-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Sync the selection between normal and featured list


# 2997e05b4f62d68135be213933a7d922205a7fa9 26-Dec-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: All "Show" settings are persistent now.


# 4fade61ff862bff75a0e5d13fe949b7b4234a91d 26-Dec-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Change when featured packages are shown

* Renamed the "Option" menu to "Show", removed the now redundant "Show" from
the items in that menu.
* Add an "Only featured packages" item in the Show menu. This item is disabled
as soon as the user types something in the search terms field. Othetwise,
this setting is respected, i.e. one can combine the featured setting with
other settings, i.e. show all featured packages of a certain depot and in a
certain category.
* Added PackageInfo::IsProminent() and removed the respective method from
the MainWindow (which only considered a package prominent if it was not
yet installed).
* "Show -> Installed packages" now defaults to on. There have been complaints
on Trac and I guess rightfully so. The use-cases in which one starts
HaikuDepot and wants to know about installed packages are just as likely
as the use-case where one wants to install new software.


# d5ef985e18ef8ce922ace03b7147046c54299f4e 29-Nov-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Added rudimentary screenshot window.

Clicking the thumbnail in the package info area will now open a
window where the full-size screenshot is downloaded and shown. There can
only be one such screenshot window open. Navigating between multiple
screenshots of a package is not yet implemented. Also, no caching, but
this may be OK as it is, since one usually looks at these only once and
doesn't want the harddrive filling up with screenshots.


# 664372ab4966b2981acf6ef93d33edcdee92b8b2 08-Nov-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Visualize selection in featured packages view


# 0a9c90292136464a55830f495ee5377915f47085 01-Nov-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Show a "Featured packages" label

Also remove the left-over separator in the Tools menu.


# 419dc642f51c44f8efa83a2be455649539f2407b 01-Nov-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Feature packages with prominence <= 200


# da6511046d7247e18adb9302a97c15713b91d217 01-Nov-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Properly add featured packages.

* Rework existing package listener mechanism to report any interesting
changes. Listen for prominence changes in addition to package state.
* Add featured packages to the FeaturedPackagesView when their prominence
is retrived, and also in _AdoptModel().
* In _AdoptModel(), show the featured packages view when no search filters
are active and installed packages are not shown either. Otherwise show
the list of all packages matching the current filtering.


# 4b930cca9c12694ced022c05768b8f30fe578f9b 26-Oct-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Work in progress on featured packages

Not yet visible. But the package list area in the main window has a card
layout now and a second (hidden) page for featured packages. Which packages
are visible there will depend on the prominence value from the web-app
and other parameters later (suggestions based on packages already installed
and user-ratings). At the moment, there is no mechanism for updating the
package list when package info is retrieved asynchronously, even from the
cache. Also, the view should switch to the list when searching and perhaps
in other situations as well, like selecting a category or when no packages
would be featured. And clicking featured packages does not yet select them in
the info area...


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

HaikuDepot: Fixed potential dead-lock in package list refresh.

When the package list was refreshed while package info was still being
pulled from the web app, calling Model::Clear() with the model lock already
held could lead to a dead-lock: The package populator could block on the
model lock to update information, while StopPopulatingAllPackages() waited
for the thread to exit, but held the lock that the thread was blocking on.
So call StopPopulatingAllPackages() before grabbing the lock and calling
Clear() in MainWindow::_RefreshPackageList().


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

HaikuDepot: Resurrect Options menu...

And move the (new) checkmarks into the Options menu. This makes them less
easy to discover, but cleans up the UI, especially since the options to show
development and source code packages are not very important for most users.


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

HaikuDepot: Centralized user account features in the UI

There is now a right-aligned second menu bar for the account management.
The menu label is what was previously shown underneath the search terms field.
The menu items have moved from the Tools menu into the new user menu. This
means the login/logout functionality is directly available where the login
info is shown in the UI when you click it.


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

HaikuDepot: Never refresh repositories or package lists...

... when in single package mode.


# 639756547d008e4355332055c66cdee050a26ba9 12-Oct-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Move worker thread init into method

... and call it from the second version of the MainWindow constructor.


# 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.
* ...


# 1bbda92dc72e7b14358c38db78373923ecb806fa 30-Sep-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Request to login before rating a package

* There is now a flow of logging in or creating an account before being
able to rate a package and the user is not yet logged in. The
UserLoginWindow stores an "on success" BMessenger and BMessage which are
send after the alert which confirms successful login or account creation.
This is used to make the RatePackageWindow show once logged in successfully.


# 46bcb34d051b580c4a8e6e22f1b7726e4ddbf15f 29-Sep-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Store BPackageVersion in PackageInfo...

...instead of the string representation. This makes it easier to
get the major, minor, micro, prerelease and revision parts later on.


# 046dc04e836e635c249a83dbfce8c4bf84d8560a 28-Sep-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Now retrives existing rating for a package...

... if there is one and fills the RatePackageWindow UI accordingly.
This will allow a user to edit her earlier rating for a given package.
The button labels will need to be adjusted. Uploading a rating still not
implemented.


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

HaikuDepot: Restore logged in user across sessions.

* Store the username in the app settings. The password was already stored
in the keyring. Restore the username upon next launch.
* Display the logged in user in the main window.
* Added "Log out" menu entry.
* When the password could not be retrieved from the keyring (also because
the user rejects the keyring dialog), unset the username.
* Allow unsetting the username by passing an empty name.


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

HaikuDepot: Allow to set the rating comment's language.


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

HaikuDepot: Organized source into sub-folders