Commit graph

1110 commits

Author SHA1 Message Date
TheJackiMonster 173531ef2c
Combined #777 with changes from #827
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
2021-04-10 14:46:03 +02:00
Tobias Frisch 653357d2e9
Merge pull request #777 from siliconserf/Issue-324-NoID-Fix
Update abstractModel.py
2021-04-10 14:39:50 +02:00
Tobias Frisch 4e5809eeaa
Merge pull request #858 from belug23/fix_tests
Fixing the tests for travis-CI
2021-04-10 12:15:46 +02:00
Belug d22eb3bcb9 Fixing the tests for travis-CI 2021-04-09 19:19:03 -04:00
Alexandre f5fa60c50c
Fix #855 - Avoid a crash when there's no model (#856)
* Fix #855 - Avoid a crash when there's no model

* Moved the update id to the AbstactItem class
2021-04-09 16:03:59 +02:00
Alexandre 40e6bf0793
Fix #846 close Fullscreen when exiting main editor (#854)
* Fix #846 close Fullscreen when exiting main screen

* Removing debug code and initializing _fullscreen

* Removing the print
2021-04-09 16:03:31 +02:00
Tobias Frisch 0a615bdef2
Merge pull request #667 from worstje/arguments-and-logging
Logging and command-line arguments
2021-04-08 19:37:09 +02:00
Jan Wester 2d622792f3 Additional logging centered around sys module
Due to my struggles reproducing the official build, I felt it might be
useful to log extra information regarding the version of PyInstaller.

Unfortunately, such information is not available due to the way things
work. However, during that process I came across some other interesting
details that would likely be useful when logged.
2021-04-08 18:44:28 +02:00
Jan Wester 5117f7d476 Logging uncaught & unraisable exceptions
When implementing most of the logging code weeks ago, I got so caught up
in implementing and testing the Qt bits that I completely blanked on
actually implementing the Python-side of catching exceptions.

Unfortunately, it is not exactly trivial. PyQt complicates things, but
also Python itself isn't very helpful in older versions which will rob
the ability to properly log errors from threads. By the time I realized
we don't actually use the threading module and that catching the errors
on there does not actually help to fix the weirdness I was seeing, it
was already implemented. Thank you PyQt for surprising me yet again! :-)

I have tested this on Python 3.7 by raising random exceptions in various
parts of the codebase to make sure it behaves as expected. I haven't
quite gotten around to installing Python 3.8 yet but this gets it out
for testing. I'll hopefully not forget to do more tests in 3.8 when I do
the final squashing prior to a merge.
2021-04-08 18:44:28 +02:00
Jan Wester 0910246899 Write log file in UTF-8 to fix encoding errors
Some log messages use characters in the Unicode character set that
aren't typically represented in the older encodings. One such example
was  the messages that happen when renaming an item and saving the
project.

Positive note though: errors while logging might not end up in the log
file when the log file is the cause, but they still showed on the
terminal with excessive detail. Also, despite the exceptions and errors,
the project I was testing successfully completed its saving procedures
as a subsequent reload showed. I am personally quite happy with the
degree of thought and care put into the Python logging system. :-)
2021-04-08 18:44:28 +02:00
Jan Wester c797b5a18b Log the git revision if applicable
During development, the version number does not have much meaning... but
when faced with a reported issue, you would still like to know in more
detail what version of the Manuskript code was at work there.

Knowing the exact git revision will hopefully make it easier to
troubleshoot such issues in the future.

Note: this code takes special care to not rely on external modules
(we have enough dependencies) or even the git executable (invoking a
program can be relatively slow on some operating systems). It might not
handle all the edge cases, but I think it should cover our needs well
enough.
2021-04-08 18:44:28 +02:00
Jan Wester 239e66e7cb Comprehensively log all version information
Manuskript now logs the versions of modules and libraries powering them
for as far those are easily accessible. This includes all the optional
modules, too. None of this is visible on the terminal of course - unless
Manuskript is run with the --verbose flag. This clears up the last bit
of unnecessary console spam, leaving our users blissfully unaware.

