Commit graph

8909 commits

Author SHA1 Message Date
Andreas Kling
9ab9f97464 Browser: Remove no-op from the BooksmarksBarWidget
Widget::child_widgets() is a *copy* of the list of child widgets. :^)
2020-04-23 14:10:32 +02:00
Andreas Kling
7da7bbe6f9 LibGUI: Decrease the default ToolBar height a little bit 2020-04-23 14:09:05 +02:00
Andreas Kling
56c73f03ce LibGUI: Get rid of the awkward horizontal line in StatusBar
Just fill StatusBar with button color instead of trying to share paint
code with ToolBar.
2020-04-23 13:53:17 +02:00
Hüseyin ASLITÜRK
74cc0560e8 LibGUI: MessageBox min width control for show messages
If message is too short calculate dialog width via buttons count. And icon is present lets align text to left.
2020-04-23 11:49:02 +02:00
Hüseyin ASLITÜRK
30e95d017e Demos: Add ColorInput, TabWidget and MessageBox demos in WidgetGallery 2020-04-23 11:49:02 +02:00
Jonathan Archer
0efb5b3a11 Desktop: Context menu option to open FileManager 2020-04-23 11:22:32 +02:00
Jonathan Archer
3bbd7d9425 Desktop: Show DisplayProperties in context menu 2020-04-23 11:22:32 +02:00
Jonathan Archer
5457020d4e Desktop: File creation from the context menu
Kinda hackish, but it does work.
2020-04-23 11:22:32 +02:00
Jonathan Archer
d02c02cebe Desktop: Add context menu for directory view
Only has the option to create a folder, but hey ;^)
2020-04-23 11:22:32 +02:00
Kesse Jones
6d308113b8 LibJS: Fix Array.prototype.indexOf fromIndex negative
If negative fromIndex considers displacement from the end of the array
without decreasing 1 of de size.
2020-04-23 11:06:10 +02:00
Brendan Coles
edd8abc4cf LibCore: read_bool_entry parse "true" / "false" strings in config files
`read_bool_entry()` can now interpret both integers (1 or 0) and
Boolean strings ("true" or "false") in configuration files.

All values other than "1" or "true" are considered false.
2020-04-23 11:04:25 +02:00
Linus Groh
7540203ae8 LibJS: Add isFinite() 2020-04-23 11:03:42 +02:00
Linus Groh
8ff2881b1a LibJS: Let isNaN() with no argument return true, add tests 2020-04-23 11:03:42 +02:00
Linus Groh
602a36970f LibWeb: Add XMLHttpRequest.readyState and constants 2020-04-23 11:03:17 +02:00
Brendan Coles
3c9693c6c7 IRCClient: Connect to IRC server URL specified in command line argument
The IRCClient application can now connect to a specified IRC server using
a URL with `irc://` protocol as a command line argument.
2020-04-23 09:50:19 +02:00
Brendan Coles
c3b2bfabfe DesktopServices: Add irc URL protocol handler 2020-04-23 09:50:19 +02:00
Linus Groh
418092a71a LibJS: Implement Array length setter 2020-04-23 09:47:23 +02:00
Emanuele Torre
d5d3e0b4ed LibWeb: Use proper length values for CanvasRenderingContext2D functions 2020-04-23 09:43:51 +02:00
Emanuele Torre
a804615b9b Base: Close head tag in canvas-path.html and give the document a title 2020-04-23 09:42:43 +02:00
Brendan Coles
9ab4a8179a TextEditor: Add "Find Previous" 16x16 icon 2020-04-22 17:14:36 +02:00
Linus Groh
a1b820b11c LibJS: Improve UpdateExpression::execute()
- Let undefined variables throw a ReferenceError by using
  Identifier::execute() rather than doing variable lookup manually and
  ASSERT()ing
- Coerce value to number rather than ASSERT()ing
- Make code DRY
- Add tests
2020-04-22 13:09:59 +02:00
Kesse Jones
b2305cb67d LibJS: Add Array.prototype.lastIndexOf 2020-04-22 13:08:00 +02:00
Andreas Kling
09138d542d FileManager: Fix build 2020-04-22 12:38:33 +02:00
Andreas Kling
bed0e6d250 Kernel: Make Process and Thread non-copyable and non-movable 2020-04-22 12:36:35 +02:00
Andreas Kling
a59453d4b7 AK: Tweak exchange() implementation
Make it constexpr and do perfect forwarding.
2020-04-22 12:36:35 +02:00
AnotherTest
1a7af4d677 LibLine: Do not ignore ^C and do not finish() after interrupt 2020-04-22 12:12:41 +02:00
angel
0d47ad7efe FileManager: Exit the application cleanly when failing to open initial directory
Co-Authored-By: Andreas Kling <kling@serenityos.org>
2020-04-22 12:12:32 +02:00
angel
cc424b7b0f FileManager: Graceful handling of access errors
A neat error message is displayed when failing to open a directory!
2020-04-22 12:12:32 +02:00
angel
451b3fa73c LibGUI: Added error events to FileSystemModel
This will allow us to catch errors early on FileManager
2020-04-22 12:12:32 +02:00
Brendan Coles
802c06ab7b Base: Add missing Syntax color settings for Joi theme 2020-04-22 11:48:38 +02:00
Linus Groh
038051d205 LibJS: Parse while statements 2020-04-22 11:48:14 +02:00
Brendan Coles
7e01e38cf4 Base: Add Sunshine theme 2020-04-22 11:47:42 +02:00
Nick Tiberi
d12f27b58e LibWeb: support confirm() with no arguments 2020-04-22 11:37:33 +02:00
AnotherTest
730ca98698 LibLine: Avoid OOB access when one of the suggestions is the prefix 2020-04-22 11:35:53 +02:00
Andreas Kling
ef69f900c7 LibWeb: Invalidate the canvas element after put_image_data()
This makes sure we repaint it right away so we can see the changes.
2020-04-22 00:09:23 +02:00
Andreas Kling
5326eebb1b WindowServer+LibGUI: Notify DisplayLinks at 60 fps no matter what
The original implementation only sent out notifications when there was
something being drawn on screen. If nothing was going on, we'd get too
lazy and just not notify display links.

