Commit Graph

259 Commits (bcd08397f18dea0df6d67ca3a75d62c702bec7bb)

Author SHA1 Message Date
Gonçalo Silva 567e74c99e Fix active search going out of bounds 2019-04-17 02:15:59 +01:00
Gonçalo Silva d98208e0e9 Cleanup left-over from removing ODT as a default export option 2019-04-17 02:10:19 +01:00
Gonçalo Silva 8159ad9e25 Tweak breakpoints to ensure it conforms to the documented spec 2019-04-17 02:07:15 +01:00
Gonçalo Silva c9958b6c12 Prevent exception when exiting while waiting for scroll 2019-04-16 01:15:11 +01:00
Gonçalo Silva 41377c24bb Further remove unecessary prefixes 2019-04-15 03:01:59 +01:00
Gonçalo Silva 9f41bfac8d Add input format setting
Supports Pandoc's Markdown, Commonmark, GitHub Flavored Markdown,
MultiMarkdown and Plain Markdown.

Fixes #17
Fixes #122
2019-04-15 02:50:28 +01:00
Gonçalo Silva ce4a13278d Organize export formats by type, more copy fixes 2019-04-15 02:50:28 +01:00
Gonçalo Silva fbef0143e2 Use correct mime type for markdown, split markdown/plain text 2019-04-15 02:50:14 +01:00
Gonçalo Silva 4b32617ca7 Update pandoc help link 2019-04-15 02:50:14 +01:00
Gonçalo Silva 50729b0d34 Introduce pypandoc for pandoc calls 2019-04-15 02:50:05 +01:00
Manuel Genovés 844890507c add path to headerbar subtitle 2019-04-14 20:15:46 +02:00
Gonçalo Silva 1842a849ad Fix warning due to missing argument 2019-04-13 03:45:27 +01:00
Gonçalo Silva af9d1adf7c Uniformize header/status bar reveal duration 2019-04-13 03:45:09 +01:00
Gonçalo Silva 58e2d2e0be Remove uneeded threads_init calls 2019-04-13 02:47:26 +01:00
Gonçalo Silva ef54c752ba Fix replace row missing after hiding
The replace row would be consistently missing after losing focus
(ie. hiding), and would be inconsistent with the button state.
2019-04-13 02:45:21 +01:00
Gonçalo Silva 5be563ccc7 Fix search and replace
TextIter must not be reused in between buffer changes. This resulted in
unpredictable behavior when using search and replace. For instance,
in the following string:

This _is_ a _test_ of _search_ and _replace_

Searching for "_" and replacing with "**" sequentially would:

[0] This **is_ a _test_
[1] This ****is a _test_
[2] This ****is a **test_
[2] This ****is a ****test

Replace had similar results.
2019-04-13 02:45:15 +01:00
Gonçalo Silva ac7e18b0b3 Improve auto-scrolling after pasting very large documents
There were 2 problems.

When pasting very large documents, the height calculations will be
temporarily incorrect while the content is rendered over several frames.
This is addressed by waiting for the UI to be idle to scroll.

Additionally, the scroll time (typically 200ms) needs an adjustment as
well. Starting at 200ms, it now scales linearly with distance, amounting
to roughly 4 seconds with Pandoc's user guide.
2019-04-13 02:00:13 +01:00
Gonçalo Silva bf657891c6 Add link markup
Fixes #90
2019-04-13 02:00:13 +01:00
Gonçalo Silva 86c924972b Add support for code blocks, improve overall markup handling
This commit adds markup support for code blocks, styling them in a
conservative manner, similar to blockquotes, solely indenting them.

Partially fixes #90

Code-wise, this means marking up around the cursor becomes exponentially
more complex, as a change in one line can affect multiple lines. Solving
it is non-trivial, so the whole document is always marked up.

Marking up the whole document is irrelevant for small to medium
documents, but can incur in a performance penalty for
very large documents (empirical testing: 1M characters takes ~0.15s).
To alleviate this, GLib.idle_add is used to ensure that markup is only
parsed and applied when the UI is idle. Again, small to medium-sized
documents see no difference. For very large documents, markup will be
slightly delayed to allow for a fluid typing experience.

It's important to note that the previous flows frequently used full
document markup: paste, focus mode, and search and replace.
In some extreme cases, doubly parsing (eg. paste + text change).
For very large documents, doing any of these actions would freeze the UI
unconditionally, so in more ways than one this is an upgrade.