Until we (and/or Qt) break something again, that is...
2021-04-08 18:44:28 +02:00
Jan Wester 37becdf80a Converted version_1.py to new logging style
It had its own mini-logging facility to suppress the most useless debug
messages. Since the new facility does not show debug messages to the
user, but still allows them to end up in the log file, I replaced it
entirely with DEBUG-level logging.

Some spots have received an extra ERROR-level logging on top for the
sake of alerting the user to issues we would like to hear about, and to
avoid breaking up the hierarchical indenting done by the DEBUG-level
messages.
2021-04-08 18:44:28 +02:00
Jan Wester ff2cbca028 Converted most print statements to use logging
Some snippets have yet to be converted due to the more complex nature
of those snippets, and to keep things neat a separate commit makes more
sense for those.
2021-04-08 18:44:28 +02:00
Tobias Frisch cdb5e3dca7
Merge pull request #827 from emgineering/develop
Change outlineItem ID assignment process for major optimization
2021-04-08 18:33:39 +02:00
Tobias Frisch 7c93567279
Merge branch 'develop' into develop 2021-04-08 18:33:27 +02:00
Jan Wester 8884bac0ed Added logging & proper argument parsing.
Sometimes you want to do just one thing, and in the process of
implementing that one thing, you implement several others. This is one
of those types of commits.

Implementing the argparse library is for the sake of controlling the
logging behaviour as well as other future I have yet to implement.

It has all the standard goodies you'd expect, and I have also ported
over the existing commandline arguments. (They may need a bit of polish
still, but there is no regression compared to before, only improvement.)

The logger is because it really needed to happen for numerous reasons.

It still logs to the terminal, but by default it only does so for
messages classified WARNING and above. These are the things we actively
want users to see. But if this is not good enough, adding the --verbose
flag will increasingly show more (-v shows INFO level and -vv also shows
the DEBUG messages) so that us coders don't have to miss anything in the
most convenient location.

It also logs to a file with the very original filename manuskript.log. I
may have to add commandline and/or settings arguments to improve that at
some point in the future, but there distractions are endless.

The log file contains timestamps and module information for easy
interpretation that are not present on the terminal, and it contains all
messages classified DEBUG and up. Ideally users will just be able to
attach it to an issue(*) to deliver us all the information we need to
help them with their inquiry.

Last but not least, the other reason I needed logging implemented is
that Qt has its own logging framework, and I needed to figure out how to
siphon out the data and make it shut up. But there was no point in doing
that as long as our own logging facilities were lacking...

(*) I have yet to convert all existing print statements over to the new
system, but that is probably going to be the next commit. This one has
enough change in it already.
2021-04-08 18:29:15 +02:00
Jan Wester b41fb00b0d Several tiny things squashed into one
All Models should have only one object managing them, and it is not the
class responsible for doing the welcome-related tasks.

