Turns out dd on MacOS does not like '1M' as size descriptor, but
wants '1m'. To prevent us breaking Linux builds (as it does not
accept 1m), just use the actual number of bytes explicitely instead.
* It simplifies putting regular layout-aware views or layout items into
a BScrollView.
* Not quite complete yet: Height-for-width support is missing, but that
also requires fixing BScrollView in this respect. Scroll bar auto-hide
support would be nice as well.
For some reason calling PopulateScreenSaver() list in AllAttached()
scrolls the selection off-by-one, so, call PopulateScreenSaverList()
in AttachedToWindow() and then call ScrollToSelection() again in
AllAttached() which seems to fix the problem.
...rather than font spacing which only scales linearly in the horizontal
direction. This sets the min window height nicely at 11pt font while
continuing to work at 12pt, 8pt, and 18pt.
..instead of calling _OpenSaver() directly.
At least one screensaver, Message, depended on the Bounds() of the
preview to be set when run, which wasn't established when you first
started the app causing the app to quit while trying to draw.
Also call PopulateSaverList() in AllAttached() so that ScrollToSelection()
works without having to be called again.
Also, fix pointer style in ScreenSaverWindow::MessageReceived()
Split out the list emptying into an EmptyScreenSaverList() method and use it in
various places where it should happen.
Call PopulateScreenSaverList() in ModulesView::AttachedToWindow() instead
of in the constructor because some of the methods depend on the view being
attached.
Don't try to select Blackness saver by name, instead if no other selection
is located select it as the default. Also, a tiny optimization, once we've found a
selection there's no reason to continue to keep looking for another one.
For some reason this file was encoded as a MacRoman or some sort
of high ASCII non utf-8 encoding that made my editor sad.
Also, update the copyright and style while I'm at it.
Fixing the autoconf test: attempt to create file in place of already
existing symlink. On error exit put_vnode was called explicitly before
returning error. The second, implicit call to put_vnode was issued on
destroying the VNodePutter instance that references the same vnode. At
this time the vnode has references count equal to 0 so corresponding
panic was executed. Great thanks to Ingo for pointing it out!
Fixes#9140.
... for package changes performed manually by the user (i.e.
adding/removing files in a packages directory). Currently only done for
the system root. Alternative roots should still work as before, so this
shouldn't affect haikuporter (not tested yet).
Needs some more work (e.g. the GUI part).
* Rename TransactionHandler -> InstallationInterface and
DaemonClientTransactionHandler -> ClientInstallationInterface.
* Add InstallationInterface::InitInstalledRepository(). Use in
_AddInstalledRepository() to get the repository packages instead of
using the package roster. The ClientInstallationInterface
implementation does it that way.
* parameters web compilation improved - harvest the feature units
assigned to non-streaming output terminals in the same way as ones
assigned to streaming output terminals.
Fixes#9950
* The bullet paragraphs were already working, now we have
bold and italic plus the heading style. The links in the
original changelog are not yet supported.
* Also include the terminating \0 in the loop
over the characters, in order to consume the
last paragraph correctly when it's not finished
by a line break.
* Follows MediaWiki or TracWiki style.
* Supports only level 2 headings, bold, italic and top-level
bullet paragraphs.
* Line break handling would need to be changed.
* Outputs a TextDocument.
* Bail early if the TextSpan length is 0.
* When the span starts with a space, the work
around for the app_server bug, which I should fix,
needs to offset by the other delta.
* Added convenience methods to derive the bold and italic
font face from the currently set font. May not yield
results depending on wether a specific face is available
for the font.
Ü * Changed test accordinly.
Also:
* Fixed off-by-one bug when extracting wrapped TextSpans until the
line's end text offset.
* ParagraphStyle::FirstLineInset() is now additional to LineInset().
* Potential Bullet::Spacing() is added to all lines as inset.
* Use TextDocumentLayout in TextDocumentView.
* Extend test case demonstrating paragraphs with
different alignments, something unsupported in
BTextView.
* TextDocumentView still only shows the first paragraph
of a TextDocument, but this time using the new
ParagraphLayout. A class for layouting all paragraphs
of a TextDocument is up next.
* A simple test app shows that TextSpans with different
CharacterStyles already work in one Paragraph. The test
is nowhere extensive and does not test for bugs in
corner cases.
* The biggest problem was that adding the wrapped
sub-TextSpan to the LineInfos was missing. Other
problems included missing handling of ascent and
descent per CharacterStyle.
I noticed while testing the nightly on vmware which, unlike vbox, includes
a video driver with DPMS support that this checkbox wasn't working.
This should fix it.
... just in case a long translation needs an extra line to fit
(in English 3 is enough) and because we've got enough room next
to the screen image to fit another line of text anyway.
* Since additional handlers put themself in the front the
handler list, asking the tablet handler last actually puts
its handler in the first position, as before my changes.
* The HID driver publishes devices for all handlers that claim
to know how to work with a device. I see how that is good for
a combo device like keyboard with built-in touch pad or a single
USB receiver for a keyboard and mouse. But I wonder about devices
that publish multiple alternative HID configurations. I think
my Wacom Tablet has a configuration for a regular mouse and the
configuration for the actual tablet. And the driver should publish
a device for one, but not the other. I also don't see in the code
how a specific configuration is made the active one before the
protocol is used.
Show the "Read-only" status for documents that are living on read-only
volumes and do not show unlock menu for such files.
* The enhancement pointed out by Sergei Reznikov (Diver). Thanks!
* The previous approach of combining tablet and mouse support
in MouseProtocolHandler was unintuitive and had the potential
problem that if a device has multiple HID descriptors, one
simulating a simple mouse, that one may be found first and
there is no mechanism of choosing the best handler for a device.
Now we can look for tablets before looking for mice.
* Implement pressure, eraser and tilt support. Untested. This
mostly comes from the patch in #7354, but eraser support should
work more like intended by the Be API.
* It appears that my Wacom Intuos 2 cannot be accessed via the
HID framework, except as regular mouse. So I couldn't actually
test these changes. I believe what worked before, i.e. QEMU
absolute mouse position support, should work as good as before.
Please shout if not!
* If more recent Wacom tablets /could/ work with these changes,
they will not, because the HID driver still explicitely ignores
Wacom devices and the dedicated Wacom driver will not pick up
newer devices, with its hard-coded and un-generic device support.
If we fail to lock the window in the kInitialTickRate time, quit the thread.
We were deadlocking causing #4260 because you could open several
threads by moving through the screen saver list quickly all trying to lock
the same window at the same time, classic deadlock.
During adding the second tab the view in the first one may change its
lines count in case the Terminal window was maximized. Send resize
notification to client rpogram on every reattaching view to window.
Fixes#9809
This allows the ScreenSaver window grow and shrink based on your
font size and translations.
Minimum is 446 px x 325 px so that there is enough space to accommodate
screen savers designed for BeOS.
Should fix#7369 and help #7332 a bit.
Margins go right to the edge now which prevents the tab view from looking
as liney.
Password window has also been converted to use the layout APIs, also,
the window now pops up in the center of the main ScreenSaver window.
The fade translations will have to be redone unfortunately, but it should be
easy as it is the concatenation of the previous strings.
* Completely unfininished and untested, won't even compile,
but is not included in the build. The idea being to wrap TextSpan
objects and split them onto Lines each containing their own
layouted TextSpan chunks. TextLayout will later be repurposed
to off-load the layout of individual text paragraphs to
ParagraphLayouts.
* In the methods that create a new style data object
by cloning the object and changing the respective
property, returning a Reference to a style data
object makes it easier on the calling side to deal
with the same object being returned or a new one.
* This is mostly still targeted at the use-case of parsing
some mark up text and building a static representation
of the styled document which can be layouted and rendered.
* Lots of TODOs and almost nothing is tested.
* adding zlib to the kernel unfortunately introduces a cyclic dependency
with respect to the zlib, haiku and haiku_devel packages (AFAICS)
* circumvent this by building kernel_zlib as a static library again,
this time with PIC, such that it can be used by kernel add-ons
I was looking at the Leaves screensaver for reference and I noticed
this peculiarity. It saves a pointer to each slider control
just so that it can later read their values, but, the values are
already provided in the message in the be:value property, so just
use that instead.
* We didn't do anything with cookies received from the server, they are
now automatically added to the cookie jar.
* Also make sure the UrlContext (which holds the cookie jar) is
forwarded from UrlRequest to UrlProtocol when it gets set.
this gets cookies working in Service Kit-based WebKit.
This is a fatal error that the user has no way to recover from
so using the info alert is not appropriate here.
Also rename the ret variable to result and omit extraneous braces.
* Move RepositoryBuilder class to libpackage and add B* prefix to name.
* Pull BPackageManager class out of PackageManager and move to
libpackage. The base class is customizable via three handler objects
responsible for transaction handling, request execution, respectively
user interaction.
* Reorganize _ApplyPackageChanges(): Now we first prepare the
transactions for all affected installation locations (downloading
files etc.) and then commit them.
Update path truncation if output box is resized.
Other changes:
* Set duration text box to a smaller explicit width
* Increase min sources width and replace magic constant
* Some style fixes, especially to comments
This patch fix one of the compatibility issues mentioned in #3255. It
allows applications to call bind() or connect() passing an sockaddr_un
structure with a pathname that is not null-terminated.
Some systems did not require pathname in sockaddr_un::sun_path to be
null-terminated, instead the end of the string is determined by the size
of the structure passed as an argument of bind() or connect().
The standard is a bit vague in this matter but suggest that the path
should be null-terminated and the functions bind() and connect() should
be given sizeof(sockaddr_un) as a structure size.
The property is archived and unarchived, but otherwise not yet stored.
If not set, FileName() returns CanonicalFileName(). Can be used for
packages like haiku.hpkg etc. that don't have a properly qualified file
name (yet).
... after having determined the packages to remove from the selected
installation location. This uninstalls packages from the more specific
locations when their dependencies have been removed.
We update/set it in _AddRepositories() instead of in AddRepository(). In
code needing it earlier _InstalledRepository() can be used.
This change allows calling to SetInstalled() on a repository that has
already been added to the solver.
* I have no idea why, but gcc2 considers BSolverRepository* and
PackageManager::InstalledRepository* as distinct pointer types, which
it doesn't like to compare without a cast. Circumvent by static
casting to BSolverRepository*.
* Both filesystems used to link to a static kernel-zlib, which
was being built with -fno-pic. This doesn't work on x86_64 as the
filesystem add-ons are meant to be relocatable, which requires their
code to be compiled as position independent.
Solve that by moving zlib into the kernel, so any add-on can just use
it from there (packagefs is mandatory, so we can't really do without
zlib anyway).
* The default module is replaced by the Virtio RNG module when found.
* This can have the undesired effect of rendering /dev/urandom slow.
* Tested with the following QEmu command line option:
-device virtio-rng-pci,rng=rng0 -object rng-random,filename=/dev/random,id=rng0
* moved random.h to private/drivers headers.
* the Virtio RNG PCI device has the class 0, so can't be found using usual
paths. Add 0 to _AlwaysRegisterDynamic() and "busses/virtio" in _GetNextDriverPath()
for non generic drivers to help finding virtio_pci.
* The RNG Virtio device is generic and needs "busses/random" to find virtio_rng.
* The needed LLVM libraries are now within
the Mesa optional build package.
* The swpipe renderer needs some work still
and will likey change, swrast is fully
functional.
... with respect to inter-installation-location dependencies. E.g.
uninstalling a package from common should only uninstall packages
depending on it, when system doesn't still provide those dependencies.
We don't consider uninstalling packages from more specific installation
locations when dependencies are uninstalled from a more general one yet.
Only flag ATM is B_VERIFY_ALLOW_UNINSTALL. It tells to solver to suggest
uninstalling packages when necessary instead of considering such a case
a problem.
If any of the packages to install has requires a base package, that is
installed in a more general installation location, we copy the package
to the target installation location. Ideally we'd hard-link, but BFS
doesn't support that. Symlinks would be a small nightmare to maintain.
We might want to choose the installation location intelligently
depending on the base package requirement -- e.g. install curl_devel in
system rather than common, since curl is installed in system -- so we
can avoid duplicating packages.
It provides the functionality to copy file system entries (also
recursively). The code originates from the copyattr sources. Some
copyattr specific functionality has been removed and the code has been
adjusted for library use (i.e. no exit()s or fprintf()s). An optional
controller object can be set to customize the behavior.
* The use of a static variable for storing the chunk size made it shared between all instances of BUrlProtoclHttp.
* Inline the function at the single place where it is used, and allocate the variable on the stack instead.
The whole receiving loop should be split into chunked and non-chunked variants to improve code readability.
* With a tooltip big enough trying to align below or above the mouse, the algorithm would loop endlessly trying to fit it on either side.
* After trying each side once, set alignment to middle to try to show as much as the tooltip as possible.
A way to trigger this is browsing WebKit github repository in WebPositive. Github will show the full commit message in a tooltip when you hover a file or directory, and some of
their messages are big enough to overflow my desktop.
* Mostly useful for virtualization at the moment. Works in QEmu.
* Can be enabled by safemode settings/menu.
* Please note that x2APIC normally requires use of VT-d interrupt remapping feature
on real hardware, which we don't support yet.
* Delete the right job (the removed dependant job).
* Sever the depencency link between the jobs or the next iteration of
the loop would process the same job again.
When you push an arrow key obscure the cursor so that it doesn't get in the
way of the menu items. BeOS R5 also did this.
When you select an item with Enter or Space, or cancel with Escape, set the
super menu to close in _QuitTracking() if you've specified onlyThis == false.
Also, show the cursor here in case you haven't moved the mouse since it was
obscured.
This fixes a problem where when you select an item in a menu via the keyboard
while your mouse is over the parent menu item or menu field it would pop the
menu back up again even though you've made your selection or cancelled.
Get rid of unused fRunner variable.
It is very basic now, it just works.
Also, renamed msg to message in MessageReceived() and
declared MakeFocus() above it (alphabetically).
... changes intended.
* 80 char limit fixes
* Indentation fixes
* Braces style fixes
* Use ternary operator where appropriate
* Rename menuItem to just item and declare it once outside
the loop
* Omit 3rd param of GetMouse() because it is default
* Rename variables eg state => focused and menu => submenu
* Indent comments below line they apply to
* Reword some comments
* Add some #pragmas
Always set releasedOnce to true here instead of setting it true in the
case that it is false. It's almost certainly faster and clearer to always do
the assignment than to incur the cost of the conditional and branch.
Looks like it works with default controls count 128 on default Haiku
builds but force media-addons-server to crash in case KDEBUG_LEVEL is set
to 0. Thanks to Vitaly Diger for pointing out and testing this issue.
* fix unitialized variables in __printf_fphex() in case of architectures
without support for long double - this triggered unreliable results
or crashes when using %La or %La on x86
* activate long double implementation in use for x86_64 for x86, too,
as they share the long double format
(cherry picked from commit d1716b277c)
* fix unitialized variables in __printf_fphex() in case of architectures
without support for long double - this triggered unreliable results
or crashes when using %La or %La on x86
* activate long double implementation in use for x86_64 for x86, too,
as they share the long double format
Almost complete. bepdf is still missing, since it doesn't build with gcc
4 and a few source packages are missing as well (binutils and gcc
because haikuporter doesn't build them correctly ATM, mesa due to an
oversight).
Fixes#6894
Private DrawLabel() method renamed to _DrawLabel() and rest of drawing
code moved to new private method _DrawMenuField(). These methods both
check to make sure that they are drawing in a valid rect that intersects
updateRect.
When label or menu is selected Draw a the label background in the selected
menu color matching the behavior of BeOS R5.
_DrawLabel() calls be_control_look->DrawLabel()
Update copyright year in MenuField.h
the child menu bar or the child menu bar's menu is enabled/disabled.
This means that there is just one status we have to check, the menu
fields, and the child menus agree. This change takes practical form
in the Backgrounds preflet which disables the placement menu when
the image is set to "None", but, only the menu got disabled and not the
parent menu field so the label was erroneously still drawn as enabled.
A small revision on my last published commit, set and restore the
low color in addition to the high color when drawing the menu item
because DrawString() will produce nicer looking results if the low
color of the view matches the color it draws on due to anti-aliasing.
See #6610 comment:15 for details.
Firstly, don't save and restore the super menu's low color
since it never changes, instead, save and restore the super
menu's high color which does get altered here.
Secondly, set the high color to
B_MENU_SELECTED_ITEM_TEXT_COLOR only if the menu item
is activated and enabled, otherwise set the high color by tinting the
background color which might be
B_MENU_SELECTED_BACKGROUND_COLOR or
B_MENU_BACKGROUND_COLOR depending on whether
the item is selected or not.
Thirdly, complete the TODO by using a lighten tint if the menu
has a dark background and vice-versa.
This third item is actually a good candidate for a BControlLook
function because the disabled tint should depend on whether the
background color of the thing you're disabling is light or dark.
... to layout the menu field label and menu in the grid. This makes
the label and grid layout correctly, the AddMenuField() method should
be deprecated or fixed as it lays out the menu field differently.
Also replace numeric spacing units with font relative spacing units.
With #6610 fixed, it is now possible to open disabled menus in a
menubar, so the workaround introduced in hrev33840 is no longer
needed.
Signed-off-by: John Scipione <jscipione@gmail.com>
* fallback to mechanism 1 for out of range bus numbers
* Support for the fallback is mandatory according to the PCIe specification.
* Should help with #9929 and #9930
Use CreateLabelLayoutItem() instead of faking the label with a BStringView.
This is important because it means the label is part of the menu field control
rather than being it's own separate view.
Also convert from using deprecated BGroupLayoutBuilder and
BGridLayoutBuilder classes and use the BLayoutBuilder template instead.
Use font-relative spacing values instead of constants.
Make key label take up 2 columns
Make protected methods private, don't want to subclass
ModifierKeysWindow
* Added ParagraphStyleData. Contains actual style data. Incomplete.
Supposed to be immutable,.
* Added ParagraphStyle, references a ParagraphStyleData.
Multiple ParagraphStyle object can refer to the same ParagrapgStyleData,
when a style aspect is changed for ParagraphStyle, it makes its own
copy of the previous ParagraphStyleData with the changed property.
* Added Paragraph class, currently knows only its ParagraphStyle.
... just because the source path ./kernel/drivers/audio/usb obviously
references audio hardware so "_audio" suffix is excessive.
No functional changes.
* USB audio device entry number made 1-based instead of 0. According to
Haiku MultiAudio specs audio device entries should be 1-based but
0-based;
* cleanup and refactoring. No functional changes;
* recording stream activated;
* fix input channels description report and codestyle issues.
* some functionality like recording temporarily disabled;
* set the endpoint speed call added;
* packet size hard-coded for 48kHz case;
* draft support for formats and sampling rate handling;
* implement sampling rate change on the fly;
* optimized using of starting frame;
* fix user_memory in buffer exchaqnge call;
* fix exchanged buffer recoriding processing;
* debug tweaks, fix current buffer switching;
* cleanup, cleanup, cleanup...
In case control transfer is finished with STALL answer from device only
the setup TD is retired into the Done Queue but other TDs (data and
status) are left in the ED queue. HC set the endpoint halted - so we
process such endpoint regardless of it's non-empty queue.
PS: cleanup some trailing spaces.
Finishing and refactoring the draft, initially implemented during April-May 2012
NOTE: startingFrameNumber returned to device contains the number of the
next free frame right after the last packed of submitted data. For more
details please Look into corresponding [haiku-development] discussion
started at 03 Jul 2013.
Partially fixes#1045.
Implements enhancement described in #9819
This feature works pretty much as it did on BeOS R5.
When you focus on the color control, the border is drawn blue and
the dot on the red ramp draws as an outline to show that it is
selected. You can push the up and down arrow keys to navigate to the
previous and next ramps respectively and can push right and left to
increment and decrement the color value of the selected ramp.
Clicking on the control no longer gives it focus.
In BeOS the left and right arrows would increment and decriment by 5,
on Haiku they increment and decrement by 1, but, by holding down the
key for a second or so the increment value increases to 5 allowing for
both course and fine adjustments.
On a technical note I split the int32 fFocusedComponent member variable
into 2 int16 member variables, fFocusedRamp and fClickedRamp. I did this
because I needed an entra variable, and can't change the size of the
class without using up another reserved member variable slot. int16
should be more than enough for these variables as they store an index to
the currently focused or clicked on ramp (0-3). Please someone chime in
if this is not okay for FBC in some condition I didn't think about.
* The char classification stuff and can_end_line() originate
from the BTextView implementation. Maybe Oliver Tappe is the
lonely author of that code, but I don't feel like tracking this
down at the moment and it should eventually be merged anyway,
if what I did here proves useful at all.
* Due to HasHeightForWidth TextViews, the MinSize() of
the layout has a different meaning. The reliable source
for the actual needed height of the layout seems to be the
Frame().bottom of the last BLayoutItem.
* For the comparison cast the character parameter to char as required
by the spec.
* Fix broken handling of strrchr(..., 0). It is supposed to return a
pointer to the end of the string. It did return a pointer to the
start.
Volume::_ChangePackageActivation(): Refactoring oversight:
fPackagesToBeDeactivated was still used instead of the
packagesToDeactivate parameter, so the packages wouldn't be removed from
the hash tables when invoked from the CommitTransactionHandler. Fixes
#9921.
Parent window must be active for control to draw as focused. This
affects all controls that draw their focus ring using ControlLook
including but not limited to BButton, BCheckBox, and BRadioButton.
I won't pretend to know what is "right" but the behavior now matches
BeOS R5.
... to reduce the package list. No filters can be defined
via the UI, but a DepotFilter is already implemented, although
its performance will probably need to improve.
* Defined PackageCategory class (icon, label and internal name)
* Each PackageInfo has a list of PackageCategories
* Model defines global PackageCategories, referenced by PackageInfos
* Added Model.cpp to files needing translation
* Added categories to dummy package infos
The problem indicated by #8388 hid another issue with respect to
show/hiding the navigator on the fly, namely that it didn't correctly
respect the type of Tracker window, which would cause the navigator to
show up in cases where it shouldn't, such as query windows.
* Swap rating and version in title view so it matches the
order in the Ratings tab (rating XX for version YY).
* Give a chance to decorate the version in translations.
* Drop the parenthesis around version in Ratings tab.
BNavigator shouldn't update its location until AllAttached(). Otherwise,
it might immediately trigger a redraw, and in such a case, the
navigation buttons wouldn't yet have had a chance to load their icon
resources, leading to a debug assert in BPictureButton due to said
images not being present, but required.