Commit Graph

57702 Commits

Author SHA1 Message Date
Alexander von Gluck IV
ef854aff3a 3rdparty/kallisti5: License Guess Tool
* Pair it with a find, and pretty handy to
  highlight sources which have a non-standard,
  missing, or incompatible license.
2017-11-28 10:25:54 -06:00
Alexander von Gluck IV
8f087d87f9 bfs_tools: License clarification to MIT.
* Consulted with Axel D. via IRC to confirm license desires.
2017-11-28 09:26:04 -06:00
Janus
1abde80b3b ZipOMatic: modernize barberpole widget
* Use the code/graphic of the new barberpole (Haikudepot)
* See #13808
* I hope soon we will have a system standard widget
2017-11-28 14:07:02 +01:00
Janus
0588dd3ae2 [Haikudepot] Change barberpole colors
* Feel free to tweak tint and other parameters
* As suggested by waddlesplash this should extend the progressbar
* Should fix #13808
2017-11-27 23:16:54 +01:00
Julian Harnath
416c116003 HaikuDepot: resize window to largest screenshot of pkg
* When opening the screenshot window for a package, set the window
  size to the largest dimensions of all the screenshots of this
  package. Prevents it from resizing/jumping around when browsing
  through the images.
2017-11-27 22:15:02 +00:00
Julian Harnath
3ca9d5e90c HaikuDepot: delay indicating screenshot download progress
* Only show barber pole if screenshot download takes longer
  than 200ms
2017-11-27 22:15:02 +00:00
Julian Harnath
622e144f6c HaikuDepot: add icons to screenshot window tool bar
* Arrow icons instead of text for previous/next buttons
2017-11-27 22:15:02 +00:00
Julian Harnath
47e34fcb8a HaikuDepot: fix screenshot window toolbar
* Next-button was disabled too early
2017-11-27 22:15:02 +00:00
John Scipione
4824497d01 BDeskbar: Set auto hide default value to false
Didn't notice this before so had to do a quick fix. Catch it before
Coverity can.
2017-11-27 11:50:15 -08:00
John Scipione
fd236f33cd BWindow: Update Zoom() with Deskbar window flags
Call newly created BDeskbar methods to adjust default Zoom().

if auto-hide is turned on don't consider Deskbar's frame.

In vertical mode allow windows to zoom on top of Deskbar if
auto-raise or always on top is turned on.

Deskbar can take up a significant area so you can reclaim that
space by turning on auto-raise or always on top.

In horizontal mode ignore auto-raise and always on top settings,
don't allow windows to zoom on top of Deskbar even if these
settings are turned on.

Deskbar doesn't take up very much space and you don't want your
window to get cut-off at the bottom.
2017-11-27 11:13:50 -08:00
John Scipione
fc23c09758 BDeskbar & Deskbar: export window bool settings to BDeskbar
Add methods to get and set "Always on top", "Auto raise", and "auto hide"
which are all booleans which control aspects of the Deskbar window to
BDeskbar.

Set the bool to the default value initially. Check if sending the
message succeeds, if so check the reply which also fills out the bool.
Don't check to see if reply succeeded because the bool will only be
overwritten if it did.

Follow the BDeskbar convention Is...() for getter, Set...() for setter
e.g IsAlwaysOnTop() is the getter, SetAlwaysOnTop() is the setter.

Define new message constants to call the newly created methods.
Follow BDeskbar convention: 'gtla' is used for getter, 'stla' for setter.
g/s for getter/setter, tla is an all-lowercase code unique to each
getter/setter pair.

Copy/paste these message constants into BarApp.h unchanged. Replace four
letter codes with imported message constants in BarApp.cpp and
BarWindow.cpp. Much nicer than using bare codes.

The new BDeskbar methods are all handled by TBarApp. The getters send
back a reply message containing the bool while the setters fall through
to existing setter cases.
2017-11-27 11:05:22 -08:00
John Scipione
f8811591e1 BDeskbar: Style fixes
Update Copyright in cpp, add myself, alphabetize, standardize
Pointer style in cpp
Update some comments
Some 80 char stuff
pragma section headers
whitespace
2017-11-26 20:40:00 -08:00
John Scipione
b1b84675f0 BWindow: Update default Zoom() to respect Deskbar
Zoom() takes up all Desktop area excluding the area
occupied by Deskbar. This is calculated using information
from the BDeskbar class.

