Andrew Weller
16aba5100d
TextEditor: Implement File/New Action
...
The user is asked if they want to save a dirty file before they create
a new one.
2019-09-06 18:38:26 +02:00
Andreas Kling
73fdbba59c
AK: Rename <AK/AKString.h> to <AK/String.h>
...
This was a workaround to be able to build on case-insensitive file
systems where it might get confused about <string.h> vs <String.h>.
Let's just not support building that way, so String.h can have an
objectively nicer name. :^)
2019-09-06 15:36:54 +02:00
Sergey Bugaev
6d3f52c4a4
Terminal: Add some basic emoji support
...
This is not as perfect as it is elsewhere in the system, as we cannot
really change how terminal "thinks about" characters and bytes. What
we can do though, and what this commit does, is to *render* emojis, but
make it seem as if they take up all the space, and all the columns their
bytes would take if they were all regular characters.
2019-09-05 16:37:39 +02:00
Sergey Bugaev
22e6978c71
WindowServer+LibGUI+FontEditor: Encode special characters as UTF-8
2019-09-05 16:37:39 +02:00
rhin123
9f8a2af921
Terminal: Added GCommonActions
2019-09-05 09:40:54 +02:00
rhin123
1f666abcd2
SystemMonitor: Added GCommonActions
2019-09-05 09:40:54 +02:00
rhin123
2d8318a474
QuickShow: Added GCommonActions
2019-09-05 09:40:54 +02:00
rhin123
962b65b42f
Piano: Added GCommonActions
2019-09-05 09:40:54 +02:00
rhin123
a538968cc2
PaintBrush: Added GCommonActions
2019-09-05 09:40:54 +02:00
rhin123
7df4cfe606
IRCCient: Added GCommonActions
2019-09-05 09:40:54 +02:00
rhin123
86c68210f0
FileManager: Added GCommonActions
2019-09-05 09:40:54 +02:00
rhin123
f468634494
TextEditorWidget: Added GCommonActions
2019-09-05 09:40:54 +02:00
Andreas Kling
5cfd67ecbb
FileManager: Open ".wav" files in SoundPlayer when activated
...
Now you can double-click on WAV files in the FileManager. Neato! :^)
2019-09-04 20:20:36 +02:00
Andreas Kling
1188a036e9
SoundPlayer: Start working on a GUI sound player application
...
This can play anything that AWavLoader can load (so obviously only WAV
files at the moment.)
It works by having a timer that wakes up every 100ms and tries to send
a sample buffer to the AudioServer. If our server-side queue is full
then we wait until the next timer iteration and try again.
We display the most recently enqueued sample buffer in a nice little
widget that just plots the samples in green-on-black. :^)
2019-09-04 20:18:41 +02:00
Andreas Kling
2441c1fde2
IRCClient: Use GAboutDialog :^)
2019-09-04 19:11:37 +02:00
Andreas Kling
75eb84c7e4
IRCClient: Size columns to-fit in the window and member views
2019-09-04 19:07:59 +02:00
Andreas Kling
e12bbc097f
IRCClient: Add 16x16 icon
2019-09-04 18:56:39 +02:00
Andreas Kling
52f62c2d7e
IRCClient: Tweak UI to look less padding-bloated
2019-09-04 18:54:43 +02:00
Andreas Kling
2216c7ecc6
IRCClient: Make the auto-join on connect feature actually do something
2019-09-04 17:37:11 +02:00
Andreas Kling
9cb4e5ac81
IRCClient: Don't auto-open new queries for NOTICE or CTCP messages
...
This seems to match what other IRC clients do, and it means we don't
get three separate "server" windows when connecting to Freenode. :^)
2019-09-03 21:47:43 +02:00
Andreas Kling
5c7ef5977d
IRCClient: Handle incoming CTCP requests VERSION and PING
...
CTCP requests are client-to-client messages that are sent as either
PRIVMSG (for requests) or NOTICE (for responses) and wrapped in ASCII
character 0x01 on both sides.
This patch implements responding to the very common VERSION and PING
requests. We always get a VERSION request from freenode when connecting
there, for instance. :^)
2019-09-03 21:18:28 +02:00
Andreas Kling
841f1276e6
TextEditor: Use GAboutDialog :^)
2019-09-02 19:48:47 +02:00
Andreas Kling
aea6a28e9c
Terminal: Use GAboutDialog :^)
2019-09-02 19:46:35 +02:00
Conrad Pankoff
1f56612c8a
Terminal: Add -e (execute) command line option
...
This allows a user to specify a command to run after opening the terminal
program. By default it will still spawn an interactive shell.
2019-09-02 08:33:36 +02:00
Andreas Kling
cfe09784a4
TextEditor: Clear the dirty flag in newly opened documents
2019-08-29 18:54:06 +02:00
Andreas Kling
a71e411b27
Terminal: Use a gear icon for the "Settings" menu
2019-08-29 18:19:40 +02:00
Andreas Kling
72950f93a3
TextEditor: Move the Font menu inside the View menu
...
This will be our first user of the nested menus feature. :^)
2019-08-29 06:36:35 +02:00
Andreas Kling
b1763238d7
TextEditor: Ask the user before closing a dirty (modified) document
...
It's a little unfortunate that we have two separate code paths that can
lead to asking the user about this. Longer-term we should find a way to
unify these things.
Fixes #491 .
2019-08-27 20:39:01 +02:00
Andreas Kling
ecbedda34c
TextEditor: Add a "document dirty" flag and show it in the window title
...
This lets you know if the document has been modified since last save.
2019-08-27 20:18:19 +02:00
Andreas Kling
07933d0b46
TextEditor: Let's enable line wrapping by default
2019-08-27 17:05:01 +02:00
Andreas Kling
b6de723eb3
TextEditor: Move line wrapping setting to a new "View" menu
2019-08-27 17:01:52 +02:00
Andreas Kling
b0b94560c3
FileManager: Add "go home" action to the "Go" menu
2019-08-26 21:20:39 +02:00
Andreas Kling
08d7c86e90
FileManager: Move "File" menu entries to the app menu
2019-08-26 19:18:54 +02:00
Andreas Kling
cef2c04952
TextEditor: Move all "File" menu entries into the app menu instead
...
It felt weird to have both the app menu *and* a "File" menu.
2019-08-26 17:59:05 +02:00
Sergey Bugaev
d91efd4cd0
Piano: Port threading to LibThread
2019-08-26 11:31:14 +02:00
Sergey Bugaev
e1a6f8a27d
LibThread: Introduce a new threading library
...
This library is meant to provide C++-style wrappers over lower
level APIs such as syscalls and pthread_* functions, as well as
utilities for easily running pieces of logic on different
threads.
2019-08-26 11:31:14 +02:00
Andreas Kling
d5f3487203
TextEditor: Select everything in the find textbox when pressing Ctrl+F
...
This allows you to press Ctrl+F and immediately start typing a new
search string, instead of having to remove the old one first. :^)
2019-08-25 21:46:39 +02:00
Andreas Kling
e8e8741c88
LibGUI+TextEditor: Make GButton activate its action if present
...
Previously even if you assigned a GAction to a GButton, you still had
to activate() the action manually by hooking the GButton::on_click
callback.
2019-08-25 21:46:39 +02:00
Andreas Kling
ded005500d
TextEditor: Add actions for find next/previous (Ctrl+G, Ctrl+Shift+G)
2019-08-25 21:46:39 +02:00
Andreas Kling
d88c40568f
TextEditor: Add search-related actions to the text editor context menu
...
Using the new GTextEditor::add_custom_context_menu_action() mechanism.
Fixes #478 .
2019-08-25 21:46:28 +02:00
rhin123
0df7213670
Terminal: Fixed bounding issue when clearing the selection on type
...
We were checking the columns of the whole selection instead of the
the specfic line were modifying. Because of this, the selection
remained if the selection's column on another line was less than
the cursor.
2019-08-25 19:53:57 +02:00
Andreas Kling
97a695403b
TextEditor: Add a menu action for turning line-wrapping on/off
2019-08-25 12:23:34 +02:00
rhin123
280a9a2f34
Terminal: Clear selection if we type behind/inside it
2019-08-25 10:44:31 +02:00
Andrew Weller
e75e33eb46
TextEditor: Replaced 'Find' button with 'Prev' and 'Next' buttons.
2019-08-24 21:57:42 +02:00
Andreas Kling
b1bc7a1b5d
TextEditor: Don't try to load contents of files we didn't even open
...
If the CFile::open() call fails, we shouldn't continue with trying to
load the file.
2019-08-23 19:11:56 +02:00
Andreas Kling
d56786ccd8
TextEditor: Avoid an unnecessary whole-file copy when opening something
...
This was left over from before we had the StringView(const ByteBuffer&)
constructor to help us.
2019-08-23 19:05:34 +02:00
Andreas Kling
1ca6adee90
Terminal: Allow selecting words by double-clicking them
...
Bonus feature: also allow selecting the whitespace in-between words by
double-clicking that. :^)
2019-08-22 19:59:27 +02:00
Andreas Kling
fae379b1f0
TextEditor: Search box should find on return, close itself on escape
...
This patch adds basic keyboard access to the search box. We also yield
focus back gracefully to the text document when the search box is no
longer wanted.
Focus should probably move automatically when an ancestor of the
currently focused widget if made invisible..
2019-08-22 11:11:48 +02:00
Andreas Kling
96c5c9ce12
TextEditor: Hide the search bar until the user asks for it
...
You can get to it via Edit/Find, or by pressing Ctrl+F.
2019-08-22 11:02:03 +02:00
Andreas Kling
bb74832dd6
TextEditor: Add a search bar that allows you to search for text
...
If the text is not found, we show a friendly message box that says we
didn't find the text! :^)
2019-08-21 21:30:20 +02:00