UI improvements

This commit is contained in:
Olivier Keshavjee 2015-07-09 15:01:07 +02:00
parent 391768c644
commit 7aa08a9d2f
9 changed files with 478 additions and 506 deletions

View file

@ -33,6 +33,7 @@ SOURCES += ../src/ui/welcome.py
SOURCES += ../src/ui/cheatSheet.py SOURCES += ../src/ui/cheatSheet.py
SOURCES += ../src/ui/compileDialog.py SOURCES += ../src/ui/compileDialog.py
SOURCES += ../src/ui/revisions.py SOURCES += ../src/ui/revisions.py
SOURCES += ../src/ui/collapsibleDockWidgets.py
SOURCES += ../src/ui/editors/editorWidget.py SOURCES += ../src/ui/editors/editorWidget.py
SOURCES += ../src/ui/editors/fullScreenEditor.py SOURCES += ../src/ui/editors/fullScreenEditor.py

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS><TS version="2.0" language="fr" sourcelanguage="en">
<TS version="2.1" language="fr" sourcelanguage="en">
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
@ -49,7 +48,7 @@
<translation>Informations sur l&apos;auteur</translation> <translation>Informations sur l&apos;auteur</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1479"/> <location filename="../src/ui/mainWindow.ui" line="1464"/>
<source>Name</source> <source>Name</source>
<translation>Nom</translation> <translation>Nom</translation>
</message> </message>
@ -59,7 +58,7 @@
<translation>Email</translation> <translation>Email</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1308"/> <location filename="../src/ui/mainWindow.ui" line="1291"/>
<source>Summary</source> <source>Summary</source>
<translation>Résumé</translation> <translation>Résumé</translation>
</message> </message>
@ -79,7 +78,7 @@
<translation>Suivant</translation> <translation>Suivant</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1321"/> <location filename="../src/ui/mainWindow.ui" line="1304"/>
<source>One paragraph</source> <source>One paragraph</source>
<translation>Un paragraphe</translation> <translation>Un paragraphe</translation>
</message> </message>
@ -89,7 +88,7 @@
<translation>Résumé en un paragraphe</translation> <translation>Résumé en un paragraphe</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1326"/> <location filename="../src/ui/mainWindow.ui" line="1309"/>
<source>One page</source> <source>One page</source>
<translation>Une page</translation> <translation>Une page</translation>
</message> </message>
@ -99,7 +98,7 @@
<translation>Développez chaque phrase du paragraphe précédent en un paragraphe complet</translation> <translation>Développez chaque phrase du paragraphe précédent en un paragraphe complet</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1331"/> <location filename="../src/ui/mainWindow.ui" line="1314"/>
<source>Full</source> <source>Full</source>
<translation>Complet</translation> <translation>Complet</translation>
</message> </message>
@ -124,17 +123,17 @@
<translation>Noms</translation> <translation>Noms</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1434"/> <location filename="../src/ui/mainWindow.ui" line="1417"/>
<source>Filter</source> <source>Filter</source>
<translation>Filtre</translation> <translation>Filtre</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1093"/> <location filename="../src/ui/mainWindow.ui" line="1076"/>
<source>Basic infos</source> <source>Basic infos</source>
<translation>Informations générales</translation> <translation>Informations générales</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1112"/> <location filename="../src/ui/mainWindow.ui" line="1095"/>
<source>Importance</source> <source>Importance</source>
<translation>Importance</translation> <translation>Importance</translation>
</message> </message>
@ -179,227 +178,167 @@
<translation>Informations détaillées</translation> <translation>Informations détaillées</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1881"/> <location filename="../src/ui/mainWindow.ui" line="1780"/>
<source>Plots</source> <source>Plots</source>
<translation>Intrigues</translation> <translation>Intrigues</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1102"/> <location filename="../src/ui/mainWindow.ui" line="1085"/>
<source>Plot</source> <source>Plot</source>
<translation>Intrigue</translation> <translation>Intrigue</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1119"/> <location filename="../src/ui/mainWindow.ui" line="1102"/>
<source>Character(s)</source> <source>Character(s)</source>
<translation>Personnage(s)</translation> <translation>Personnage(s)</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1489"/> <location filename="../src/ui/mainWindow.ui" line="1474"/>
<source>Description</source> <source>Description</source>
<translation>Description</translation> <translation>Description</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1133"/> <location filename="../src/ui/mainWindow.ui" line="1116"/>
<source>Result</source> <source>Result</source>
<translation>Résultat</translation> <translation>Résultat</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1219"/> <location filename="../src/ui/mainWindow.ui" line="1202"/>
<source>Resolution steps</source> <source>Resolution steps</source>
<translation>Étapes de résolution</translation> <translation>Étapes de résolution</translation>
</message> </message>
<message> <message>
<location filename="../src/mainWindow.py" line="1127"/> <location filename="../src/mainWindow.py" line="1140"/>
<source>Outline</source> <source>Outline</source>
<translation>Plan</translation> <translation>Plan</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1673"/> <location filename="../src/ui/mainWindow.ui" line="1658"/>
<source>Redaction</source> <source>Redaction</source>
<translation>Rédaction</translation> <translation>Rédaction</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1992"/> <location filename="../src/ui/mainWindow.ui" line="1891"/>
<source>Tools</source> <source>Tools</source>
<translation>Outils</translation> <translation>Outils</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1789"/> <location filename="../src/ui/mainWindow.ui" line="1918"/>
<source>Cheat sheet</source> <source>Cheat sheet</source>
<translation>Aide-mémoire</translation> <translation>Aide-mémoire</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1845"/> <location filename="../src/ui/mainWindow.ui" line="1744"/>
<source>Debug</source> <source>Debug</source>
<translation>Debug</translation> <translation>Debug</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1858"/> <location filename="../src/ui/mainWindow.ui" line="1757"/>
<source>FlatData</source> <source>FlatData</source>
<translation>FlatData</translation> <translation>FlatData</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1868"/> <location filename="../src/ui/mainWindow.ui" line="1767"/>
<source>Persos</source> <source>Persos</source>
<translation>Persos</translation> <translation>Persos</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1959"/> <location filename="../src/ui/mainWindow.ui" line="1858"/>
<source>File</source> <source>File</source>
<translation>Fichier</translation> <translation>Fichier</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1986"/> <location filename="../src/ui/mainWindow.ui" line="1885"/>
<source>Help</source> <source>Help</source>
<translation>Aide</translation> <translation>Aide</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2023"/> <location filename="../src/ui/mainWindow.ui" line="1966"/>
<source>Open</source> <source>Open</source>
<translation>Ouvrir</translation> <translation>Ouvrir</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2026"/> <location filename="../src/ui/mainWindow.ui" line="1969"/>
<source>Ctrl+O</source> <source>Ctrl+O</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1963"/> <location filename="../src/ui/mainWindow.ui" line="1862"/>
<source>Recents</source> <source>Recents</source>
<translation>Récents</translation> <translation>Récents</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2035"/> <location filename="../src/ui/mainWindow.ui" line="1978"/>
<source>Save</source> <source>Save</source>
<translation>Enregistrer</translation> <translation>Enregistrer</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2038"/> <location filename="../src/ui/mainWindow.ui" line="1981"/>
<source>Ctrl+S</source> <source>Ctrl+S</source>
<translation>Ctrl+S</translation> <translation>Ctrl+S</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2047"/> <location filename="../src/ui/mainWindow.ui" line="1990"/>
<source>Save as...</source> <source>Save as...</source>
<translation>Enregistrer sous...</translation> <translation>Enregistrer sous...</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2050"/> <location filename="../src/ui/mainWindow.ui" line="1993"/>
<source>Ctrl+Shift+S</source> <source>Ctrl+Shift+S</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2059"/> <location filename="../src/ui/mainWindow.ui" line="2002"/>
<source>Quit</source> <source>Quit</source>
<translation>Quitter</translation> <translation>Quitter</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2062"/> <location filename="../src/ui/mainWindow.ui" line="2005"/>
<source>Ctrl+Q</source> <source>Ctrl+Q</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2077"/> <location filename="../src/ui/mainWindow.ui" line="2020"/>
<source>Show help texts</source> <source>Show help texts</source>
<translation>Montrer les bulles d&apos;aides</translation> <translation>Montrer les bulles d&apos;aides</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2080"/> <location filename="../src/ui/mainWindow.ui" line="2023"/>
<source>Ctrl+Shift+B</source> <source>Ctrl+Shift+B</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2095"/> <location filename="../src/ui/mainWindow.ui" line="2038"/>
<source>Spellcheck</source> <source>Spellcheck</source>
<translation>Correcteur orthographique</translation> <translation>Correcteur orthographique</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2162"/> <location filename="../src/ui/mainWindow.ui" line="2105"/>
<source>F8</source> <source>F8</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1978"/> <location filename="../src/ui/mainWindow.ui" line="1877"/>
<source>Mode</source> <source>Mode</source>
<translation>Mode</translation> <translation>Mode</translation>
</message> </message>
<message> <message>
<location filename="../src/mainWindow.py" line="951"/> <location filename="../src/ui/mainWindow.ui" line="1824"/>
<source> (~{} pages)</source>
<translation> (~{} pages)</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="986"/>
<source>Enter infos about your book, and yourself.</source>
<translation>Entrez toutes les informations relatives au livre, ainsi qu&apos;à vous.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="992"/>
<source>Take time to think about a one sentance (~50 words) summary of your book. Then expand it to a paragraph, then to a page, then to a full summary.</source>
<translation>Prenez le temps de réfléchir à un résumé de votre livre, en une phrase (~50 mots). Puis augmentez cette phrase en un paragraphe, puis en une page, puis en un résumé complet.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="995"/>
<source>Create your characters.</source>
<translation>Créez ici vos personnage.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="998"/>
<source>Develop plots.</source>
<translation>Développez vos intrigues.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1001"/>
<source>Create the outline of your masterpiece.</source>
<translation>Créez le plan de votre chef-d&apos;œuvre.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1004"/>
<source>Write.</source>
<translation>Écrivez.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1007"/>
<source>Debug infos. Sometimes useful.</source>
<translation>Des infos pour débugger des fois pendant qu&apos;on code c&apos;est utile.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1021"/>
<source>Dictionary</source>
<translation>Dictionnaire</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1034"/>
<source>Install PyEnchant to use spellcheck</source>
<translation>Installez PyEnchant pour profiter du correcteur orthographique</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="955"/>
<source>Words: {}{}</source>
<translation>Mots: {}{}</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1138"/>
<source>Text</source>
<translation>Texte</translation>
</message>
<message>
<location filename="../src/ui/mainWindow.ui" line="1925"/>
<source>Labels</source> <source>Labels</source>
<translation>Labels</translation> <translation>Labels</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1998"/> <location filename="../src/ui/mainWindow.ui" line="1897"/>
<source>Edit</source> <source>Edit</source>
<translation>Édition</translation> <translation>Édition</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2103"/> <location filename="../src/ui/mainWindow.ui" line="2046"/>
<source>Labels...</source> <source>Labels...</source>
<translation>Labels...</translation> <translation>Labels...</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2108"/> <location filename="../src/ui/mainWindow.ui" line="2051"/>
<source>Status...</source> <source>Status...</source>
<translation>Status...</translation> <translation>Status...</translation>
</message> </message>
@ -409,7 +348,7 @@
<translation>Situation:</translation> <translation>Situation:</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1238"/> <location filename="../src/ui/mainWindow.ui" line="1221"/>
<source>Summary:</source> <source>Summary:</source>
<translation>Résumé:</translation> <translation>Résumé:</translation>
</message> </message>
@ -419,190 +358,260 @@
<translation>Et si...?</translation> <translation>Et si...?</translation>
</message> </message>
<message> <message>
<location filename="../src/mainWindow.py" line="1126"/> <location filename="../src/mainWindow.py" line="1139"/>
<source>Index cards</source> <source>Index cards</source>
<translation>Cartes</translation> <translation>Cartes</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1758"/> <location filename="../src/ui/mainWindow.ui" line="1905"/>
<source>Metadata</source>
<translation>Métadonnées</translation>
</message>
<message>
<location filename="../src/ui/mainWindow.ui" line="2006"/>
<source>View</source> <source>View</source>
<translation>Vue</translation> <translation>Vue</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2098"/> <location filename="../src/ui/mainWindow.ui" line="2041"/>
<source>F9</source> <source>F9</source>
<translation>F9</translation> <translation>F9</translation>
</message> </message>
<message> <message>
<location filename="../src/mainWindow.py" line="1125"/> <location filename="../src/mainWindow.py" line="1138"/>
<source>Tree</source> <source>Tree</source>
<translation>Arbre</translation> <translation>Arbre</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2124"/> <location filename="../src/ui/mainWindow.ui" line="2067"/>
<source>Normal</source> <source>Normal</source>
<translation>Normal</translation> <translation>Normal</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2132"/> <location filename="../src/ui/mainWindow.ui" line="2075"/>
<source>Simple</source> <source>Simple</source>
<translation>Simple</translation> <translation>Simple</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2140"/> <location filename="../src/ui/mainWindow.ui" line="2083"/>
<source>Fractal</source> <source>Fractal</source>
<translation>Fractal</translation> <translation>Fractal</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2159"/> <location filename="../src/ui/mainWindow.ui" line="2102"/>
<source>Settings</source> <source>Settings</source>
<translation>Réglages</translation> <translation>Réglages</translation>
</message> </message>
<message> <message>
<location filename="../src/mainWindow.py" line="577"/> <location filename="../src/mainWindow.py" line="1134"/>
<source>Project {} saved.</source>
<translation>Le projet {} a é enregistré.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="654"/>
<source>Project {} loaded.</source>
<translation>Le projet {} a é chargé.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="989"/>
<source>The basic situation, in the form of a &apos;What if...?&apos; question. Ex: &apos;What if the most dangerous evil wizard could wasn&apos;t abled to kill a baby?&apos; (Harry Potter)</source>
<translation>La situation de base, sous la forme d&apos;une question: &quot;Et si...?&quot; Par exemple: &quot;Et si le plus dangereux magiciens mauvais n&apos;était pas capable de tuer un bébé?&quot; (Harry Potter)</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1117"/>
<source>Nothing</source>
<translation>Rien</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1118"/>
<source>POV</source>
<translation>POV</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1119"/>
<source>Label</source>
<translation>Label</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1120"/>
<source>Progress</source>
<translation>Progrès</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1121"/>
<source>Compile</source> <source>Compile</source>
<translation>Compilation</translation> <translation>Compilation</translation>
</message> </message>
<message> <message>
<location filename="../src/mainWindow.py" line="1144"/> <location filename="../src/ui/mainWindow.ui" line="2115"/>
<source>Icon color</source>
<translation>Couleur de l&apos;icone</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1145"/>
<source>Text color</source>
<translation>Couleur du texte</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1146"/>
<source>Background color</source>
<translation>Couleur de l&apos;arrière-plan</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1137"/>
<source>Icon</source>
<translation>Icone</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1139"/>
<source>Background</source>
<translation>Arrière-plan</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1140"/>
<source>Border</source>
<translation>Bordure</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1141"/>
<source>Corner</source>
<translation>Coin</translation>
</message>
<message>
<location filename="../src/ui/mainWindow.ui" line="2172"/>
<source>Close project</source> <source>Close project</source>
<translation>Fermer le projet</translation> <translation>Fermer le projet</translation>
</message> </message>
<message> <message>
<location filename="../src/mainWindow.py" line="388"/> <location filename="../src/ui/mainWindow.ui" line="1940"/>
<source>The file {} does not exist. Try again.</source>
<translation>Le fichier {} n&apos;existe pas. Essayez encore.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="657"/>
<source>Project {} loaded with some errors:</source>
<translation>Le projet {} a é chargé, avec des erreurs:</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="659"/>
<source> * {} wasn&apos;t found in project file.</source>
<translation>* {} n&apos;a pas é trouvé dans le fichier du projet.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="660"/>
<source>Project {} loaded with some errors.</source>
<translation>Le projet {} a é chargé avec des erreurs.</translation>
</message>
<message>
<location filename="../src/ui/mainWindow.ui" line="1817"/>
<source>Search</source> <source>Search</source>
<translation>Recherche</translation> <translation>Recherche</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="2180"/> <location filename="../src/ui/mainWindow.ui" line="2123"/>
<source>F6</source> <source>F6</source>
<translation>F6</translation> <translation>F6</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1901"/> <location filename="../src/ui/mainWindow.ui" line="1800"/>
<source>World</source> <source>World</source>
<translation>Monde</translation> <translation>Monde</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1447"/> <location filename="../src/ui/mainWindow.ui" line="1430"/>
<source>Populates with empty data</source> <source>Populates with empty data</source>
<translation>Remplir avec des catégories vides</translation> <translation>Remplir avec des catégories vides</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1470"/> <location filename="../src/ui/mainWindow.ui" line="1455"/>
<source>General</source> <source>General</source>
<translation>Général</translation> <translation>Général</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1500"/> <location filename="../src/ui/mainWindow.ui" line="1485"/>
<source>More</source> <source>More</source>
<translation>Plus</translation> <translation>Plus</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1509"/> <location filename="../src/ui/mainWindow.ui" line="1494"/>
<source>Source of passion</source> <source>Source of passion</source>
<translation>Source de passion</translation> <translation>Source de passion</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/mainWindow.ui" line="1519"/> <location filename="../src/ui/mainWindow.ui" line="1504"/>
<source>Source of conflict</source> <source>Source of conflict</source>
<translation>Source de conflit</translation> <translation>Source de conflit</translation>
</message> </message>
<message>
<location filename="../src/mainWindow.py" line="397"/>
<source>The file {} does not exist. Try again.</source>
<translation type="unfinished">Le fichier {} n&apos;existe pas. Essayez encore.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="586"/>
<source>Project {} saved.</source>
<translation type="unfinished">Le projet {} a é enregistré.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="663"/>
<source>Project {} loaded.</source>
<translation type="unfinished">Le projet {} a é chargé.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="666"/>
<source>Project {} loaded with some errors:</source>
<translation type="unfinished">Le projet {} a é chargé, avec des erreurs:</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="668"/>
<source> * {} wasn&apos;t found in project file.</source>
<translation type="unfinished">* {} n&apos;a pas é trouvé dans le fichier du projet.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="669"/>
<source>Project {} loaded with some errors.</source>
<translation type="unfinished">Le projet {} a é chargé avec des erreurs.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="957"/>
<source> (~{} pages)</source>
<translation type="unfinished"> (~{} pages)</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="961"/>
<source>Words: {}{}</source>
<translation type="unfinished">Mots: {}{}</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="967"/>
<source>Book summary</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="968"/>
<source>Project tree</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="969"/>
<source>Metadata</source>
<translation type="unfinished">Métadonnées</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="999"/>
<source>Enter infos about your book, and yourself.</source>
<translation type="unfinished">Entrez toutes les informations relatives au livre, ainsi qu&apos;à vous.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1002"/>
<source>The basic situation, in the form of a &apos;What if...?&apos; question. Ex: &apos;What if the most dangerous evil wizard could wasn&apos;t abled to kill a baby?&apos; (Harry Potter)</source>
<translation type="unfinished">La situation de base, sous la forme d&apos;une question: &quot;Et si...?&quot; Par exemple: &quot;Et si le plus dangereux magiciens mauvais n&apos;était pas capable de tuer un bébé?&quot; (Harry Potter)</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1005"/>
<source>Take time to think about a one sentance (~50 words) summary of your book. Then expand it to a paragraph, then to a page, then to a full summary.</source>
<translation type="unfinished">Prenez le temps de réfléchir à un résumé de votre livre, en une phrase (~50 mots). Puis augmentez cette phrase en un paragraphe, puis en une page, puis en un résumé complet.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1008"/>
<source>Create your characters.</source>
<translation type="unfinished">Créez ici vos personnage.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1011"/>
<source>Develop plots.</source>
<translation type="unfinished">Développez vos intrigues.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1014"/>
<source>Create the outline of your masterpiece.</source>
<translation type="unfinished">Créez le plan de votre chef-d&apos;œuvre.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1017"/>
<source>Write.</source>
<translation type="unfinished">Écrivez.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1020"/>
<source>Debug infos. Sometimes useful.</source>
<translation type="unfinished">Des infos pour débugger des fois pendant qu&apos;on code c&apos;est utile.</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1034"/>
<source>Dictionary</source>
<translation type="unfinished">Dictionnaire</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1047"/>
<source>Install PyEnchant to use spellcheck</source>
<translation type="unfinished">Installez PyEnchant pour profiter du correcteur orthographique</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1130"/>
<source>Nothing</source>
<translation type="unfinished">Rien</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1131"/>
<source>POV</source>
<translation type="unfinished">POV</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1132"/>
<source>Label</source>
<translation type="unfinished">Label</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1133"/>
<source>Progress</source>
<translation type="unfinished">Progrès</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1157"/>
<source>Icon color</source>
<translation type="unfinished">Couleur de l&apos;icone</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1158"/>
<source>Text color</source>
<translation type="unfinished">Couleur du texte</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1159"/>
<source>Background color</source>
<translation type="unfinished">Couleur de l&apos;arrière-plan</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1150"/>
<source>Icon</source>
<translation type="unfinished">Icone</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1151"/>
<source>Text</source>
<translation type="unfinished">Texte</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1152"/>
<source>Background</source>
<translation type="unfinished">Arrière-plan</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1153"/>
<source>Border</source>
<translation type="unfinished">Bordure</translation>
</message>
<message>
<location filename="../src/mainWindow.py" line="1154"/>
<source>Corner</source>
<translation type="unfinished">Coin</translation>
</message>
</context> </context>
<context> <context>
<name>Settings</name> <name>Settings</name>
@ -1274,6 +1283,14 @@ des lignes:</translation>
<translation>Différentes valeurs</translation> <translation>Différentes valeurs</translation>
</message> </message>
</context> </context>
<context>
<name>collapsibleDockWidgets</name>
<message>
<location filename="../src/ui/collapsibleDockWidgets.py" line="23"/>
<source>Dock Widgets Toolbar</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>compileDialog</name> <name>compileDialog</name>
<message> <message>