Window zooms just as you'd expect -- it takes up fullscreen
minus area taken up by Deskbar. In vertical mode the zoom
area depends on the width of Deskbar, consequently Zoom()
is more space efficient in horizontal mode than vertical
mode because the window doesn't use the area below Deskbar.

If the zoom limits are smaller than the Desktop area, the
zoom area shrinks towards the center of the Desktop not
covered by Deskbar. This is slightly different behavior,
the window insets off-center following Deskbar.

In some scenarios zooming to the non-Deskbar area was too
restrictive. I made an exception that if there is enough
room above or below Deskbar i.e. a short window, then Zoom()
instead insets from the screen edge ignoring Deskbar. Apps
which meet this criteria include DriveSetup and Expander.
2017-11-26 20:04:43 -08:00
Julian Harnath
a83b974b13 HaikuDepot: make status bar smaller
* As requested in #13808

* Thanks to Janus for the tip with the SetBarHeight
2017-11-26 17:59:39 +00:00
Julian Harnath
d78bfd8d18 HaikuDepot: fix single package install
* Fix crash report by Diver
2017-11-26 17:48:27 +00:00
Automatic Committer
5bdf48dea6 Update userguide and translations 2017-11-26 11:14:46 +01:00
Augustin Cavalier
08965a6568 build: Remove now-defunct jam commands. 2017-11-25 21:15:10 +01:00
Augustin Cavalier
5f8613a22c build: Cleanup and fixes following previous commits.
* Hashing semantics for the new build repositories are different than
   the old ones, so update those (if the x86 build was not broken before
   it is now...)
 * OptionalPackages has been updated slightly (removed libtool and git_cvs
   from the default images, as they are rarely used nowadays and would pull
   in a bunch of dependencies we don't really care for either)
 * Removed lib:libqrencode from Haiku package requires (qrencode_kdl is a
   static library, the userland libqrencode is not used anywhere in the tree,
   as far as I can tell)
 * Fix build of JPEG2000 translator after update
 * Decouple fluidsynth build machinery and remove from image now that it
   is no longer used
 * Update repository URL in Repositories preflet
2017-11-25 21:15:10 +01:00
Augustin Cavalier
36f675968e HaikuPorts: Update to point to the buildmaster repositories.
x86 is unaffected, as already mentioned. This breaks the build,
but since this diff was large, I wanted to have the functionality
changes be clear, so they are in the next commit.
2017-11-25 21:15:10 +01:00
Augustin Cavalier
16b3c214f1 tools: Add a new hardlink_packages.py script.
This is essentially the replacement for "jam upload-packages" --
it goes through a directory of packages (intended to be one made by
buildmaster), picks the packages out of it that are in the repository
file passed to it, and then hardlinks them to a second directory
as well as updates the repository file and creates a package_repo.

This is what was used to mass-modify the repository files which
will be updated in the next commit.
2017-11-25 21:15:09 +01:00
Augustin Cavalier
174f207416 repositories/HaikuPorts: Strip the x86_gcc2 and x86_64 repos down to build deps only.
The packages that remain are only the ones used somewhere in Jam
(including ones off by default, e.g. Wonderbrush, Live555.)

The x86 repo is untouched as it is being phased out and has no buildmaster-
generated equivalent.
2017-11-25 21:15:09 +01:00
Augustin Cavalier
c9f8b996fe repository_infos: Use HTTPS and point HaikuPorts to Buildmaster-generated repo. 2017-11-25 21:15:08 +01:00
Augustin Cavalier
a9916f9b1a build/jam/BuildFeatureRules: Make EnableBuildFeatures actually work.
It was trying to use $(feature:U) outside of the loop where it is
actually set. Thanks to PulkoMandy for spotting the problem.

(How did this not break tons of stuff?)
2017-11-25 21:15:08 +01:00
Jérôme Duval
7bee81a5c2 updated usbdevs from NetBSD revision 1.743 2017-11-25 19:06:36 +01:00
Jérôme Duval
331f527e44 Update zstd packages for x86. 2017-11-25 09:21:08 +01:00
Jérôme Duval
540529be6f Haiku package: depends on zstd for libbe. 2017-11-25 08:46:07 +01:00
Automatic Committer
2bb7cb8d87 Update translations from Pootle 2017-11-25 07:09:34 +01:00
Jérôme Duval
6ac3a280f4 Add ZstdCompressionAlgorithm.
* kernel lib is decompress only (like zlib).
* expand compression_test for zstd.
2017-11-24 21:35:49 +01:00
Julian Harnath
c210060f38 HaikuDepot: begin support for multiple screenshots
* Initial support for displaying multiple screenshots for packages
  which have more than one. Still rough and unfinished.

  Screenshot window now has a toolbar with prev/next buttons and
  a busy loading indicator. Switching through the screenshots works.

  There's currently a server-side bug which makes all data turn up
  15 times in the JSON file, so please don't report a bug about
  HaikuDepot showing 15 or 30 screenshots available when it's really
  just 1 or 2 :)

  Still to be done: toolbar icons instead of text labels; better
  handling of screenshot window resizing; maybe thumbnails of
  screenshots and preloading other screenshots in the background.
  Main window also needs a way to indicate that there are more
  screenshots than the one thumbnail, needs some more thought about
  how that might look.

  This concludes my HaikuDepot commits from the coding sprint at
  KDC 2017 Toulouse!
