Age | Commit message (Collapse) | Author |
|
To protect against mishaps during app exit teardown, make sure everyone
who needs to be is a co-owner of the IRCClient object.
Fixes #3451.
|
|
|
|
|
|
You can now express your feelings and actions with our IRC client by
using the /me command.
|
|
We now put entries for interactive terminal sessions in the utmp file.
They are removed when you exit the terminal.
|
|
This action should only be enabled when there's a pastable bitmap
on the system clipboard. :^)
|
|
|
|
|
|
To open up for putting not just text/plain content on the clipboard,
let's make the GUI::Clipboard API a bit more raw-data-friendly. :^)
|
|
Currently, every time the wallpaper picker changes, an additional
attempted file load happens on top of the file load to create the
bitmap. The only values that the wallpaper picker can take on are
filenames that can never be valid when loaded without the /res/wallpaper
prefix. To reduce the amount of log spam and speed up wallpaper picking,
this patch only attempts to load wallpapers with slash-prefixed names,
assumed to be the absolute path to that wallpaper. Additional wallpapers
outside of /res/wallpapers/ should still be accessible with this patch,
and the experience is improved for the more common case of selecting a
built-in wallpaper.
|
|
VB appears deprecated in favor of HackStudio, but until it's
officially gone-no app left behind!
|
|
The move constructor of a lambda just copies it anyway.
Even if the first move() left an 'empty' closure behind, then
'm_editor->on_cursor_change' would only be able to see an empty
closure, which is certainly not what was intended.
|
|
Especially when a constant is passed as a boolean that contradicts the default value.
|
|
Under the hood, a lambda is just a struct full of pointers/references/copies and whatever else
the compiler deems necessary. In the case of 'update_demo', the struct lives on the stack
frame of FontEditorWidget::FontEditorWidget(). Hence it is still alive when it's called
during the constructor.
However, when 'fixed_width_checkbox.on_checked' fires, that stack frame is no longer alive,
and thus the *reference* to the (struct of) the lambda is invalid\! This meant that
'update_demo' silently read invalid data, tried to call '.update()' on some innocent arbitrary
memory address, and it crashed somewhere unrelated.
Passing 'update_demo' by value (like with all the other event handlers) fixes this issue.
Note that this solution only works because 'update_demo' itself has no state; otherwise
the various copies of 'update_demo' might notice that they are, in fact, independent copies
of the original lambda. But that doesn't matter here.
|
|
Drawing out of bounds no longer affects any neighboring glyphs.
|
|
|
|
|
|
|
|
|
|
Without this model, comboboxes are abysmal to work with, so let's not
redefine it every time.
|
|
Until we have better control over cell content alignment, let's make
them all right-aligned by default since that makes numbers look nice,
and numbers are the bread & butter of spreadsheets. :^)
|
|
This allows you to enter many rows of cells like so:
1<return>2<return>3<return>...
Very cool! :^)
|
|
Customize the cell editing delegate to stop editing when one of the
various cursor movement keys is hit. This allows you to type into a
cell and then move to an adjacent cell by simply pressing an arrow.
This may not be the best factoring for this feature, but it's pretty
dang cool and we'll see how it evolves over time. :^)
|
|
Moving left/right with the tab key is a classic spreadsheet behavior.
|
|
This seems to be a common behavior in spreadsheet applications,
so let's replicate it here by hooking the activation signal.
|
|
|
|
|
|
This commit adds a generic interface for cell types and hooks it up.
There is no way to set these from the UI, and so they're not saved
anywhere yet.
Also implicitly converts numeric values (strictly integers) to numeric
javascript values, as numbery-looking + numbery-looking === string is
not very interesting. :^)
|
|
This commit just moves some code around:
- Give Cell its own file
- Pull all forward-declared classes/structs into Forward.h
- Clean up the order of member functions a bit
|
|
|
|
We can just use RefPtr for these and lighten the cognitive burden.
|
|
This is not a stand-alone application. :^)
|
|
|
|
|
|
Now that the table view has a cursor, we can distinguish it from the
selected cells. Draw the cells with a nice variant of the selection
color as background.
|
|
Renames widgets/ to hackstudio/, vbwidgets/ to visualbuilder/ and
paintbrush/ to pixelpaint/.
|
|
Drops the '16' suffix from filenames. Resizes inconsistent
audio-volume icons to intended size.
|
|
|
|
|
|
Just select many cells and use the cell editor! so easy!
|
|
Also adds a Spreadsheet.af.
|
|
|
|
|
|
This also refactors the js integration stuff to allow sheets to
reference each other safely.
|
|
|
|
Before, we had about these occurrence counts:
COPY: 13 without, 33 with
MOVE: 12 without, 28 with
Clearly, 'with' was the preferred way. However, this introduced double-semicolons
all over the place, and caused some warnings to trigger.
This patch *forces* the usage of a semi-colon when calling the macro,
by removing the semi-colon within the macro. (And thus also gets rid
of the double-semicolon.)
|
|
Add 2px of height to the rows. This makes editing a cell inline look
better since we no longer cut off the text while editing.
|
|
|
|
This was a leftover from when the first column contained row numbers.
|
|
|