History log of /haiku/src/apps/haikudepot/ui/FeaturedPackagesView.cpp
Revision Date Author Comments
# 8d18358c 14-Aug-2022 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Fix Image Rendering

Resolve an issue with rendering package
icons when "Disable user addons" is
turned off.

Relates to #17862

Change-Id: Ic2d17626c40a97598613b8f21218d6829de97bbf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5556
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jacob Secunda <secundaja@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 7dd47034 09-Feb-2022 Humdinger <humdingerb@gmail.com>

HaikuDepot: remove unneeded B_TRANSLATE()

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


# 0d4fa3e5 23-Oct-2021 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Show Publish Date

Add a column to the table to show the publish
date. Also add text on the featured packages
view to show the publish date. Supports
sorting.

Fixes #13006

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


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


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


# a5e4976d 22-Sep-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Lists; Categories + Stabilities

Remove use of custom list class where it is not
really required in the area of Categories. Also
introduces stabilities relayed over from the
Server and used in the HD user interface instead
of being hard-coded.

Relates To #15534

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


# 4af3fbf9 18-Sep-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Lists & Prominences

Use BStringList instead of bespoke List class for
lists of strings.

Also fix the prominences so that the sort
ordering in the featured packages uses the sorting
algorithm properly.

Relates To #15534

Change-Id: I56e67931aa08e6bfee6d2be21a459152216790e2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3232
Reviewed-by: Adrien Destugues <pulkomandy@gmail.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>


# 494bd147 28-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

HaikuDepot: Let BScrollView handle resizing the scrollbar bounds.

This way, it will also resize the views properly when the scrollbars
are larger.

Fixes part of #16408.


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


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


# 4d2de4ea 18-May-2020 Augustin Cavalier <waddlesplash@gmail.com>

HaikuDepot: Fix GCC2 build.


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


# 1f3909ad 02-May-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Referencable Fixes

Some misuse of BReferencable / BReference are causing the
debugger to fire while debugging another issue. This
should fix some of it.

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


# a6a45d1b 18-Apr-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Fix Oscillating Pkg Selection

The views for prominent and list packages were both
getting mouse click events and they were both sending
the "package changed" to the MainWindow which, with
the two queued messages, ended up in a feedback loop
constantly oscillating between the two packages from
the two views. This problem is resolved in this
commit by stopping one of the views processing the
events if it is hidden -- because it is not the
selected tab.

Resolves #15884

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


# 296183eb 18-Apr-2020 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: UI Colouring Fix

Some text displayed was not using the system
standard colors.

Resolves #11689

Change-Id: Ia415a32f47dff6aa86d343d1acc154527300e924
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2493
Reviewed-by: waddlesplash <waddlesplash@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>


# 1187e806 02-Oct-2019 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot: Fix Selection in Featured Package List

Fixes #15386

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


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


# e5c4ce4f 21-Jul-2018 David Murphy <murphman@gmail.com>

HaikuDepot: Fix package list icon size for regular and featured views

Fixes #13399
Change-Id: I9a372d467e2056c6985fdc43b4629aa8fecd7535


# 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


# 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


# d45104b1 22-Nov-2017 Julian Harnath <julian.harnath@rwth-aachen.de>

HaikuDepot: incremental update of FeaturedPackagesView

* Performance: on incoming package update messages, don't setup
all data in the PackageView from scratch again; instead, only
update the parts which were actually changed


# fa19dd44 10-Dec-2015 looncraz <looncraz@looncraz.net>

apps: Convert to using Set*UIColor.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Patches 0045-0075, 0077-0087 from looncraz, unmodified.


# 2a36368b 08-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

HaikuDepot: Make BitmapView use SharedBitmaps directly.

Instead of extracting a BBitmap out of the SharedBitmap and giving that
to BitmapView, set SharedBitmaps directly. When using BBitmaps we
circumvent the reference counting of the SharedBitmaps and it would be
possible for the SharedBitmap and its BBitmaps to get deleted while
one of them was still used in a BitmapView.

Fixes use-after-free when icons are updated that are already used in
BitmapViews.


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


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

HaikuDepot: Added RemovePackage() method...

... to FeaturedPackagesView.


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

HaikuDepot: Mark installed featured packages...

... with a checkmark icon.


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

HaikuDepot: Handle NULL PackageInfoRef in FeaturedPackagesView::Select()


# 8507d262 13-Nov-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Support wheel scrolling in featured packages

* Forward B_MOUSE_WHEEL_CHANGED to parent view from each package row view
* Configure small/big steps on vertical scroll bar.


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

HaikuDepot: Visualize selection in featured packages view


# ef40255d 09-Nov-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Make summary text non-selectable...

... in the rows of featured packages.


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

HaikuDepot: Improve featured package items

Show the summary instead of the version. The layout still sucks, but I will
have to implement some kind of row/flow BLayout to get what I initially had
in mind. Another TODO is to highlight the clicked item somehow.


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

HaikuDepot: Fix click detection in featured packages

Take window activation and parent bounds (a featured package scrolled outside
the visible region within the parent) into account.


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

HaikuDepot: Select clicked featured packages


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

HaikuDepot: Only list featured packages once.


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

HaikuDepot: Separate MessagePackageListener...

...into MessagePackageListener and OnePackageMessagePackageListener.
The first one doesn't know which package(s) it's listening to. But it
can filter the change notifications now and only react to certain changes.
The second one knows which package it's listening to.


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


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

HaikuDepot: Extracted MarkupTextView into its own files


# 2a36368bda35aed7210c3285019b286581fc8786 08-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

HaikuDepot: Make BitmapView use SharedBitmaps directly.

Instead of extracting a BBitmap out of the SharedBitmap and giving that
to BitmapView, set SharedBitmaps directly. When using BBitmaps we
circumvent the reference counting of the SharedBitmaps and it would be
possible for the SharedBitmap and its BBitmaps to get deleted while
one of them was still used in a BitmapView.

Fixes use-after-free when icons are updated that are already used in
BitmapViews.


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


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

HaikuDepot: Added RemovePackage() method...

... to FeaturedPackagesView.


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

HaikuDepot: Mark installed featured packages...

... with a checkmark icon.


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

HaikuDepot: Handle NULL PackageInfoRef in FeaturedPackagesView::Select()


# 8507d262d8b2b84134f1b20bd283f006fa0fd54f 13-Nov-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Support wheel scrolling in featured packages

* Forward B_MOUSE_WHEEL_CHANGED to parent view from each package row view
* Configure small/big steps on vertical scroll bar.


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

HaikuDepot: Visualize selection in featured packages view


# ef40255d5dbae41512fde94ba3a57eb3f3981d84 09-Nov-2014 Stephan Aßmus <superstippi@gmx.de>

HaikuDepot: Make summary text non-selectable...

... in the rows of featured packages.


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

HaikuDepot: Improve featured package items

Show the summary instead of the version. The layout still sucks, but I will
have to implement some kind of row/flow BLayout to get what I initially had
in mind. Another TODO is to highlight the clicked item somehow.


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

HaikuDepot: Fix click detection in featured packages

Take window activation and parent bounds (a featured package scrolled outside
the visible region within the parent) into account.


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

HaikuDepot: Select clicked featured packages


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

HaikuDepot: Only list featured packages once.


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

HaikuDepot: Separate MessagePackageListener...

...into MessagePackageListener and OnePackageMessagePackageListener.
The first one doesn't know which package(s) it's listening to. But it
can filter the change notifications now and only react to certain changes.
The second one knows which package it's listening to.


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


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

HaikuDepot: Extracted MarkupTextView into its own files