2017-11-24 18:22:14 +01:00
Julian Harnath
74e4161139 HaikuDepot: hide debuginfo too when hiding development pkgs
* When development packages ([...]_devel) are not shown, we now also
  hide debuginfo packages ([...]_debuginfo).

* Fixes #13095
2017-11-24 18:22:14 +01:00
Julian Harnath
72fff6d385 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
2017-11-24 18:22:14 +01:00
Julian Harnath
97844417de HaikuDepot: faster row lookup in PackageListView
* Use a hash table to find PackageRows by package name in
  PackageListView, instead of doing linear search over all rows.
  Improves performance of populating the list, since every
  AddPackage() checks if a row for the package already exists.
2017-11-24 18:22:14 +01:00
Julian Harnath
26c5107c8d HaikuDepot: fix package category assignment
* Processing of server data used wrong index into category list
2017-11-24 18:22:14 +01:00
Julian Harnath
125d42d95b 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...
2017-11-24 18:22:14 +01:00
Julian Harnath
d737433974 HaikuDepot: add change confirmation event to progress listener
* Add a new event "ConfirmedChanges" to PackageProgressListener. It
  triggers when a package action was confirmed by the user and is
  about to be run. This can be used to e.g. get a full list of
  packages about to be installed (i.e. including dependencies)
  right before the process of fetching/installing them is started.

* Add a handler for it which looks at PackagesToActivate and sets
  all their PackageInfo states to pending (so now, when installing
  a package, its dependencies immediately become pending as well).
2017-11-24 18:22:14 +01:00
Julian Harnath
2a493ea0e0 BView: set initial frame rect invalid when using layouting
* When a view is used with the layout system, its initial frame rect
  was set to (0, 0, 0, 0), which is a BRect covering 1 pixel in the
  top left corner of the window.
  Since this a valid rect, it can cause "badly behaved" views to
  trigger redraws of themselves and other views during the layout
  process, which is ultimately the reason for the HaikuDepot UI
  freezing while populating with packages.

  The misbehaving view in this case is BTextView. When in read-only
  mode, since commit e27a53b2, its GetHeightForWidth() implementation
  causes the view to resize (really resizing, not just simulating a
  resize) and thus it invalidates itself. This is broken behaviour,
  and needs to be fixed in BTextView. Since GetHeightForWidth() is
  called during the layout process, all the not-yet-layouted views
  have a frame of (0, 0, 0, 0). The invalidation of just the one
  BTextView in the layout then hits *all* new views that are being
  layouted (because they all occupy the same one pixel in the
  corner), and they all get redrawn.
  Many view Draw() implementations ignore the update rect, so work
  is being done. And even if not, this can cause a lot of traffic
  on the app_server link. In a test case with HaikuDepot's
  FeaturedPackagesView, adding 300 rows (each containing a BTextView,
  among other views) in quick succession caused over 6 million
  commands to travel over the app_server link, completely freezing
  the UI for a long time.