Lastly, it's a little overzealous: with over 1M characters the UI itself
struggles more than parsing.

In sum:
* Markup is always applied to the whole document
* The code is simpler
* There is never double work
* Markup is applied when the UI is idle, for a more smooth experience
* Multi-line formatting is now possible to do reliably
2019-04-13 02:00:13 +01:00
Gonçalo Silva c5d2322b96 Fix cursor position changes not scrolling in focus mode 2019-04-13 02:00:13 +01:00
Gonçalo Silva 372d2c8a65 Remove tick callback after scrolling is done
Adding a tick callback starts updating the frame clock:
d1cdb9b5cf/gtk/gtkwidget.c (L3629)

Gdk's documentation implies that this is taxing, as it continuously
requests a new frame (which makes sense, this API is for animations):
https://developer.gnome.org/gdk3/stable/GdkFrameClock.html#gdk-frame-clock-begin-updating

Most likely fixes #75
2019-04-13 02:00:13 +01:00
Gonçalo Silva 6688eb259e Refactor textview / textbuffer into separate modules
Changes include:
* Much better encapsulation of textview/textbuffer, with each isolated
responsibility living independently on its own class/file.
* Less code overall
* Various small fixes around the components involved, such as:
  * Indentation of nested lists (fixes #120)
  * Unwanted scroll on select all (ctrl+a)
* Removal of unused code around the components involved
* Fixes for scrollbar location, now at the edge of the window
2019-04-13 02:00:13 +01:00
Gonçalo Silva 16a8ac78db Fix changing theme while app is running not applying until restart
Overall refactoring of how the theme is set, bounding it to the window
instead of the application, which generally makes it easier to listen
for the "style-updated" signal.
2019-04-11 05:23:34 +01:00
Gonçalo Silva 99641125ba Uniformize main class <> file naming 2019-04-11 03:49:59 +01:00
Gonçalo Silva 30df10cab6 Allow following system theme *and* forcing light / dark theme 2019-04-11 03:42:15 +01:00
Gonçalo Silva 7a9b878d02 Copy improvements
Smaller improvements around capitalization, tense and style.
2019-04-11 03:42:15 +01:00
Manuel Genovés 23c1b2e42a Fix and improve shortcuts 2019-04-06 20:27:42 +02:00
Manuel Genovés 129041795a use pep8 naming style for modules and classes 2019-04-01 22:40:59 +02:00
Manuel Genovés d19068bc2c move all modules to /uberwriter 2019-04-01 18:00:17 +02:00
Gonçalo Silva 3f87bd1d22 Add Hemingway Mode
Closes #40
2019-03-27 02:29:29 +00:00
Manuel Genovés 6d7bfe82cb unclutter the terminal output 2019-03-26 22:02:05 +01:00
Gonçalo Silva bef52648c7 Remove hard-coded colors from MarkupBuffer
Instead, use colors set in the theme.
2019-03-26 15:09:21 +00:00
Gonçalo Silva 95e6d89514 Add support for HighContrast and HighContrastInverse themes 2019-03-26 15:09:21 +00:00
Gonçalo Silva 52f1c9f692 Add back support for Arc, Arc-Darker and Arc-Dark themes 2019-03-26 15:09:21 +00:00
Gonçalo Silva e7359c5776 Encapsulate theme handling
The Theme class encapsulates theme handling, by listing default themes
and providing means to access their gtk/web css.

Besides cleaning things up, it makes it easy to support custom themes
in the future. The user just needs to provide two CSS files, and we'll
be able to instantiate and use a Theme from that.
2019-03-26 15:09:21 +00:00
Gonçalo Silva ea566b8d73 Make preview responsive
Uses the same breakpoints as the text editor.
2019-03-26 15:07:11 +00:00
Gonçalo Silva 6a2de711cf Reload preview when theme changes 2019-03-24 05:25:51 +00:00
Gonçalo Silva 174e027076 Revert "add debug flag to webview"
This reverts commit 43c9584369.
2019-03-24 04:57:06 +00:00
Gonçalo Silva 4b146f69e6 Fix preview flash on toggle
While WebKit2 is loading, it renders a blank (white) page.
This causes it to flash briefly, while the content is not yet loaded.

Waiting for it to finish using the load-change event fixes the issue.

Fixes #112
2019-03-23 17:05:02 +00:00
Manuel Genovés 43c9584369 add debug flag to webview 2019-03-21 21:35:36 +01:00
somas95 8372eee85c
Merge branch 'master' into refactoring 2019-03-09 20:43:48 +01:00
Manuel Genovés fb47539dd8 initial theme stylesheets support 2019-03-09 19:53:28 +01:00
Manuel Genovés 6528702f55 update deprecated methods, linting 2019-01-27 20:22:24 +01:00
Manuel Genovés 7169bf9a03 update imports, basic linting 2019-01-27 20:20:56 +01:00
Manuel Genovés a1a50d4890 Remember autospellchek status 2019-01-27 16:42:36 +01:00
Manuel Genovés 66ccfb47c3 recents popover: open document on single click 2018-12-22 14:28:17 +01:00
Manuel Genovés 7066f446d2 Fix padding in "unsaved changes" modal 2018-12-14 20:47:15 +01:00
Manuel Genovés 56e718be15 allow disabling overlay within preferences window 2018-12-14 20:01:00 +01:00
Manuel Genovés 3fd91923ee Join open and recents buttons 2018-12-14 19:34:06 +01:00
somas95 226b4e81dc
Merge pull request #96 from UberWriter/styles
update styles
2018-12-06 14:51:36 +01:00
Manuel Genovés 4bb6862f0e make headerbar autohidding toggeable 2018-12-06 14:29:10 +01:00
Manuel Genovés 47c169882e update styles 2018-12-06 14:22:07 +01:00
Manuel Genovés d664308efd trailing whitespace 2018-12-05 20:32:35 +01:00
Manuel Genovés 772b1ba6db Make the overlay toggable 2018-12-05 20:27:19 +01:00
Manuel Genovés 2e2dc33e7f fix recents menu (now we pass App to window and headerbar) 2018-11-24 00:51:18 +01:00
Manuel Genovés cbd59b5f0b Fix #81, dark mode not being toggle for csd when reopening Uberwriter 2018-11-23 21:58:29 +01:00
Manuel Genovés 8b3252d68e Fix #87, copy html to clipboard didn't work due to outdated pandoc args 2018-11-23 21:20:06 +01:00
Manuel Genovés fcab2687f1 recents menu refactoring 2018-11-03 13:35:47 +01:00
Manuel Genovés 44c648f94e refactoring:
externalize headerbar management,
cleanup,
fix #77
2018-10-14 17:46:30 +02:00
Manuel Genovés 10996e49e8 refactor of the headerbar class (dry) 2018-10-14 17:43:41 +02:00
somas95 2744c2a87e made a constructor for buttons 2018-08-02 21:13:57 +02:00
somas95 766b3a4b43 Move "finish initializing" code to __init__ 2018-07-29 20:48:45 +02:00
somas95 cf9d3d6fbc Basic linting (whitespace, docstrings, etc) 2018-07-29 13:44:07 +02:00
somas95 b39b89a261 Highlight lines on click rather than on edit on focus mode 2018-07-27 19:44:28 +02:00
somas95 61e6ea0ade Merge branch 'master' of https://github.com/wolfv/uberwriter into refactoring 2018-07-26 19:35:32 +02:00
somas95 2d2d7ba957 regex fixes 2018-07-26 19:32:52 +02:00
somas95 31b680542f pylint rc file 2018-07-26 18:39:25 +02:00
somas95 a48b12d962 basic formating 2018-07-26 18:38:57 +02:00
somas95 fd7fd701dd Basic cleaning, snake_casing and documenting 2018-07-25 21:57:17 +02:00
somas95 47a44b25fd refactoring 2018-07-18 16:24:56 +02:00
somas95 3c480e735d refactoring 2018-07-18 16:24:35 +02:00
somas95 1acd4f575d Refactoring
Simplified a bunch of if statments with list comprehension and a nice dict
2018-07-17 20:25:12 +02:00
somas95 f0008cc827 Clean up 2018-07-17 12:51:05 +02:00
somas95 06632694a7 Fix export related functions 2018-07-17 12:47:47 +02:00
somas95 f4667d8774 Decent export dialog :) 2018-07-17 12:46:43 +02:00
somas95 64fd2bf84c remove files 2018-07-17 12:44:18 +02:00
somas95 81a9b3fb71 Change some icons to labels 2018-07-01 03:14:29 +02:00
somas95 96731ef8f6 Redesign of the headerbar 2018-06-30 02:11:47 +02:00
somas95 ca1a9d6364 line breaking and other style refactoring 2018-06-28 19:47:14 +02:00
somas95 e70f6fb82e whitsepace, small refactoring 2018-06-28 19:38:43 +02:00
somas95 3ae75a4b73 left menu to GMenuModel 2018-06-28 02:03:48 +02:00
somas95 9d435b5714 prevent fs hb hidding when opening menus 2018-06-28 00:52:51 +02:00
somas95 1e9994a37f add unfullscreen button to the fullscreen hn 2018-06-27 01:55:52 +02:00
somas95 b05628ab36 add a new headerbar and an eventboxx wich polls for motion 2018-06-27 01:46:01 +02:00
somas95 afe4461504 Create new hb object 2018-06-24 17:54:31 +02:00
somas95 80635ac4c0 Migrate right menu to GMenuModel 2018-06-23 21:34:53 +02:00
somas95 93282de5c6 Migrate to Actions (fullscreen & focusmode) 2018-06-19 21:43:49 +02:00
somas95 8282fbad62 refactor and enhancement of the dark mode 2018-06-19 20:36:16 +02:00
somas95 bad7870e1f Add donation link 2018-06-14 19:47:28 +02:00
somas95 1a56b355b1 fix bug that prevented the preview to load 2018-05-14 22:01:44 +02:00
somas95 3c185a13d4 Disable pop ups on right click 2018-05-06 20:04:58 +02:00
somas95 e0c4854613 Abstract the path base of open files 2018-05-06 20:00:14 +02:00
somas95 fffb783294 aclaratory comment 2018-05-04 12:39:57 +02:00
somas95 1329ac5804 Added menu entry for the translation portal 2018-04-20 22:18:03 +02:00
somas95 c26902436c fix of web popover (inline preview) 2018-04-18 19:29:13 +02:00
somas95 deac8197c0 Needed refactor 2018-04-18 15:00:06 +02:00
somas95 53c7fffd46 Fixed Inline Preview 2018-04-18 14:17:42 +02:00
somas95 114b6f07f6 update some export arguments 2018-04-16 19:12:20 +02:00
somas95 696f135e33 disable "export to pdf" if pdftex is not avaliable 2018-04-16 19:01:35 +02:00
somas95 8abc388486 set dark theme in preview if the main window has it 2018-04-15 19:24:55 +02:00
somas95 6950ae1266 delete legacy code 2018-04-15 18:43:35 +02:00
somas95 834234652e quick fix 2018-04-15 14:06:12 +02:00
somas95 a0c6f7920e import GLib 2018-04-15 14:06:12 +02:00
somas95 f9a4858c5a corrected variable type 2018-04-15 14:06:12 +02:00
somas95 bc6e9c070a load dark mode at startup if saved in settings 2018-04-15 14:06:12 +02:00
somas95 1993634b5c load prefered ui at startup 2018-04-15 14:06:12 +02:00
somas95 86ec754e4b support gsettings 2018-04-13 20:17:32 +02:00
somas95 9166b89fea quick refactor 2018-04-13 20:17:16 +02:00
somas95 9c96420f33 Disabled right click events in TextView 2018-04-13 00:24:53 +02:00
somas95 ac1774c848 convert relative paths to absolute on preview 2018-04-12 21:55:45 +02:00
somas95 3d5df42720 updated deprecated pandoc methods in the preview 2018-04-12 02:23:07 +02:00
somas95 c1302715aa refactoring localization 2018-04-11 19:03:23 +02:00
somas95 3121475bbf localization 2018-04-11 18:44:13 +02:00
somas95 6b8e8660e0 localization 2018-04-11 18:31:36 +02:00
somas95 0880f63a57 localization issues 2018-04-11 17:30:54 +02:00
somas95 2e52a07dbb Added translations
Signed-off-by: somas95 <manuel.genoves@gmail.com>
2018-04-10 22:13:30 +02:00
somas95 146e226236 Fixed FocusMode 2018-04-06 21:43:17 +02:00
somas95 72488ab18e Import fixes
Signed-off-by: somas95 <manuel.genoves@gmail.com>
2018-04-05 12:52:24 +02:00
somas95 a55a0ee2ba Allowing margins without triggering the "ever growing window bug"
Signed-off-by: somas95 <manuel.genoves@gmail.com>
2018-04-04 22:04:29 +02:00
somas95 72c568f031 Fixed some regex issues (single bold, italyc... characters)
Solves https://github.com/wolfv/uberwriter/issues/41