View file

@ -14,6 +14,7 @@ from models.plotModel import *
from models.worldModel import worldModel from models.worldModel import worldModel
from ui.views.outlineDelegates import outlinePersoDelegate from ui.views.outlineDelegates import outlinePersoDelegate
from ui.views.plotDelegate import plotDelegate from ui.views.plotDelegate import plotDelegate
from ui.collapsibleDockWidgets import collapsibleDockWidgets
#from models.persosProxyModel import * #from models.persosProxyModel import *
from functions import * from functions import *
from settingsWindow import * from settingsWindow import *
@ -31,6 +32,14 @@ class MainWindow(QMainWindow, Ui_MainWindow):
dictChanged = pyqtSignal(str) dictChanged = pyqtSignal(str)
TabInfos = 0
TabSummary = 1
TabPersos = 2
TabPlots = 3
TabWorld = 4
TabOutline = 5
TabRedac = 6
def __init__(self): def __init__(self):
QMainWindow.__init__(self) QMainWindow.__init__(self)
self.setupUi(self) self.setupUi(self)
@ -390,7 +399,6 @@ class MainWindow(QMainWindow, Ui_MainWindow):
5000) 5000)
return return
if loadFromFile: if loadFromFile:
# Load empty settings # Load empty settings
imp.reload(settings) imp.reload(settings)
@ -492,14 +500,14 @@ class MainWindow(QMainWindow, Ui_MainWindow):
if sttgns.contains("metadataState"): if sttgns.contains("metadataState"):
state = [False if v == "false" else True for v in sttgns.value("metadataState")] state = [False if v == "false" else True for v in sttgns.value("metadataState")]
self.redacMetadata.restoreState(state) self.redacMetadata.restoreState(state)
if sttgns.contains("redacInfosState"): #if sttgns.contains("redacInfosState"):
self.tabRedacInfos.setCurrentIndex(int(sttgns.value("redacInfosState"))) #self.tabRedacInfos.setCurrentIndex(int(sttgns.value("redacInfosState")))
if sttgns.contains("cheatSheetState"): #if sttgns.contains("cheatSheetState"):
state = False if sttgns.value("cheatSheetState") == "false" else True #state = False if sttgns.value("cheatSheetState") == "false" else True
self.grpCheatSheet.restoreState(state) #self.grpCheatSheet.restoreState(state)
if sttgns.contains("searchState"): #if sttgns.contains("searchState"):
state = False if sttgns.value("searchState") == "false" else True #state = False if sttgns.value("searchState") == "false" else True
self.grpSearch.restoreState(state) #self.grpSearch.restoreState(state)
if sttgns.contains("revisionsState"): if sttgns.contains("revisionsState"):
state = [False if v == "false" else True for v in sttgns.value("revisionsState")] state = [False if v == "false" else True for v in sttgns.value("revisionsState")]
self.redacMetadata.revisions.restoreState(state) self.redacMetadata.revisions.restoreState(state)
@ -512,9 +520,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
sttgns.setValue("windowState", self.saveState()) sttgns.setValue("windowState", self.saveState())
sttgns.setValue("metadataState", self.redacMetadata.saveState()) sttgns.setValue("metadataState", self.redacMetadata.saveState())
sttgns.setValue("metadataState", self.redacMetadata.saveState()) sttgns.setValue("metadataState", self.redacMetadata.saveState())
sttgns.setValue("redacInfosState", self.tabRedacInfos.currentIndex()) #sttgns.setValue("redacInfosState", self.tabRedacInfos.currentIndex())
sttgns.setValue("cheatSheetState", self.grpCheatSheet.saveState()) #sttgns.setValue("cheatSheetState", self.grpCheatSheet.saveState())
sttgns.setValue("searchState", self.grpSearch.saveState()) #sttgns.setValue("searchState", self.grpSearch.saveState())
sttgns.setValue("revisionsState", self.redacMetadata.revisions.saveState()) sttgns.setValue("revisionsState", self.redacMetadata.revisions.saveState())
# Specific settings to save before quitting # Specific settings to save before quitting
@ -682,10 +690,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.btnRedacRemoveItem.clicked.connect(self.outlineRemoveItemsRedac, AUC) self.btnRedacRemoveItem.clicked.connect(self.outlineRemoveItemsRedac, AUC)
self.btnOutlineRemoveItem.clicked.connect(self.outlineRemoveItemsOutline, AUC) self.btnOutlineRemoveItem.clicked.connect(self.outlineRemoveItemsOutline, AUC)
self.mainEditor.btnRedacShowOutline.toggled.connect(self.treeRedacWidget.setVisible) self.tabMain.currentChanged.connect(self.toolbar.setCurrentGroup)
self.mainEditor.btnRedacShowOutline.setChecked(True)
self.mainEditor.btnRedacShowInfos.toggled.connect(self.tabRedacInfos.setVisible)
self.mainEditor.btnRedacShowInfos.setChecked(True)
def makeConnections(self): def makeConnections(self):
@ -911,25 +916,25 @@ class MainWindow(QMainWindow, Ui_MainWindow):
def clickCycle(self, i): def clickCycle(self, i):
if i == 0: # step 2 - paragraph summary if i == 0: # step 2 - paragraph summary
self.tabMain.setCurrentIndex(1) self.tabMain.setCurrentIndex(self.TabSummary)
self.tabSummary.setCurrentIndex(1) self.tabSummary.setCurrentIndex(1)
if i == 1: # step 3 - characters summary if i == 1: # step 3 - characters summary
self.tabMain.setCurrentIndex(2) self.tabMain.setCurrentIndex(self.TabPersos)
self.tabPersos.setCurrentIndex(0) self.tabPersos.setCurrentIndex(0)
if i == 2: # step 4 - page summary if i == 2: # step 4 - page summary
self.tabMain.setCurrentIndex(1) self.tabMain.setCurrentIndex(self.TabSummary)
self.tabSummary.setCurrentIndex(2) self.tabSummary.setCurrentIndex(2)
if i == 3: # step 5 - characters description if i == 3: # step 5 - characters description
self.tabMain.setCurrentIndex(2) self.tabMain.setCurrentIndex(self.TabPersos)
self.tabPersos.setCurrentIndex(1) self.tabPersos.setCurrentIndex(1)
if i == 4: # step 6 - four page synopsis if i == 4: # step 6 - four page synopsis
self.tabMain.setCurrentIndex(1) self.tabMain.setCurrentIndex(self.TabSummary)
self.tabSummary.setCurrentIndex(3) self.tabSummary.setCurrentIndex(3)
if i == 5: # step 7 - full character charts if i == 5: # step 7 - full character charts
self.tabMain.setCurrentIndex(2) self.tabMain.setCurrentIndex(self.TabPersos)
self.tabPersos.setCurrentIndex(2) self.tabPersos.setCurrentIndex(2)
if i == 6: # step 8 - scene list if i == 6: # step 8 - scene list
self.tabMain.setCurrentIndex(3) self.tabMain.setCurrentIndex(self.TabPlots)
def wordCount(self, i): def wordCount(self, i):
@ -955,6 +960,13 @@ class MainWindow(QMainWindow, Ui_MainWindow):
lbl.setText(self.tr("Words: {}{}").format(wc, pages)) lbl.setText(self.tr("Words: {}{}").format(wc, pages))
def setupMoreUi(self): def setupMoreUi(self):
# Tool bar on the right
self.toolbar = collapsibleDockWidgets(Qt.RightDockWidgetArea, self)
self.toolbar.addCustomWidget(self.tr("Book summary"), self.grpPlotSummary, self.TabPlots)
self.toolbar.addCustomWidget(self.tr("Project tree"), self.treeRedacWidget, self.TabRedac)
self.toolbar.addCustomWidget(self.tr("Metadata"), self.redacMetadata, self.TabRedac)
# Splitters # Splitters
self.splitterPersos.setStretchFactor(0, 25) self.splitterPersos.setStretchFactor(0, 25)
self.splitterPersos.setStretchFactor(1, 75) self.splitterPersos.setStretchFactor(1, 75)