Small .gitignore update
2021-04-08 18:28:53 +02:00
emgineering bee24d45b0 Change ID assignment method for Outline 2021-04-08 09:57:36 -06:00
Tobias Frisch 2545f9c7a3
Merge pull request #793 from FrancoisDuchene/notEnoughArgsFix
Fix for TypeErrors when using certain app styles
2021-04-08 14:46:59 +02:00
Tobias Frisch 48fa9e4427
Merge pull request #851 from belug23/fix_fullscreen_display_monitor
Fix #456 - Force the distraction free window on the display of the main window
2021-04-08 14:11:15 +02:00
Belug 696678e25d Fix #456 - Force the distraction free window to be display on the same screen as the main window 2021-04-07 20:43:37 -04:00
TheJackiMonster 83fae3f286
Fixed LanguageTool spellchecker working with newer versions
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
2021-04-04 22:30:33 +02:00
Tobias Frisch 8faca87cef
Merge pull request #850 from rbb8403/bug-786
Fixed project not opening with missing background
2021-04-04 20:38:54 +02:00
Robert Barlow a266b1bfff
Fixed project not opening with missing background
This is the quick way to patch this. I'd recommend changing the findFirstFile function in functions/__init__.py for a more permanent solution, but this should suffice for now.
2021-04-04 13:48:54 -04:00
Tobias Frisch 4eadf5310c
Merge pull request #717 from moisesjbc/feature/global-search
Add global search
2021-04-02 17:23:13 +02:00
Moisés J 1e52af54e2 Add global search 2021-04-02 14:15:17 +01:00
Tobias Frisch e52818043d
Merge pull request #835 from lingsamuel/sigint-handler
setup signal handler to avoid accident data loss
2021-02-23 15:13:05 +01:00
Ling Samuel 41ebf87471
setup signal handler to avoid accident data loss
Signed-off-by: Ling Samuel <lingsamuelgrace@gmail.com>
2021-02-23 16:53:49 +08:00
Tobias Frisch 4e6fa117c9
Merge pull request #834 from BentleyJOakes/fix_crash
Properly disconnect add person connection.
2021-02-22 21:32:11 +01:00
bentleyjoakes 7e9fbf27fb Properly disconnect add person connection. 2021-02-22 21:31:15 +01:00
TheJackiMonster 3effe5c7fa
Added more consistency to the context menu 2021-02-22 03:18:45 +01:00
Tobias Frisch 06aab9ce62
Merge pull request #690 from nagolinc/addWorldPlotCharacterButtons
added 3 buttons to the textEditView that allow quickly adding new items
2021-02-22 03:03:22 +01:00
nagolinc 22fdab3f46 added 3 buttons to the textEditView that allow quickly adding new items
add character takes parameter name
2021-02-21 20:06:17 -05:00
TheJackiMonster 0cb65c452e
Fixed cursor selection without suggestions 2021-02-22 01:26:07 +01:00
TheJackiMonster ad21d5faa5
Fixed finding suggestions using enchant and word selection without external dictionary 2021-02-22 01:13:19 +01:00
TheJackiMonster cc124c0b13
Older updates for some languages 2021-02-22 01:09:34 +01:00
TheJackiMonster d27910449d
Fixed issue #817 with the settings style picking 2021-02-21 23:59:23 +01:00
Tobias Frisch de02b1898b
Merge pull request #762 from gedakc/fix-python38-SyntaxWarning-is-not-with-a-literal
Fix Python 3.8 SyntaxWarning: "is not" with a literal
2021-02-21 23:46:22 +01:00
TheJackiMonster 12be4c3a3d
Fixed all Python syntax warnings 2021-02-21 23:45:34 +01:00
Tobias Frisch 6731051e92
Merge pull request #775 from BentleyJOakes/clone_importance
Clones importance setting when adding new characters.
2021-02-21 21:42:58 +01:00
bentleyjoakes 06e35cd969 Clones importance setting.
When creating a new character, sets an appropriate importance level.
* If a character is selected, the new character has the same importance level.
* If a top-level importance level is selected, the new character has that level
* Otherwise, the importance level is zero
2021-02-21 21:09:20 +01:00
TheJackiMonster 517559e7fa
Updated german translation for new features 2021-02-21 19:25:51 +01:00
Tobias Frisch 13d1f1bddd
Merge pull request #735 from johnbintz/select-newly-added-world-item
Select newly added world items, opening branches as necessary
2021-02-21 18:14:41 +01:00
TheJackiMonster 5ec4ab6fbe
Merge branch 'develop' of github.com:olivierkes/manuskript into develop 2021-02-19 18:02:50 +01:00
TheJackiMonster 303c48152e
Added qt creator project file for development 2021-02-19 18:02:36 +01:00
Tobias Frisch e4ccd92b6b
Merge pull request #789 from DarkRedman/patch-1
Update manuskript_fr.ts
2021-02-19 17:01:40 +01:00
TheJackiMonster cbb3f90d3d
Added qt-creator config to gitignore 2021-02-19 16:32:02 +01:00
Tobias Frisch e18944ee4d
Merge pull request #748 from TheJackiMonster/optional-pov
Enabling/Disabling POV for a specific character
2021-02-19 16:02:56 +01:00
Tobias Frisch e8c61e74ba
Merge branch 'develop' into optional-pov 2021-02-19 16:02:45 +01:00