* The actual problem here is in BTextView::GetHeightForWidth() and
  must be fixed there.
  However we also put in an extra-fix here because it never makes
  sense anyway to try and draw a view that has not yet been layouted.
  So we set the initial BView frame to an invalid rect
  (0, 0, -1, -1), which will suppress any actual updating, even
  when the view actively invalidates itself, as long it doesn't
  have a size yet. (The dirty region will always end up empty
  then).

* Fixes HaikuDepot UI freezing during package population (caused by
  above described behaviour from BTextViews in FeaturedPackagesView).
  Might improve performance in other applications using BTextView
  with layouting as well.
2017-11-24 18:22:14 +01:00
Julian Harnath
a78e725206 HaikuDepot: preliminary fix for crash in JSON listener
* Fix use-after-free in the auto-generated JSON listener code (was
  calling method of instance after 'delete this')
  Will also submit a patch for the code generation script in the
  haikudepotserver repo so it won't get lost -- this is just a
  temporary fix-up until then.

* Fixes some random occasional crashes
2017-11-24 18:22:14 +01:00
Julian Harnath
492c58fd9c HaikuDepot: add barber pole style progress indicator
* BarberPole view for indicating that the application is busy while
  the amount of work is not known

* Flat looks with scrolling color stripes. Number of stripes and their
  colors are freely configurable, so you could add a whole rainbow of
  colors to endlessly scroll through if you like.
2017-11-24 18:22:14 +01:00
Julian Harnath
5c821d1200 SystemProfiler: prevent nested wake-up of profiler thread
* When SystemProfiler::_MaybeNotifyProfilerThreadLocked() is called
  and the conditions are right, it will lock the thread's scheduler
  spinlock and unblock it. Internally, the unblock will enqueue the
  thread into the run queue, which causes a ThreadEnqueuedInRunQueue
  event for SystemProfiler. Since the conditions haven't changed, it
  now went into _MaybeNotifyProfilerThreadLocked again (this time
  from the profiler thread context). In there, it will try to lock
  the profiler thread's scheduling spinlock, which is already locked
  by the other thread (which is firmly sleeping). Deadlock, KDL.

* Before unblocking the profiler thread, unset fWaitingProfilerThread
  so that further events will not try to unblock it again.
2017-11-24 18:22:14 +01:00
Julian Harnath
d45104b1eb 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
2017-11-24 18:22:14 +01:00
Julian Harnath
39f995919e HaikuDepot: blue screenshot background and transparency
* Change the background color in the screenshot enlarge window
  from black to the blue, specifically the "Haiku blue", the
  default desktop background color. Makes it look much friendlier.

* Setting the low color later so it's not overriden also makes
  transparency in the screenshot work, i.e. it blends onto the
  blue background (many screenshots are thankfully already using
  transparency to mask out the unused rectangle left by the window
  tab)
2017-11-24 18:22:14 +01:00
Julian Harnath
d90412cb8f HaikuDepot: add repository column in package list view
* As requested in #12538

* Hidden by default to not clutter up the view with information that
  isn't important in the default setup. Like the state of other
  columns, the visibility is remembered.
2017-11-24 18:22:14 +01:00
Kacper Kasper
546065592d PowerStatus: make tab size dependent on font size. 2017-11-24 15:28:25 +01:00
Adrien Destugues
8ddec194c6 intel_extreme: backlight control on pre-PCH devices
Thanks to oco for letting me test this on his old laptop.
2017-11-23 23:59:39 +01:00
Augustin Cavalier
e042a53b7d configure: Avoid bashism introduced in previous hrev. 2017-11-23 20:21:38 +01:00
hyche
484f64f315 TextInput: Align the text when typing or removing.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Closes #13796.
2017-11-23 20:12:24 +01:00
hyche
1641a0516d Fix aligning when text growing more than the right bound..
because the bound scrolls to the current cursor to view the text (ScrollToOffset).
Follow up #12608

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
2017-11-23 20:10:11 +01:00
Augustin Cavalier
14d690378f app_server/DelayedMessage: Delete scheduled on error.
CID 1422581.
2017-11-23 19:40:04 +01:00
Augustin Cavalier
a20f4f8a85 MidiSettings: Don't leak settings in failure case.
CID 1422944.
2017-11-23 19:40:03 +01:00
Augustin Cavalier
d692d22c9d debugger/elf: Don't leak memory in failure case.
CID 1423098.
2017-11-23 19:40:02 +01:00