View file

@ -0,0 +1,96 @@
#!/usr/bin/env python
#--!-- coding: utf8 --!--
from qt import *
class collapsibleDockWidgets(QToolBar):
"""
QMainWindow "mixin" which provides auto-hiding support for dock widgets
(not toolbars).
"""
TRANSPOSED_AREA = {
Qt.LeftDockWidgetArea: Qt.LeftToolBarArea,
Qt.RightDockWidgetArea: Qt.RightToolBarArea,
Qt.TopDockWidgetArea: Qt.TopToolBarArea,
Qt.BottomDockWidgetArea: Qt.BottomToolBarArea,
}
def __init__(self, area, parent, name=""):
QToolBar.__init__(self, parent)
self._area = area
if not name:
name = self.tr("Dock Widgets Toolbar")
self.setObjectName(name)
self.setWindowTitle(name)
self.setFloatable(False)
self.setMovable(False)
#self.setAllowedAreas(self.TRANSPOSED_AREA[self._area])
self.parent().addToolBar(self.TRANSPOSED_AREA[self._area], self)
# Dock widgets
for d in self._dockWidgets():
b = verticalButton(self)
b.setDefaultAction(d.toggleViewAction())
self.addWidget(b)
self.addSeparator()
# Other widgets
self.otherWidgets = []
self.currentGroup = None
def _dockWidgets(self):
mw = self.parent()
for w in mw.findChildren(QDockWidget, None):
yield w
def addCustomWidget(self, text, widget, group=None):
a = QAction(text, self)
a.setCheckable(True)
a.setChecked(widget.isVisible())
a.toggled.connect(widget.setVisible)
#widget.installEventFilter(self)
b = verticalButton(self)
b.setDefaultAction(a)
a2 = self.addWidget(b)
self.otherWidgets.append((b, a2, widget, group))
#def eventFilter(self, widget, event):
#if event.type() in [QEvent.Show, QEvent.Hide]:
#for btn, action, w, grp in self.otherWidgets:
#if w == widget:
#btn.defaultAction().setChecked(event.type() == QEvent.Show)
#return False
def setCurrentGroup(self, group):
self.currentGroup = group
for btn, action, widget, grp in self.otherWidgets:
if not grp == group or grp == None:
action.setVisible(False)
else:
action.setVisible(True)
class verticalButton(QToolButton):
def __init__(self, parent):
QToolButton.__init__(self, parent)
self.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Minimum)
def sizeHint(self):
return QToolButton.sizeHint(self).transposed()
def paintEvent(self, event):
p = QStylePainter(self)
p.rotate(90)
p.translate(0, - self.width())
opt = QStyleOptionButton()
opt.initFrom(self)
opt.text = self.text()
if self.isChecked():
opt.state |= QStyle.State_On
s = opt.rect.size().transposed()
opt.rect.setSize(s)
p.drawControl(QStyle.CE_PushButton, opt)