Signed-off-by: somas95 <manuel.genoves@gmail.com>
2018-03-28 02:52:14 +02:00
somas95 0511402708 Parsing of command line options
Signed-off-by: somas95 <manuel.genoves@gmail.com>
2018-03-27 20:49:13 +02:00
somas95 a6b3181fa8 Updated the policy decision making on WebViews to current standart
and more link types

Signed-off-by: somas95 <manuel.genoves@gmail.com>
2018-03-25 01:36:37 +01:00
somas95 c0ad7ee835 Require Gtk and WebKit versions on import
Signed-off-by: somas95 <manuel.genoves@gmail.com>
2018-03-25 00:31:55 +01:00
somas95 54c944c171 Fix uberwriter not opening files from terminal or from file managers
Signed-off-by: somas95 <manuel.genoves@gmail.com>
2018-03-25 00:16:50 +01:00
somas95 bc8142bb8d Added support for GFM' tasklist checkboxes
Signed-off-by: somas95 <manuel.genoves@gmail.com>
2018-03-24 17:40:31 +01:00
somas95 64cc82a0bc added ShortcutWindow
Signed-off-by: somas95 <manuel.genoves@gmail.com>
2018-03-22 14:10:14 +01:00
somas95 2839470671 small fixes
Signed-off-by: somas95 <manuel.genoves@gmail.com>
2018-03-22 13:13:25 +01:00
somas95 bae0c846e9 Window refactoring, added appmenu and abou dialog
Signed-off-by: somas95 <manuel.genoves@gmail.com>
2018-03-22 01:21:58 +01:00
somas95 2723459cc2 Refactoring Window
Signed-off-by: somas95 <manuel.genoves@gmail.com>
2018-03-21 01:43:01 +01:00
somas95 7ed0ba1097 Window refactoring
Signed-off-by: somas95 <manuel.genoves@gmail.com>
2018-03-21 00:20:49 +01:00
somas95 12c43d414b UI Tweaks (consistency of toggle buttons)
Signed-off-by: somas95 <manuel.genoves@gmail.com>
2018-03-07 18:08:33 +01:00
somas95 8499a98fc4 Disabling webkit local file sandboxing
Signed-off-by: somas95 <manuel.genoves@gmail.com>
2018-03-04 20:36:07 +01:00
somas95 4b1cddea0b Fix the growing window bug 2018-02-24 01:30:37 +01:00
somas95 b6367d7021 Workaround for Bibtex hardcoded paths 2018-02-15 13:45:32 +01:00
somas95 c38b0a6f4c Revert "Changing classs type to make uberwriter.ui compatible with glade"
This reverts commit b9c9cf6ed7.
2017-12-28 13:24:57 +01:00
somas95 b9c9cf6ed7 Changing classs type to make uberwriter.ui compatible with glade 2017-12-27 14:25:57 +01:00
somas95 ecadcb5493 Redesigned searchbar 2017-12-22 16:01:37 +01:00
somas95 0ca6263763 Fixed HeaderBar opacity issues 2017-12-11 16:45:54 +01:00
somas95 0f1cd5a12c Partially olving black headerbar issue 2017-12-09 14:51:51 +01:00
somas95 1030af3237 Make preview work again 2017-12-07 14:17:41 +01:00
Wolf Vollprecht dad4da1678 make usable on recent fedora/gnome/gtk 2017-12-07 07:56:39 +01:00
Wolf Vollprecht f02b5af858 fixed some bugs in gtk 3.18 and added some experimental stuff that DOES NOT WORK YET! 2016-02-05 23:52:43 +01:00
Wolf Vollprecht 86cd732902 modified style handling for GTK 3.16 2015-05-19 22:32:55 +02:00
Wolf Vollprecht a16f5d95d2 added uberquation plugin 2015-02-21 21:33:50 +01:00
Wolf Vollprecht 995507b914 no more menubar showing up, no more revealing not working after window rearrangement 2015-02-12 19:09:46 +01:00
Wolf Vollprecht 4547c77500 fixed a small bug where cursor iter is not transmitted to check_scroll 2014-10-05 09:51:10 +02:00
Wolf Vollprecht 19f936dcbc added long overdue readme.md 2014-10-05 00:46:48 +02:00
Wolf Vollprecht 0c9e6263b9 added click support to autocorrections 2014-10-05 00:18:17 +02:00
Wolf Vollprecht ee9635bfd9 added levenshtein to debian/control and better handling of nonexistent arg files 2014-10-02 19:24:30 +02:00
Wolf Vollprecht 9807741b13 added some of said experimental features 2014-10-02 19:04:22 +02:00