summaryrefslogtreecommitdiff
path: root/src/ui
AgeCommit message (Collapse)Author
2021-10-17Media and FontPacks (work in progress)Jaakko Keränen
Saving this as the last point of progress. This direction is too complicated: Media needs to be a lot more sophisticated to allow dynamic and interactive media at the level of FontPacks. (A bit like Player handles audio playback.) This will be reverted. FontPack management will happen using an another method.
2021-10-15Text: Fixed a line wrapping issueJaakko Keränen
When the last safe break position was not in the current attributed run, the calculated wrap advance came out incorrect. This was possible when the first glyph in an attributed run didn't fit.
2021-10-15Preferences: Option to bold visited links, tooJaakko Keränen
Cleaned up serialization of the bool preferences a little.
2021-10-14Preferences: ANSI escape sequences in GemtextJaakko Keränen
It can be argued that using ANSI escapes to style text goes against the intended use of Gemtext. Therefore, all ANSI escapes are now disabled by default in Gemtext.
2021-10-14DocumentWidget: Fixed media type checkingJaakko Keränen
2021-10-13CleanupJaakko Keränen
2021-10-13Text attributes that change inside a runJaakko Keränen
These changes concern the situation when the attributes of text (i.e., font, color) are changed via escape sequences. The concept of "base attributes" was added so that the low-level text renderer knows which font/color to set when a "reset" escape sequence is encountered. This depends on what kind of text is being renderer, e.g., preformatted or regular paragraphs. The base attributes were added as variables in Text because it was getting unwieldy to pass all the information via the draw/measure/WrapText functions. GmDocument now has a GmTheme struct that collects the font and color information into a single place.
2021-10-13Added preference for font smoothingJaakko Keränen
2021-10-12Experimental Markdown renderingJaakko Keränen
Convert Markdown to Gemtext and use ANSI escape sequences to switch fonts (bold, italic, monospace). The conversion is still a bit buggy...
2021-10-11Preferences: Add bookmarks to bottom/topJaakko Keränen
IssueID #358
2021-10-11Merge branch 'dev' into work/v1.8Jaakko Keränen
# Conflicts: # CMakeLists.txt # res/lang/es.bin # res/lang/fr.bin # res/lang/gl.bin # res/lang/ie.bin # res/lang/ru.bin # res/lang/sk.bin # res/lang/sr.bin # res/lang/tok.bin # src/ui/documentwidget.c
2021-10-11DocumentWidget: Fixed text selection regressionsJaakko Keränen
The HarfBuzz and wrapped text changes introduced subtle differences in how text selection works. Fixed a bunch of issues regarding how the individual character selection mode works in edge cases. IssueID #357
2021-10-11Media refactoring; working on FontPack managementJaakko Keränen
Media still needs more work to get rid of redundancies and make lookups faster. FontPacks are manipulated as Media items (not unlike images) so they can be previewed on page, and installed via a click. FontPack management is not trivial as it includes such details as versioning and whether individual packs are enabled or disabled.
2021-10-10Feeds: Added option to ignore web linksJaakko Keränen
2021-10-09Preferences: Selecting fonts to useJaakko Keränen
Now all the available fonts are selectable in the dialog. Added preformatted and UI font settings and shuffled the order a bit to make more sense.
2021-10-09Widget: Keep frame inside the widget areaJaakko Keränen
TODO: Check if this is only applicable to HiDPI.
2021-10-09Color: Adjusted sidebar folder backgroundJaakko Keränen
The light theme folder backgrounds were a tad dark.
2021-10-08Font configuration; Prefs has a string value arrayJaakko Keränen
Added a second version of Iosevka with more line spacing, to be used as the default monospace document font.
2021-10-08Colored popup framesJaakko Keränen
2021-10-07DocumentWidget: Line width based on font glyph widthJaakko Keränen
The idea is that the amount of content should be the same per line regardless of the font.
2021-10-06Text: Fixed font lookup orderJaakko Keränen
Check auxiliary fonts first, and then all primary fonts that haven't been checked yet.
2021-10-06Fixed a couple of font issuesJaakko Keränen
Scaling of monospace and symbols; cache reset.
2021-10-06SidebarWidget: Crash in TOC tabJaakko Keränen
The heading items will be obsolete if clicking in the sidebar before a page load finishes. IssueID #350
2021-10-06Revised runtime font managementJaakko Keränen
The built-in fonts are loaded via FontPack, and the font table is now constructed dynamically based on available fonts. A full set of variants (style, size) are prepared for each font, but some of the data gets allocated lazily when needed. GmRun needed a larger allocation for fonts, so now all the fields are combined into a single bit field. TODO: Glyph scaling, vertical offsets, and symbol lookup are still not fully working.
2021-10-05SidebarWidget: Crash in TOC tabJaakko Keränen
The heading items will be obsolete if clicking in the sidebar before a page load finishes. IssueID #350
2021-10-05Started working on font packsJaakko Keränen
2021-10-01Fixed widget hiding in translation dialogJaakko Keränen
"From"/"To" fields were not being hidden when translation request was submitted.
2021-10-01Text: Fixed a symbol for sizeJaakko Keränen
2021-10-01Added a 90% sized UI font for URL bar indicatorsJaakko Keränen
The 80% size is used in the toolbar.
2021-10-01Added feeds update progress indicatorJaakko Keränen
Show some status info about the progress of feed refresh. The search query and feeds indicators now use the small UI font size.
2021-10-01CleanupJaakko Keränen
2021-10-01Feeds: Don't forget entries or their unread statusJaakko Keränen
Three important changes: 1) Visited URLs can be marked as "kept" so they will never be discarded due to old age. 2) Feed entries are not discarded from the database until they are removed from the source, and then become too old (six months). 3) Visited feed entry URLs are always flagged as kept, so the (un)read status will not be forgotten.
2021-10-01Text: Added small size to symbol fontsJaakko Keränen
2021-09-30SidebarWidget: Scroll view to newly added itemsJaakko Keränen
New bookmarks and folders shouldn't appear outside the visible part of the list.
2021-09-30ListWidget: Dragging before/after an itemJaakko Keränen
It's useful to make a distinction whether a drag ended before or after an item, even if it's still referring to the same boundary between items. This allows bookmarks to be reordered inside a folder so that an item is moved to the bottom of a folder, or out of the folder following it in order.
2021-09-28Window: Automatic software rendering fallbackJaakko Keränen
2021-09-28DocumentWidget: Showing error page on untrusted certsJaakko Keränen
2021-09-28ListWidget: Scrolling due to item drag should be linearJaakko Keränen
2021-09-27CommentJaakko Keränen
2021-09-27SidebarWidget: Editing folder namesJaakko Keränen
Use the regular bookmark editor but hide the Special Tags section, and disable all but the Title for now.
2021-09-27Minor UI tweaksJaakko Keränen
2021-09-27CleanupJaakko Keränen
2021-09-27macOS: Maximized window is not a special caseJaakko Keränen
2021-09-27Window: Fixed regressions in retaining window placementJaakko Keränen
Window placement was not restored correctly when the window was maximized. Maximizing a window (on Windows) causes a spurious move event to be received from SDL, and that would mess up the remembered position. Now window placemenet is saved after a run through the event loop, so the rest of the window messages have been handled.
2021-09-27Windows: Enable dark mode; use dark title bar for dark themesJaakko Keränen
This is quite a hack, but Win32 apps don't seem to have documented access to dark mode.
2021-09-26Popup menus are positioned on selected itemJaakko Keränen
2021-09-26Compute popup menu bounds in pointsJaakko Keränen
Display bounds and the window rectangle are handled in points, so determine if the menu fits inside its root in points, too.
2021-09-26macOS: Popup window fixes; simply window creationJaakko Keränen
2021-09-26Use popup windows only when inline menus don't fitJaakko Keränen
Performance of popup windows may not be great.
2021-09-26Window: Set window position during creation; popups use sw renderJaakko Keränen
The renderer is created separately so it's possible to set the window position at creation time. Popup window use basic software rendering for (hopefully) better performance.