View file

@ -23,13 +23,6 @@ class Ui_mainEditor(object):
self.verticalLayout.addWidget(self.tab) self.verticalLayout.addWidget(self.tab)
self.horizontalLayout_19 = QtWidgets.QHBoxLayout() self.horizontalLayout_19 = QtWidgets.QHBoxLayout()
self.horizontalLayout_19.setObjectName("horizontalLayout_19") self.horizontalLayout_19.setObjectName("horizontalLayout_19")
self.btnRedacShowOutline = QtWidgets.QPushButton(mainEditor)
self.btnRedacShowOutline.setText("")
icon = QtGui.QIcon.fromTheme("text-x-generic")
self.btnRedacShowOutline.setIcon(icon)
self.btnRedacShowOutline.setCheckable(True)
self.btnRedacShowOutline.setObjectName("btnRedacShowOutline")
self.horizontalLayout_19.addWidget(self.btnRedacShowOutline)
self.btnRedacFolderText = QtWidgets.QPushButton(mainEditor) self.btnRedacFolderText = QtWidgets.QPushButton(mainEditor)
self.btnRedacFolderText.setCheckable(True) self.btnRedacFolderText.setCheckable(True)
self.btnRedacFolderText.setObjectName("btnRedacFolderText") self.btnRedacFolderText.setObjectName("btnRedacFolderText")
@ -87,13 +80,6 @@ class Ui_mainEditor(object):
self.btnRedacFullscreen.setIcon(icon) self.btnRedacFullscreen.setIcon(icon)
self.btnRedacFullscreen.setObjectName("btnRedacFullscreen") self.btnRedacFullscreen.setObjectName("btnRedacFullscreen")
self.horizontalLayout_19.addWidget(self.btnRedacFullscreen) self.horizontalLayout_19.addWidget(self.btnRedacFullscreen)
self.btnRedacShowInfos = QtWidgets.QPushButton(mainEditor)
self.btnRedacShowInfos.setText("")
icon = QtGui.QIcon.fromTheme("edit-find")
self.btnRedacShowInfos.setIcon(icon)
self.btnRedacShowInfos.setCheckable(True)
self.btnRedacShowInfos.setObjectName("btnRedacShowInfos")
self.horizontalLayout_19.addWidget(self.btnRedacShowInfos)
self.verticalLayout.addLayout(self.horizontalLayout_19) self.verticalLayout.addLayout(self.horizontalLayout_19)
self.retranslateUi(mainEditor) self.retranslateUi(mainEditor)