This obviously break requestAnimationFrame(), so now we just drive the
DisplayLinks at 60 fps no matter what. :^)
2020-04-22 00:07:48 +02:00
Andreas Kling
2d4c91df8e LibWeb: Add ImageData objects and implement 2D context putImageData()
An ImageData is a wrapper around a Bitmap wrapper around a
JS::Uint8ClampedArray.
2020-04-21 23:49:51 +02:00
Andreas Kling
54133c683d LibWeb: Hack requestAnimationFrame() to provide a (very fake) timestamp 2020-04-21 23:49:09 +02:00
Andreas Kling
627fd6374b LibJS: Add Uint8ClampedArray :^)
This is a special kind of byte array that clamps its values to 0...255
It will be used for HTML ImageData objects.

I made Object::put_by_index() and get_by_index() virtual for this.
We'll probably need to make non-numeric property name lookups virtual
as well, but this solves my current problem well enough.
2020-04-21 23:47:39 +02:00
Andreas Kling
0fa7cf70b5 WindowServer+SystemMenu: Check the current system theme on startup 2020-04-21 18:40:52 +02:00
Andreas Kling
b6d035aa05 SystemMenu: Make the system theme menu items checkable (and exclusive) 2020-04-21 17:50:20 +02:00
Andreas Kling
705cee528a LibGUI: Make it easier to create checkable GUI::Actions
This patch adds GUI::Action::create_checkable() helpers that work just
like the existing create() helpers, but the actions become checkable(!)

Clients are no longer required to manage the checked state of their
actions manually, but instead they will be checked/unchecked as needed
by GUI::Action itself before the activation hook is fired.
2020-04-21 17:21:28 +02:00
angel
1032ae0140 WindowServer: Allow the system menu to be open when a modal is shown 2020-04-21 16:54:34 +02:00
angel
b9be57a9cd WindowServer: Don't process menu bar events when modal is open
This prevents accesing the parent window menubar when a modal is
currently open, which was not a desired behavior.
2020-04-21 16:27:36 +02:00
angel
5250f4fb90 WindowServer: Don't ignore modal events when showing menus
PR #1495 fixes #1464 but only accounts for window menus. In File
Manager, for example, attempting to pop up the context menu on the file
name text box of the properties modal window, will result in the same
behavior.

Removing the code altogether solves the problem, altough I'm
not sure if it could have any bad implications.

I was thinking it might allow interaction with a parent window menu if
it remains open just before the popup window is shown, but I have not
seen a way to replicate this behavior.
2020-04-21 16:27:36 +02:00
Andreas Kling
52a250cb61 LibGUI: Make MenuBar a Core::Object
This makes it show up in Inspector with all the menus inside it. :^)
2020-04-21 16:19:18 +02:00
Andreas Kling
a19690170f LibCore: Make Core::File::open() return a Result<NNRP<File>, String>
It was impractical to return a RefPtr<File> since that left us no way
to extract the error string. This is usually needed for the UI, so the
old static open() got basically no use.
2020-04-21 16:19:18 +02:00
Andreas Kling
ba3b561a40 AK: Simplify Result class so we can start using it
There were some ideas about how to use this class but we never actually
started using it, so let's just simplify it and get it ready for use.

The basic idea is: a function returns a Result<ValueType, ErrorType>.
Callers check if the result object is_error(). If so, an ErrorType can
be fetched with the error() getter. Otherwise, a ValueType is fetched
with the value() getter. That's it. :^)
2020-04-21 16:19:18 +02:00
Andreas Kling
59cd181ed9 AK: Remove unused Error template 2020-04-21 16:19:18 +02:00
angel
ae20775fb7
WindowServer: Unset active input window on active window change (#1901)
This was not done previously and resulted in modal windows not being
able to accept input unless they were clicked one time if their parent
windows were the active input window.
2020-04-21 15:46:27 +02:00