This ensures the artwork folder is created if it doesn't exist,
fixing the remainder of #10928.
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
LocatableFile:
- If there is no parent path, don't insert a path separator between parent
and filename. This may be the case depending on how the source file was
specified during compilation.
FileManager:
- When constructing an EntryPath from a LocatableEntry, ensure that the
parent folder actually has a path string that isn't simply empty to ensure
consistency with the raw dir/file case. Otherwise, hash lookups that are
dependent on the parent dir being NULL if not specified will fail, causing
us to not locate the file successfully. This was preventing us from updating
source location information for make 4.2's main.c, as the latter was
specified in such a way that the above combination of conditions would
occur, and consequently when asking the FileManager to update the source
location with the actual file, the entry couldn't be found in the table,
and no information would be updated.
16x16 is same old default
32x32 is new and fun
Adjust start offset to depend on icon size
Remove the kColumnStart variable and instead use StartOffset()
method which calculates the column start offset based on the icon
size. When you switch between icon sizes in list mode recalculate
the first column width to make room for the icon or more text.
Add some padding to list height in large icon mode.
There was some mixup with the interrupt registers, still:
- The driver uses 16-bit read/write, but on SandyBridge the register is
32 bits
- There is a global interrupt enable bit, which must be set to unmask
everything else
- The bits for vblank interrupt are not the same on SNB and later PCH
based devices, and the code mixed the two.
Move the computation of the interrupt bits to an helper function, and
use it everywhere to make sure we always use the right bits.
hrev50506 extended the range of acceptable X and Y movement for PS/2
mouse. However, the value is sent on 1 byte (+ sign) so the check would
now always be valid.
Remove the check completely, we now rely only on bit 3 of the first byte
to be set (and not missing packets) to remain in sync with the mouse.
Thanks to Marcus Overhagen for reviewing the changes.
Modesetting
===========
My previous hack was setting the transcoder registers, instead of the
display ones. Do that the way it is designed in the driver instead:
- If there is a transcoder, set its registers, but do not set the
display timings. The display will remain set at its native (and only)
resolution, and panel fitting will adjust the output of the transcoder
to match.
- If there is no transcoder, set the display registers directly to the
native resolution, as it was done on previous generation devices.
- fPipeOffset hacks no longer needed
DPMS
====
It seems the panel control register is not readable on PCH? Anyway, the
code would loop forever waiting for the bit to become unset when turning
the display off. Waiting seems to not be needed, so just remove it as
well as the "unlock" bit, which does not work for me and results in a
black screen.
Remaining hacks
===============
I still need to force HEAD_MODE_A_ANALOG to get output on pipe B (LVDS
display) working. I suspect something is common to the two pipes or not
allocated to the right one.
This version will have less side effects on other generations and help
with getting things to work on SandyBridge and possibly later devices.
Please test and report.
- Missing "dontAsk" when renaming some files,
- Missing exceptions in the warning alert construction to automatically
allow modifying some files (anything inside the settings folder)
- Missing translations
Fixes#12925.
... sorry I overlooked this case in my last commit. Need to add apps using
the locale collator Compare() method instead of strcasecmp() as well.
Fixes#7712 better.
Fix using a global BCollator defined in BarApp.
Called static CompareByName() method in TTeamMenu instead of
duplicating code, made method public.
This comes from a patch by 0xffea for GSoC 2014.
A locale aware version of NaturalCompare in WindowMenuItem.cpp
is still needed.
Fixes#7712
Signed-off-by: John Scipione <jscipione@gmail.com>
According to korli "Valid values seem to be between 255 and -256" which
is verified by syslog running on virtual box with a PS/2 mouse on Haiku
hrev47470.
Fixes#7802
Signed-off-by: John Scipione <jscipione@gmail.com>
Programatically generating a string usually doesn't work well with
localization. Better unfold all the possiblities.
Moreover, the callers of the functions had a long if condition with
3 B_TRANSLATE calls embedded in, and there was an erroneous ; at the end
of those, so the supposedly protected statement was executed anyway.
Fixes#12747.
This file uses a mix of tab styles, which gcc6 will warn about because
it sees "misleading indentation". Fix the function where this happens.
Fixes#12759.
- This has been bothering me for quite a while. My screen is wide enough
to accomodate more, and even if they don't fit the BTabView, it's still
possible to navigate many more tabs with the keyboard shortcuts.
- We should still remember to fix BTabView to accomodate more tabs than
it can fit with some scrolling support or similar, however.
- Catching an exception in the normal flow is not a good thing, instead,
test before calling the function (I've been doing too much python
lately)
- Avoid using uninitialized nodeRef if there is no system root and also
no specified root in the message.
Thanks to Ingo or the code review.
We only compared the height, width, and depth of modes to decide if the
mode was already set. However, at boot, we may have these settings right
and other things not properly configured, preventing VESA to set a
working mode unless forced from the boot menu.
Fixes#12918
- Avoid use of fixed size buffer without checks, use BString.SetToFormat
instead.
- Use the same format for the initial setting of the values, so there
are less strings to translate, and locales using a different
representation for numbers get the right thing done as well.
- Fix initial label for the outline slider, which did not show the value
unlike others (problem spotted by Diver, thanks!)