View file

@ -35,20 +35,6 @@
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_19"> <layout class="QHBoxLayout" name="horizontalLayout_19">
<item>
<widget class="QPushButton" name="btnRedacShowOutline">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset theme="text-x-generic">
<normaloff>../../../../../../../../.designer/backup</normaloff>../../../../../../../../.designer/backup</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item> <item>
<widget class="QPushButton" name="btnRedacFolderText"> <widget class="QPushButton" name="btnRedacFolderText">
<property name="text"> <property name="text">
@ -207,20 +193,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QPushButton" name="btnRedacShowInfos">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset theme="edit-find">
<normaloff>../../../../../../../../.designer/backup</normaloff>../../../../../../../../.designer/backup</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
</layout> </layout>

View file

@ -539,14 +539,6 @@ class Ui_MainWindow(object):
self.txtPlotFilter.setProperty("clearButtonEnabled", True) self.txtPlotFilter.setProperty("clearButtonEnabled", True)
self.txtPlotFilter.setObjectName("txtPlotFilter") self.txtPlotFilter.setObjectName("txtPlotFilter")
self.horizontalLayout_15.addWidget(self.txtPlotFilter) self.horizontalLayout_15.addWidget(self.txtPlotFilter)
self.btnPlotShowSummary = QtWidgets.QPushButton(self.groupBox_2)
self.btnPlotShowSummary.setText("")
icon = QtGui.QIcon.fromTheme("text-x-generic")
self.btnPlotShowSummary.setIcon(icon)
self.btnPlotShowSummary.setCheckable(True)
self.btnPlotShowSummary.setChecked(True)
self.btnPlotShowSummary.setObjectName("btnPlotShowSummary")
self.horizontalLayout_15.addWidget(self.btnPlotShowSummary)
self.verticalLayout_10.addLayout(self.horizontalLayout_15) self.verticalLayout_10.addLayout(self.horizontalLayout_15)
self.tabPlot = QtWidgets.QTabWidget(self.splitterPlot) self.tabPlot = QtWidgets.QTabWidget(self.splitterPlot)
self.tabPlot.setDocumentMode(True) self.tabPlot.setDocumentMode(True)
@ -864,8 +856,9 @@ class Ui_MainWindow(object):
self.tabMain.addTab(self.lytTabOutline, "") self.tabMain.addTab(self.lytTabOutline, "")
self.lytTabRedac = QtWidgets.QWidget() self.lytTabRedac = QtWidgets.QWidget()
self.lytTabRedac.setObjectName("lytTabRedac") self.lytTabRedac.setObjectName("lytTabRedac")
self.verticalLayout_16 = QtWidgets.QVBoxLayout(self.lytTabRedac) self.verticalLayout_15 = QtWidgets.QVBoxLayout(self.lytTabRedac)
self.verticalLayout_16.setObjectName("verticalLayout_16") self.verticalLayout_15.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_15.setObjectName("verticalLayout_15")
self.splitterRedac = QtWidgets.QSplitter(self.lytTabRedac) self.splitterRedac = QtWidgets.QSplitter(self.lytTabRedac)
self.splitterRedac.setOrientation(QtCore.Qt.Horizontal) self.splitterRedac.setOrientation(QtCore.Qt.Horizontal)
self.splitterRedac.setObjectName("splitterRedac") self.splitterRedac.setObjectName("splitterRedac")
@ -877,6 +870,7 @@ class Ui_MainWindow(object):
self.treeRedacOutline = treeView(self.treeRedacWidget) self.treeRedacOutline = treeView(self.treeRedacWidget)
self.treeRedacOutline.setEditTriggers(QtWidgets.QAbstractItemView.EditKeyPressed) self.treeRedacOutline.setEditTriggers(QtWidgets.QAbstractItemView.EditKeyPressed)
self.treeRedacOutline.setObjectName("treeRedacOutline") self.treeRedacOutline.setObjectName("treeRedacOutline")
self.treeRedacOutline.header().setVisible(False)
self.verticalLayout_30.addWidget(self.treeRedacOutline) self.verticalLayout_30.addWidget(self.treeRedacOutline)
self.horizontalLayout_31 = QtWidgets.QHBoxLayout() self.horizontalLayout_31 = QtWidgets.QHBoxLayout()
self.horizontalLayout_31.setObjectName("horizontalLayout_31") self.horizontalLayout_31.setObjectName("horizontalLayout_31")
@ -903,61 +897,9 @@ class Ui_MainWindow(object):
self.verticalLayout_30.addLayout(self.horizontalLayout_31) self.verticalLayout_30.addLayout(self.horizontalLayout_31)
self.mainEditor = mainEditor(self.splitterRedac) self.mainEditor = mainEditor(self.splitterRedac)
self.mainEditor.setObjectName("mainEditor") self.mainEditor.setObjectName("mainEditor")
self.tabRedacInfos = QtWidgets.QTabWidget(self.splitterRedac) self.redacMetadata = metadataView(self.splitterRedac)
self.tabRedacInfos.setTabPosition(QtWidgets.QTabWidget.South)
self.tabRedacInfos.setDocumentMode(True)
self.tabRedacInfos.setObjectName("tabRedacInfos")
self.tab_17 = QtWidgets.QWidget()
self.tab_17.setObjectName("tab_17")
self.verticalLayout_20 = QtWidgets.QVBoxLayout(self.tab_17)
self.verticalLayout_20.setSizeConstraint(QtWidgets.QLayout.SetMaximumSize)
self.verticalLayout_20.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_20.setObjectName("verticalLayout_20")
self.redacMetadata = metadataView(self.tab_17)
self.redacMetadata.setObjectName("redacMetadata") self.redacMetadata.setObjectName("redacMetadata")
self.verticalLayout_20.addWidget(self.redacMetadata) self.verticalLayout_15.addWidget(self.splitterRedac)
self.tabRedacInfos.addTab(self.tab_17, "")
self.tab_18 = QtWidgets.QWidget()
self.tab_18.setObjectName("tab_18")
self.verticalLayout_21 = QtWidgets.QVBoxLayout(self.tab_18)
self.verticalLayout_21.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_21.setObjectName("verticalLayout_21")
self.grpCheatSheet = collapsibleGroupBox2(self.tab_18)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.grpCheatSheet.setFont(font)
self.grpCheatSheet.setFlat(True)
self.grpCheatSheet.setObjectName("grpCheatSheet")
self.verticalLayout_15 = QtWidgets.QVBoxLayout(self.grpCheatSheet)
self.verticalLayout_15.setObjectName("verticalLayout_15")
self.cheatSheet = cheatSheet(self.grpCheatSheet)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.cheatSheet.setFont(font)
self.cheatSheet.setObjectName("cheatSheet")
self.verticalLayout_15.addWidget(self.cheatSheet)
self.verticalLayout_21.addWidget(self.grpCheatSheet)
self.grpSearch = collapsibleGroupBox2(self.tab_18)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.grpSearch.setFont(font)
self.grpSearch.setFlat(True)
self.grpSearch.setObjectName("grpSearch")
self.verticalLayout_31 = QtWidgets.QVBoxLayout(self.grpSearch)
self.verticalLayout_31.setObjectName("verticalLayout_31")
self.widget = search(self.grpSearch)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.widget.setFont(font)
self.widget.setObjectName("widget")
self.verticalLayout_31.addWidget(self.widget)
self.verticalLayout_21.addWidget(self.grpSearch)
self.tabRedacInfos.addTab(self.tab_18, "")
self.verticalLayout_16.addWidget(self.splitterRedac)
self.tabMain.addTab(self.lytTabRedac, "") self.tabMain.addTab(self.lytTabRedac, "")
self.lytTabDebug = QtWidgets.QWidget() self.lytTabDebug = QtWidgets.QWidget()
self.lytTabDebug.setObjectName("lytTabDebug") self.lytTabDebug.setObjectName("lytTabDebug")
@ -1057,6 +999,36 @@ class Ui_MainWindow(object):
self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar") self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar) MainWindow.setStatusBar(self.statusbar)
self.dckCheatSheet = QtWidgets.QDockWidget(MainWindow)
self.dckCheatSheet.setObjectName("dckCheatSheet")
self.dockWidgetContents_5 = QtWidgets.QWidget()
self.dockWidgetContents_5.setObjectName("dockWidgetContents_5")
self.verticalLayout_39 = QtWidgets.QVBoxLayout(self.dockWidgetContents_5)
self.verticalLayout_39.setObjectName("verticalLayout_39")
self.cheatSheet = cheatSheet(self.dockWidgetContents_5)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.cheatSheet.setFont(font)
self.cheatSheet.setObjectName("cheatSheet")
self.verticalLayout_39.addWidget(self.cheatSheet)
self.dckCheatSheet.setWidget(self.dockWidgetContents_5)
MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.dckCheatSheet)
self.dckSearch = QtWidgets.QDockWidget(MainWindow)
self.dckSearch.setObjectName("dckSearch")
self.dockWidgetContents_6 = QtWidgets.QWidget()
self.dockWidgetContents_6.setObjectName("dockWidgetContents_6")
self.verticalLayout_40 = QtWidgets.QVBoxLayout(self.dockWidgetContents_6)
self.verticalLayout_40.setObjectName("verticalLayout_40")
self.widget = search(self.dockWidgetContents_6)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.widget.setFont(font)
self.widget.setObjectName("widget")
self.verticalLayout_40.addWidget(self.widget)
self.dckSearch.setWidget(self.dockWidgetContents_6)
MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.dckSearch)
self.actOpen = QtWidgets.QAction(MainWindow) self.actOpen = QtWidgets.QAction(MainWindow)
icon = QtGui.QIcon.fromTheme("document-open") icon = QtGui.QIcon.fromTheme("document-open")
self.actOpen.setIcon(icon) self.actOpen.setIcon(icon)
@ -1141,16 +1113,14 @@ class Ui_MainWindow(object):
self.retranslateUi(MainWindow) self.retranslateUi(MainWindow)
self.stack.setCurrentIndex(1) self.stack.setCurrentIndex(1)
self.tabMain.setCurrentIndex(4) self.tabMain.setCurrentIndex(3)
self.tabSummary.setCurrentIndex(0) self.tabSummary.setCurrentIndex(0)
self.tabPersos.setCurrentIndex(0) self.tabPersos.setCurrentIndex(0)
self.tabPlot.setCurrentIndex(0) self.tabPlot.setCurrentIndex(0)
self.comboBox_2.setCurrentIndex(0) self.comboBox_2.setCurrentIndex(0)
self.stkPlotSummary.setCurrentIndex(0) self.stkPlotSummary.setCurrentIndex(0)
self.tabWorld.setCurrentIndex(0) self.tabWorld.setCurrentIndex(0)
self.tabRedacInfos.setCurrentIndex(0)
self.tabWidget.setCurrentIndex(3) self.tabWidget.setCurrentIndex(3)
self.btnPlotShowSummary.toggled['bool'].connect(self.grpPlotSummary.setVisible)
self.comboBox_2.currentIndexChanged['int'].connect(self.stkPlotSummary.setCurrentIndex) self.comboBox_2.currentIndexChanged['int'].connect(self.stkPlotSummary.setCurrentIndex)
self.btnPlanShowDetails.toggled['bool'].connect(self.frame.setVisible) self.btnPlanShowDetails.toggled['bool'].connect(self.frame.setVisible)
self.cmbSummary.currentIndexChanged['int'].connect(self.tabSummary.setCurrentIndex) self.cmbSummary.currentIndexChanged['int'].connect(self.tabSummary.setCurrentIndex)
@ -1235,10 +1205,6 @@ class Ui_MainWindow(object):
self.tabWorld.setTabText(self.tabWorld.indexOf(self.tab_4), _translate("MainWindow", "More")) self.tabWorld.setTabText(self.tabWorld.indexOf(self.tab_4), _translate("MainWindow", "More"))
self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabContext), _translate("MainWindow", "World")) self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabContext), _translate("MainWindow", "World"))
self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabOutline), _translate("MainWindow", "Outline")) self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabOutline), _translate("MainWindow", "Outline"))
self.tabRedacInfos.setTabText(self.tabRedacInfos.indexOf(self.tab_17), _translate("MainWindow", "Metadata"))
self.grpCheatSheet.setTitle(_translate("MainWindow", "Cheat sheet"))
self.grpSearch.setTitle(_translate("MainWindow", "Search"))
self.tabRedacInfos.setTabText(self.tabRedacInfos.indexOf(self.tab_18), _translate("MainWindow", "Tools"))
self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabRedac), _translate("MainWindow", "Redaction")) self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabRedac), _translate("MainWindow", "Redaction"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_9), _translate("MainWindow", "FlatData")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_9), _translate("MainWindow", "FlatData"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_10), _translate("MainWindow", "Persos")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_10), _translate("MainWindow", "Persos"))
@ -1254,6 +1220,8 @@ class Ui_MainWindow(object):
self.menuTools.setTitle(_translate("MainWindow", "Tools")) self.menuTools.setTitle(_translate("MainWindow", "Tools"))
self.menuEdit.setTitle(_translate("MainWindow", "Edit")) self.menuEdit.setTitle(_translate("MainWindow", "Edit"))
self.menuView.setTitle(_translate("MainWindow", "View")) self.menuView.setTitle(_translate("MainWindow", "View"))
self.dckCheatSheet.setWindowTitle(_translate("MainWindow", "Cheat sheet"))
self.dckSearch.setWindowTitle(_translate("MainWindow", "Search"))
self.actOpen.setText(_translate("MainWindow", "Open")) self.actOpen.setText(_translate("MainWindow", "Open"))
self.actOpen.setShortcut(_translate("MainWindow", "Ctrl+O")) self.actOpen.setShortcut(_translate("MainWindow", "Ctrl+O"))
self.actSave.setText(_translate("MainWindow", "Save")) self.actSave.setText(_translate("MainWindow", "Save"))
@ -1280,18 +1248,17 @@ class Ui_MainWindow(object):
self.actCompile.setText(_translate("MainWindow", "Compile")) self.actCompile.setText(_translate("MainWindow", "Compile"))
self.actCompile.setShortcut(_translate("MainWindow", "F6")) self.actCompile.setShortcut(_translate("MainWindow", "F6"))
from ui.views.plotTreeView import plotTreeView
from ui.views.textEditCompleter import textEditCompleter
from ui.search import search
from ui.cheatSheet import cheatSheet
from ui.views.textEditView import textEditView
from ui.views.metadataView import metadataView
from ui.views.outlineView import outlineView
from ui.views.basicItemView import basicItemView
from ui.views.lineEditView import lineEditView
from ui.editors.mainEditor import mainEditor
from ui.sldImportance import sldImportance from ui.sldImportance import sldImportance
from ui.views.persoTreeView import persoTreeView from ui.views.metadataView import metadataView
from ui.collapsibleGroupBox2 import collapsibleGroupBox2 from ui.views.textEditCompleter import textEditCompleter
from ui.views.treeView import treeView from ui.views.outlineView import outlineView
from ui.search import search
from ui.views.textEditView import textEditView
from ui.welcome import welcome from ui.welcome import welcome
from ui.views.treeView import treeView
from ui.editors.mainEditor import mainEditor
from ui.views.basicItemView import basicItemView
from ui.cheatSheet import cheatSheet
from ui.views.persoTreeView import persoTreeView
from ui.views.lineEditView import lineEditView
from ui.views.plotTreeView import plotTreeView

View file

@ -109,7 +109,7 @@
<item> <item>
<widget class="QTabWidget" name="tabMain"> <widget class="QTabWidget" name="tabMain">
<property name="currentIndex"> <property name="currentIndex">
<number>4</number> <number>3</number>
</property> </property>
<property name="documentMode"> <property name="documentMode">
<bool>true</bool> <bool>true</bool>
@ -1060,23 +1060,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QPushButton" name="btnPlotShowSummary">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset theme="text-x-generic">
<normaloff>../../../../../../../.designer/backup</normaloff>../../../../../../../.designer/backup</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
</layout> </layout>
@ -1450,7 +1433,9 @@
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset theme="emblem-favorite"/> <iconset theme="emblem-favorite">
<normaloff/>
</iconset>
</property> </property>
</widget> </widget>
</item> </item>
@ -1672,7 +1657,10 @@
<attribute name="title"> <attribute name="title">
<string>Redaction</string> <string>Redaction</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="verticalLayout_16"> <layout class="QVBoxLayout" name="verticalLayout_15">
<property name="margin">
<number>0</number>
</property>
<item> <item>
<widget class="QSplitter" name="splitterRedac"> <widget class="QSplitter" name="splitterRedac">
<property name="orientation"> <property name="orientation">
@ -1688,6 +1676,9 @@
<property name="editTriggers"> <property name="editTriggers">
<set>QAbstractItemView::EditKeyPressed</set> <set>QAbstractItemView::EditKeyPressed</set>
</property> </property>
<attribute name="headerVisible">
<bool>false</bool>
</attribute>
</widget> </widget>
</item> </item>
<item> <item>
@ -1743,99 +1734,7 @@
</layout> </layout>
</widget> </widget>
<widget class="mainEditor" name="mainEditor" native="true"/> <widget class="mainEditor" name="mainEditor" native="true"/>
<widget class="QTabWidget" name="tabRedacInfos">
<property name="tabPosition">
<enum>QTabWidget::South</enum>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<property name="documentMode">
<bool>true</bool>
</property>
<widget class="QWidget" name="tab_17">
<attribute name="title">
<string>Metadata</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_20" stretch="0">
<property name="sizeConstraint">
<enum>QLayout::SetMaximumSize</enum>
</property>
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="metadataView" name="redacMetadata" native="true"/> <widget class="metadataView" name="redacMetadata" native="true"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_18">
<attribute name="title">
<string>Tools</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_21">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="collapsibleGroupBox2" name="grpCheatSheet">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="title">
<string>Cheat sheet</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_15">
<item>
<widget class="cheatSheet" name="cheatSheet" native="true">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="collapsibleGroupBox2" name="grpSearch">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="title">
<string>Search</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_31">
<item>
<widget class="search" name="widget" native="true">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
</widget> </widget>
</item> </item>
</layout> </layout>
@ -2014,6 +1913,50 @@
<addaction name="menuHelp"/> <addaction name="menuHelp"/>
</widget> </widget>
<widget class="QStatusBar" name="statusbar"/> <widget class="QStatusBar" name="statusbar"/>
<widget class="QDockWidget" name="dckCheatSheet">
<property name="windowTitle">
<string>Cheat sheet</string>
</property>
<attribute name="dockWidgetArea">
<number>2</number>
</attribute>
<widget class="QWidget" name="dockWidgetContents_5">
<layout class="QVBoxLayout" name="verticalLayout_39">
<item>
<widget class="cheatSheet" name="cheatSheet" native="true">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<widget class="QDockWidget" name="dckSearch">
<property name="windowTitle">
<string>Search</string>
</property>
<attribute name="dockWidgetArea">
<number>2</number>
</attribute>
<widget class="QWidget" name="dockWidgetContents_6">
<layout class="QVBoxLayout" name="verticalLayout_40">
<item>
<widget class="search" name="widget" native="true">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<action name="actOpen"> <action name="actOpen">
<property name="icon"> <property name="icon">
<iconset theme="document-open"> <iconset theme="document-open">
@ -2192,12 +2135,6 @@
<extends>QLineEdit</extends> <extends>QLineEdit</extends>
<header>ui.views.lineEditView.h</header> <header>ui.views.lineEditView.h</header>
</customwidget> </customwidget>
<customwidget>
<class>collapsibleGroupBox2</class>
<extends>QGroupBox</extends>
<header>ui.collapsibleGroupBox2.h</header>
<container>1</container>
</customwidget>
<customwidget> <customwidget>
<class>outlineView</class> <class>outlineView</class>
<extends>QTreeView</extends> <extends>QTreeView</extends>
@ -2268,22 +2205,6 @@
</customwidgets> </customwidgets>
<resources/> <resources/>
<connections> <connections>
<connection>
<sender>btnPlotShowSummary</sender>
<signal>toggled(bool)</signal>
<receiver>grpPlotSummary</receiver>
<slot>setVisible(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>342</x>
<y>760</y>
</hint>
<hint type="destinationlabel">
<x>860</x>
<y>170</y>
</hint>
</hints>
</connection>
<connection> <connection>
<sender>comboBox_2</sender> <sender>comboBox_2</sender>
<signal>currentIndexChanged(int)</signal> <signal>currentIndexChanged(int)</signal>
@ -2307,11 +2228,11 @@
<slot>setVisible(bool)</slot> <slot>setVisible(bool)</slot>
<hints> <hints>
<hint type="sourcelabel"> <hint type="sourcelabel">
<x>1136</x> <x>999</x>
<y>768</y> <y>768</y>
</hint> </hint>
<hint type="destinationlabel"> <hint type="destinationlabel">
<x>1137</x> <x>1000</x>
<y>729</y> <y>729</y>
</hint> </hint>
</hints> </hints>
@ -2355,11 +2276,11 @@
<slot>setVisible(bool)</slot> <slot>setVisible(bool)</slot>
<hints> <hints>
<hint type="sourcelabel"> <hint type="sourcelabel">
<x>446</x> <x>404</x>
<y>127</y> <y>127</y>
</hint> </hint>
<hint type="destinationlabel"> <hint type="destinationlabel">
<x>446</x> <x>404</x>
<y>120</y> <y>120</y>
</hint> </hint>
</hints> </hints>

View file

@ -8,7 +8,7 @@ from ui.views.metadataView_ui import *
class metadataView(QWidget, Ui_metadataView): class metadataView(QWidget, Ui_metadataView):
def __init__(self, parent=None): def __init__(self, parent=None):
QWidget.__init__(self) QWidget.__init__(self, parent)
self.setupUi(self) self.setupUi(self)
self._lastIndexes = None self._lastIndexes = None
self.txtSummarySentance.setColumn(Outline.summarySentance.value) self.txtSummarySentance.setColumn(Outline.summarySentance.value)