Some memory fixes for import/export.

This commit is contained in:
Martin Rotter 2014-09-01 18:17:17 +02:00
parent 1d45832c7b
commit 1057341132
10 changed files with 816 additions and 235 deletions

View File

@ -67,6 +67,17 @@
<translation>Panel kanálů</translation>
</message>
</context>
<context>
<name>FeedsImportExportModel</name>
<message>
<source> (category)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> (feed)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FeedsModel</name>
<message>
@ -138,19 +149,6 @@ Tato kategorie neobsahuje žádné podřízené položky.</translation>
<numerusform>používá specifické nastavení (%n minut do další aktualizace)</numerusform>
</translation>
</message>
<message>
<source>%1 (%2)
%3
Encoding: %4
Auto-update status: %5</source>
<extracomment>Tooltip for feed.</extracomment>
<translation>%1 (%2)
%3
Kódování: %4
Status auto-aktualizace: %5</translation>
</message>
<message numerus="yes">
<source>%n unread message(s).</source>
<extracomment>Tooltip for &quot;unread&quot; column of feed list.</extracomment>
@ -160,6 +158,16 @@ Status auto-aktualizace: %5</translation>
<numerusform>%n nepřečtených zpráv.</numerusform>
</translation>
</message>
<message>
<source>%1 (%2)
%3
Network status: %6
Encoding: %4
Auto-update status: %5</source>
<extracomment>Tooltip for feed.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FeedsToolBar</name>
@ -407,13 +415,6 @@ Status auto-aktualizace: %5</translation>
<translation>Popis je v pořádku.</translation>
</message>
</context>
<context>
<name>FormExport</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormFeedDetails</name>
<message>
@ -585,10 +586,6 @@ Status auto-aktualizace: %5</translation>
<source>Cannot edit feed</source>
<translation>Nelze upravit kanál</translation>
</message>
<message>
<source>Feed was not edited due to error.</source>
<translation>Kanál neupraven kvůli chybě.</translation>
</message>
<message>
<source>All metadata fetched successfully.</source>
<translation>Metadata stažena úspěšně.</translation>
@ -681,6 +678,105 @@ Status auto-aktualizace: %5</translation>
<source>The description is ok.</source>
<translation>Popis je v pořádku.</translation>
</message>
<message>
<source>Feed was not edit due to error.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormImportExport</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Select file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Operation results</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No file is selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No operation executed yet.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export feeds</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Destination file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source feeds &amp;&amp; categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target feeds &amp;&amp; categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Import feeds</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OPML 2.0 files (*.opml)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select file for feeds export</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>File is selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select file for feeds import</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot open source file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds were loaded.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error, file is not well-formed. Select another file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error occurred. File is not well-formed. Select another file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds were exported successfully.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot write into destination file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Critical error occurred.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds imported successfully.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormMain</name>
@ -1067,10 +1163,6 @@ Language column of language list.</extracomment>
<source>Start application hidden</source>
<translation>Spouštět aplikaci skrytou</translation>
</message>
<message>
<source>Use custom color for web browser progress bar</source>
<translation>Použít barevný průběhový pás při načítání stránky</translation>
</message>
<message>
<source>Type</source>
<extracomment>Proxy server type.</extracomment>
@ -1126,10 +1218,6 @@ Language column of language list.</extracomment>
<source>Email</source>
<translation></translation>
</message>
<message>
<source>Select color for web browser progress bar</source>
<translation>Zvolit barvu pro průběhový pás při načítání stránky</translation>
</message>
<message>
<source>Socks5</source>
<translation></translation>
@ -1929,11 +2017,6 @@ Přejít na web aplikace a stáhnout jej ručně.</translation>
<extracomment>Network status.</extracomment>
<translation>proxy server nenalezen</translation>
</message>
<message>
<source>success</source>
<extracomment>Network status.</extracomment>
<translation>úspěch</translation>
</message>
<message>
<source>uknown content</source>
<extracomment>Network status.</extracomment>
@ -1949,6 +2032,11 @@ Přejít na web aplikace a stáhnout jej ručně.</translation>
<extracomment>Network status.</extracomment>
<translation>neznámá chyba</translation>
</message>
<message>
<source>no errors</source>
<extracomment>Network status.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>

View File

@ -67,6 +67,17 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FeedsImportExportModel</name>
<message>
<source> (category)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> (feed)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FeedsModel</name>
<message>
@ -133,15 +144,6 @@ This category does not contain any nested items.</source>
<numerusform></numerusform>
</translation>
</message>
<message>
<source>%1 (%2)
%3
Encoding: %4
Auto-update status: %5</source>
<extracomment>Tooltip for feed.</extracomment>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<source>%n unread message(s).</source>
<extracomment>Tooltip for &quot;unread&quot; column of feed list.</extracomment>
@ -150,6 +152,16 @@ Auto-update status: %5</source>
<numerusform></numerusform>
</translation>
</message>
<message>
<source>%1 (%2)
%3
Network status: %6
Encoding: %4
Auto-update status: %5</source>
<extracomment>Tooltip for feed.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FeedsToolBar</name>
@ -397,13 +409,6 @@ Auto-update status: %5</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormExport</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormFeedDetails</name>
<message>
@ -575,10 +580,6 @@ Auto-update status: %5</source>
<source>Cannot edit feed</source>
<translation type="unfinished">Feed kann nicht editiert werden</translation>
</message>
<message>
<source>Feed was not edited due to error.</source>
<translation type="unfinished">Feed wurde nicht editiert aufgrund eines Fehler.</translation>
</message>
<message>
<source>All metadata fetched successfully.</source>
<translation type="unfinished">Alle Metadaten wurden erfolgreich abgerufen.</translation>
@ -671,6 +672,105 @@ Auto-update status: %5</source>
<source>The description is ok.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feed was not edit due to error.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormImportExport</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Select file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Operation results</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No file is selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No operation executed yet.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export feeds</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Destination file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source feeds &amp;&amp; categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target feeds &amp;&amp; categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Import feeds</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OPML 2.0 files (*.opml)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select file for feeds export</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>File is selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select file for feeds import</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot open source file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds were loaded.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error, file is not well-formed. Select another file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error occurred. File is not well-formed. Select another file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds were exported successfully.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot write into destination file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Critical error occurred.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds imported successfully.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormMain</name>
@ -1057,10 +1157,6 @@ Language column of language list.</extracomment>
<source>Start application hidden</source>
<translation>Starte die Applikation versteckt</translation>
</message>
<message>
<source>Use custom color for web browser progress bar</source>
<translation>Verwende eine eigene Farbe für den Fortschrittsbalken des Web Browsers</translation>
</message>
<message>
<source>Type</source>
<extracomment>Proxy server type.</extracomment>
@ -1116,10 +1212,6 @@ Language column of language list.</extracomment>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
<source>Select color for web browser progress bar</source>
<translation>Selektiere eine Farbe für den Fortschrittsbalken des Web Browsers</translation>
</message>
<message>
<source>Socks5</source>
<translation>Socks5</translation>
@ -1903,11 +1995,6 @@ Go to application website to obtain it manually.</source>
<extracomment>Network status.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>success</source>
<extracomment>Network status.</extracomment>
<translation>Erfolg</translation>
</message>
<message>
<source>uknown content</source>
<extracomment>Network status.</extracomment>
@ -1923,6 +2010,11 @@ Go to application website to obtain it manually.</source>
<extracomment>Network status.</extracomment>
<translation>unbekannter Fehler</translation>
</message>
<message>
<source>no errors</source>
<extracomment>Network status.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>

View File

@ -67,6 +67,17 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FeedsImportExportModel</name>
<message>
<source> (category)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> (feed)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FeedsModel</name>
<message>
@ -133,15 +144,6 @@ This category does not contain any nested items.</source>
<numerusform></numerusform>
</translation>
</message>
<message>
<source>%1 (%2)
%3
Encoding: %4
Auto-update status: %5</source>
<extracomment>Tooltip for feed.</extracomment>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<source>%n unread message(s).</source>
<extracomment>Tooltip for &quot;unread&quot; column of feed list.</extracomment>
@ -150,6 +152,16 @@ Auto-update status: %5</source>
<numerusform></numerusform>
</translation>
</message>
<message>
<source>%1 (%2)
%3
Network status: %6
Encoding: %4
Auto-update status: %5</source>
<extracomment>Tooltip for feed.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FeedsToolBar</name>
@ -397,13 +409,6 @@ Auto-update status: %5</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormExport</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormFeedDetails</name>
<message>
@ -575,10 +580,6 @@ Auto-update status: %5</source>
<source>Cannot edit feed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feed was not edited due to error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All metadata fetched successfully.</source>
<translation type="unfinished"></translation>
@ -671,6 +672,105 @@ Auto-update status: %5</source>
<source>The description is ok.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feed was not edit due to error.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormImportExport</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Select file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Operation results</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No file is selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No operation executed yet.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export feeds</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Destination file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source feeds &amp;&amp; categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target feeds &amp;&amp; categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Import feeds</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OPML 2.0 files (*.opml)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select file for feeds export</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>File is selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select file for feeds import</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot open source file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds were loaded.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error, file is not well-formed. Select another file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error occurred. File is not well-formed. Select another file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds were exported successfully.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot write into destination file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Critical error occurred.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds imported successfully.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormMain</name>
@ -1057,10 +1157,6 @@ Language column of language list.</extracomment>
<source>Start application hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use custom color for web browser progress bar</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Type</source>
<extracomment>Proxy server type.</extracomment>
@ -1116,10 +1212,6 @@ Language column of language list.</extracomment>
<source>Email</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select color for web browser progress bar</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Socks5</source>
<translation type="unfinished"></translation>
@ -1898,11 +1990,6 @@ Go to application website to obtain it manually.</source>
<extracomment>Network status.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>success</source>
<extracomment>Network status.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>uknown content</source>
<extracomment>Network status.</extracomment>
@ -1918,6 +2005,11 @@ Go to application website to obtain it manually.</source>
<extracomment>Network status.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>no errors</source>
<extracomment>Network status.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>

View File

@ -67,6 +67,17 @@
<translation>Barre d&apos;outils pour les flux</translation>
</message>
</context>
<context>
<name>FeedsImportExportModel</name>
<message>
<source> (category)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> (feed)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FeedsModel</name>
<message>
@ -135,19 +146,6 @@ Cette catégorie ne peut pas contenir d&apos;articles imbriqués.</translation>
<numerusform>Utiliser des paramètres spécifiques (%n minute(s) avant la prochaine mise à jour automatique)</numerusform>
</translation>
</message>
<message>
<source>%1 (%2)
%3
Encoding: %4
Auto-update status: %5</source>
<extracomment>Tooltip for feed.</extracomment>
<translation type="unfinished">%1 (%2)
%3
Encodage : %4
Statut de la mise à jour automatique : %5</translation>
</message>
<message numerus="yes">
<source>%n unread message(s).</source>
<extracomment>Tooltip for &quot;unread&quot; column of feed list.</extracomment>
@ -156,6 +154,16 @@ Statut de la mise à jour automatique : %5</translation>
<numerusform>%n message(s) non lu(s).</numerusform>
</translation>
</message>
<message>
<source>%1 (%2)
%3
Network status: %6
Encoding: %4
Auto-update status: %5</source>
<extracomment>Tooltip for feed.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FeedsToolBar</name>
@ -403,13 +411,6 @@ Statut de la mise à jour automatique : %5</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormExport</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormFeedDetails</name>
<message>
@ -581,10 +582,6 @@ Statut de la mise à jour automatique : %5</translation>
<source>Cannot edit feed</source>
<translation type="unfinished">Impossible d&apos;éditer le flux</translation>
</message>
<message>
<source>Feed was not edited due to error.</source>
<translation type="unfinished">Le flux n&apos;a pas é édité à une erreur.</translation>
</message>
<message>
<source>All metadata fetched successfully.</source>
<translation type="unfinished">Tout les méta-datas ont é extraites avec succès.</translation>
@ -677,6 +674,105 @@ Statut de la mise à jour automatique : %5</translation>
<source>The description is ok.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feed was not edit due to error.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormImportExport</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Select file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Operation results</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No file is selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No operation executed yet.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export feeds</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Destination file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source feeds &amp;&amp; categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target feeds &amp;&amp; categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Import feeds</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OPML 2.0 files (*.opml)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select file for feeds export</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>File is selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select file for feeds import</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot open source file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds were loaded.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error, file is not well-formed. Select another file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error occurred. File is not well-formed. Select another file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds were exported successfully.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot write into destination file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Critical error occurred.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds imported successfully.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormMain</name>
@ -1063,10 +1159,6 @@ Language column of language list.</extracomment>
<source>Start application hidden</source>
<translation>Démarrer l&apos;application en caché</translation>
</message>
<message>
<source>Use custom color for web browser progress bar</source>
<translation>Utiliser une couleur personnalisée pour la barre de progression du navigateur web</translation>
</message>
<message>
<source>Type</source>
<extracomment>Proxy server type.</extracomment>
@ -1122,10 +1214,6 @@ Language column of language list.</extracomment>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
<source>Select color for web browser progress bar</source>
<translation>Sélectionner une couleur pour la barre de progression du navigateur web</translation>
</message>
<message>
<source>Socks5</source>
<translation>Socks5</translation>
@ -1926,11 +2014,6 @@ Aller sur le site de l&apos;application pour les obtenir manuellement.</translat
<extracomment>Network status.</extracomment>
<translation>serveur proxy non trouvé</translation>
</message>
<message>
<source>success</source>
<extracomment>Network status.</extracomment>
<translation>succès</translation>
</message>
<message>
<source>uknown content</source>
<extracomment>Network status.</extracomment>
@ -1946,6 +2029,11 @@ Aller sur le site de l&apos;application pour les obtenir manuellement.</translat
<extracomment>Network status.</extracomment>
<translation>erreur inconnue</translation>
</message>
<message>
<source>no errors</source>
<extracomment>Network status.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>

View File

@ -67,6 +67,17 @@
<translation>Toolbar per i feed</translation>
</message>
</context>
<context>
<name>FeedsImportExportModel</name>
<message>
<source> (category)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> (feed)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FeedsModel</name>
<message>
@ -134,15 +145,6 @@ This category does not contain any nested items.</source>
<numerusform></numerusform>
</translation>
</message>
<message>
<source>%1 (%2)
%3
Encoding: %4
Auto-update status: %5</source>
<extracomment>Tooltip for feed.</extracomment>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<source>%n unread message(s).</source>
<extracomment>Tooltip for &quot;unread&quot; column of feed list.</extracomment>
@ -151,6 +153,16 @@ Auto-update status: %5</source>
<numerusform>%n messaggio(i) non letti.</numerusform>
</translation>
</message>
<message>
<source>%1 (%2)
%3
Network status: %6
Encoding: %4
Auto-update status: %5</source>
<extracomment>Tooltip for feed.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FeedsToolBar</name>
@ -398,13 +410,6 @@ Auto-update status: %5</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormExport</name>
<message>
<source>Dialog</source>
<translation type="unfinished">Dialogo</translation>
</message>
</context>
<context>
<name>FormFeedDetails</name>
<message>
@ -576,10 +581,6 @@ Auto-update status: %5</source>
<source>Cannot edit feed</source>
<translation>Impossibile modificare il feed</translation>
</message>
<message>
<source>Feed was not edited due to error.</source>
<translation>Feed non modificato a coausa di un errore.</translation>
</message>
<message>
<source>All metadata fetched successfully.</source>
<translation>Tutti i metadata recuperati con successo.</translation>
@ -672,6 +673,105 @@ Auto-update status: %5</source>
<source>The description is ok.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feed was not edit due to error.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormImportExport</name>
<message>
<source>Dialog</source>
<translation type="unfinished">Dialogo</translation>
</message>
<message>
<source>&amp;Select file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Operation results</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No file is selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No operation executed yet.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export feeds</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Destination file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source feeds &amp;&amp; categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target feeds &amp;&amp; categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Import feeds</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OPML 2.0 files (*.opml)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select file for feeds export</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>File is selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select file for feeds import</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot open source file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds were loaded.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error, file is not well-formed. Select another file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error occurred. File is not well-formed. Select another file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds were exported successfully.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot write into destination file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Critical error occurred.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds imported successfully.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormMain</name>
@ -1058,10 +1158,6 @@ Language column of language list.</extracomment>
<source>Start application hidden</source>
<translation>Avvia applicazione nascosta</translation>
</message>
<message>
<source>Use custom color for web browser progress bar</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Type</source>
<extracomment>Proxy server type.</extracomment>
@ -1117,10 +1213,6 @@ Language column of language list.</extracomment>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
<source>Select color for web browser progress bar</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Socks5</source>
<translation>Socks5</translation>
@ -1904,11 +1996,6 @@ Go to application website to obtain it manually.</source>
<extracomment>Network status.</extracomment>
<translation>server proxy non trovato</translation>
</message>
<message>
<source>success</source>
<extracomment>Network status.</extracomment>
<translation>successo</translation>
</message>
<message>
<source>uknown content</source>
<extracomment>Network status.</extracomment>
@ -1924,6 +2011,11 @@ Go to application website to obtain it manually.</source>
<extracomment>Network status.</extracomment>
<translation>errore sconosciuto</translation>
</message>
<message>
<source>no errors</source>
<extracomment>Network status.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>

View File

@ -67,6 +67,17 @@
<translation>Werkbalk voor feeds</translation>
</message>
</context>
<context>
<name>FeedsImportExportModel</name>
<message>
<source> (category)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> (feed)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FeedsModel</name>
<message>
@ -136,19 +147,6 @@ Deze categorie bevat geen nested items.</translation>
<numerusform>gebruik specifieke instellingen (%n minuten voor volgende automatische update)</numerusform>
</translation>
</message>
<message>
<source>%1 (%2)
%3
Encoding: %4
Auto-update status: %5</source>
<extracomment>Tooltip for feed.</extracomment>
<translation>%1 (%2)
%3
Encoderen: %4
Status automatisch bijwerken: %5</translation>
</message>
<message numerus="yes">
<source>%n unread message(s).</source>
<extracomment>Tooltip for &quot;unread&quot; column of feed list.</extracomment>
@ -157,6 +155,16 @@ Status automatisch bijwerken: %5</translation>
<numerusform>%n ongelezen berichten.</numerusform>
</translation>
</message>
<message>
<source>%1 (%2)
%3
Network status: %6
Encoding: %4
Auto-update status: %5</source>
<extracomment>Tooltip for feed.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FeedsToolBar</name>
@ -404,13 +412,6 @@ Status automatisch bijwerken: %5</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormExport</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormFeedDetails</name>
<message>
@ -582,10 +583,6 @@ Status automatisch bijwerken: %5</translation>
<source>Cannot edit feed</source>
<translation>Kan feed niet bewerken</translation>
</message>
<message>
<source>Feed was not edited due to error.</source>
<translation>Door een fout is de feed niet bewerkt.</translation>
</message>
<message>
<source>All metadata fetched successfully.</source>
<translation>Alle metadata is succesvol opgehaald.</translation>
@ -678,6 +675,105 @@ Status automatisch bijwerken: %5</translation>
<source>The description is ok.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feed was not edit due to error.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormImportExport</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Select file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Operation results</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No file is selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No operation executed yet.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export feeds</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Destination file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source feeds &amp;&amp; categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target feeds &amp;&amp; categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Import feeds</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OPML 2.0 files (*.opml)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select file for feeds export</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>File is selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select file for feeds import</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot open source file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds were loaded.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error, file is not well-formed. Select another file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error occurred. File is not well-formed. Select another file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds were exported successfully.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot write into destination file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Critical error occurred.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Feeds imported successfully.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormMain</name>
@ -1064,10 +1160,6 @@ Language column of language list.</extracomment>
<source>Start application hidden</source>
<translation>Start programma verborgen</translation>
</message>
<message>
<source>Use custom color for web browser progress bar</source>
<translation>Gebruik eigen kleur voor webbrowser voortgangsbalk</translation>
</message>
<message>
<source>Type</source>
<extracomment>Proxy server type.</extracomment>
@ -1123,10 +1215,6 @@ Language column of language list.</extracomment>
<source>Email</source>
<translation>Email</translation>
</message>
<message>
<source>Select color for web browser progress bar</source>
<translation>Selecteer kleur voor webbrowser voortgangsbalk</translation>
</message>
<message>
<source>Socks5</source>
<translation>Socks5</translation>
@ -1928,11 +2016,6 @@ Ga naar RRSguard website en download het handmatig.</translation>
<extracomment>Network status.</extracomment>
<translation>proxy server niet gevonden</translation>
</message>
<message>
<source>success</source>
<extracomment>Network status.</extracomment>
<translation>succes</translation>
</message>
<message>
<source>uknown content</source>
<extracomment>Network status.</extracomment>
@ -1948,6 +2031,11 @@ Ga naar RRSguard website en download het handmatig.</translation>
<extracomment>Network status.</extracomment>
<translation>onbekende fout</translation>
</message>
<message>
<source>no errors</source>
<extracomment>Network status.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>

View File

@ -520,14 +520,55 @@ QModelIndex FeedsModel::indexForItem(FeedsModelRootItem *item) const {
return QModelIndex();
}
bool FeedsModel::mergeRootItem(FeedsModelRootItem *root_item, QString &output_message) {
if (root_item == NULL) {
return false;
}
return false;
}
bool FeedsModel::doesItemContainSameItem(FeedsModelRootItem *parent, FeedsModelRootItem *item) {
if (parent == NULL || item == NULL) {
return false;
}
switch (item->kind()) {
case FeedsModelRootItem::Category: {
foreach (FeedsModelRootItem *child, parent->childItems()) {
if (child->kind() == FeedsModelRootItem::Category && child->title() == item->title()) {
return true;
}
}
return false;
}
case FeedsModelRootItem::Feed: {
foreach (FeedsModelRootItem *child, parent->childItems()) {
if (child->kind() == FeedsModelRootItem::Feed &&
static_cast<FeedsModelFeed*>(child)->url() == static_cast<FeedsModelFeed*>(item)->url()) {
return true;
}
}
return false;
}
default:
return false;
}
}
void FeedsModel::reloadChangedLayout(QModelIndexList list) {
while (!list.isEmpty()) {
QModelIndex indx = list.takeFirst();
QModelIndex indx_parent = indx.parent();
// Underlying data are changed.
emit dataChanged(index(indx.row(), 0, indx_parent),
index(indx.row(), FDS_MODEL_COUNTS_INDEX, indx_parent));
emit dataChanged(index(indx.row(), 0, indx_parent), index(indx.row(), FDS_MODEL_COUNTS_INDEX, indx_parent));
}
}
@ -552,8 +593,7 @@ void FeedsModel::loadFromDatabase() {
qDeleteAll(m_rootItem->childItems());
m_rootItem->clearChildren();
QSqlDatabase database = qApp->database()->connection(objectName(),
DatabaseFactory::FromSettings);
QSqlDatabase database = qApp->database()->connection(objectName(), DatabaseFactory::FromSettings);
CategoryAssignment categories;
FeedAssignment feeds;
@ -561,8 +601,7 @@ void FeedsModel::loadFromDatabase() {
QSqlQuery query_categories(database);
query_categories.setForwardOnly(true);
if (!query_categories.exec("SELECT * FROM Categories;") ||
query_categories.lastError().isValid()) {
if (!query_categories.exec("SELECT * FROM Categories;") || query_categories.lastError().isValid()) {
qFatal("Query for obtaining categories failed. Error message: '%s'.",
qPrintable(query_categories.lastError().text()));
}
@ -579,8 +618,7 @@ void FeedsModel::loadFromDatabase() {
QSqlQuery query_feeds(database);
query_feeds.setForwardOnly(true);
if (!query_feeds.exec("SELECT * FROM Feeds;") ||
query_feeds.lastError().isValid()) {
if (!query_feeds.exec("SELECT * FROM Feeds;") || query_feeds.lastError().isValid()) {
qFatal("Query for obtaining feeds failed.");
}
@ -642,18 +680,14 @@ QList<FeedsModelFeed*> FeedsModel::feedsForIndexes(const QModelIndexList &indexe
// example situation where feed and its parent category are both
// selected). So, remove duplicates from the list.
qSort(feeds.begin(), feeds.end(), FeedsModelRootItem::lessThan);
feeds.erase(std::unique(feeds.begin(),
feeds.end(), FeedsModelRootItem::isEqual),
feeds.end());
feeds.erase(std::unique(feeds.begin(), feeds.end(), FeedsModelRootItem::isEqual), feeds.end());
}
return feeds;
}
bool FeedsModel::markFeedsRead(const QList<FeedsModelFeed*> &feeds,
int read) {
QSqlDatabase db_handle = qApp->database()->connection(objectName(),
DatabaseFactory::FromSettings);
bool FeedsModel::markFeedsRead(const QList<FeedsModelFeed*> &feeds, int read) {
QSqlDatabase db_handle = qApp->database()->connection(objectName(), DatabaseFactory::FromSettings);
if (!db_handle.transaction()) {
qWarning("Starting transaction for feeds read change.");
@ -687,11 +721,8 @@ bool FeedsModel::markFeedsRead(const QList<FeedsModelFeed*> &feeds,
}
}
bool FeedsModel::markFeedsDeleted(const QList<FeedsModelFeed*> &feeds,
int deleted,
bool read_only) {
QSqlDatabase db_handle = qApp->database()->connection(objectName(),
DatabaseFactory::FromSettings);
bool FeedsModel::markFeedsDeleted(const QList<FeedsModelFeed*> &feeds, int deleted, bool read_only) {
QSqlDatabase db_handle = qApp->database()->connection(objectName(), DatabaseFactory::FromSettings);
if (!db_handle.transaction()) {
qWarning("Starting transaction for feeds clearing.");

View File

@ -136,6 +136,11 @@ class FeedsModel : public QAbstractItemModel {
return m_rootItem;
}
// Takes structure residing under given root item and adds feeds/categories from
// it to active structure.
bool mergeRootItem(FeedsModelRootItem *root_item, QString &output_message);
bool doesItemContainSameItem(FeedsModelRootItem *parent, FeedsModelRootItem *item);
public slots:
// Feeds operations.
bool markFeedsRead(const QList<FeedsModelFeed*> &feeds, int read);

View File

@ -92,13 +92,11 @@ bool FeedsModelRootItem::removeChild(int index) {
}
}
bool FeedsModelRootItem::isEqual(FeedsModelRootItem *lhs,
FeedsModelRootItem *rhs) {
bool FeedsModelRootItem::isEqual(FeedsModelRootItem *lhs, FeedsModelRootItem *rhs) {
return (lhs->kind() == rhs->kind()) && (lhs->id() == rhs->id());
}
bool FeedsModelRootItem::lessThan(FeedsModelRootItem *lhs,
FeedsModelRootItem *rhs) {
bool FeedsModelRootItem::lessThan(FeedsModelRootItem *lhs, FeedsModelRootItem *rhs) {
if (lhs->kind() == rhs->kind()) {
return lhs->id() < rhs->id();
}

View File

@ -169,7 +169,7 @@ void FormImportExport::parseImportFile(const QString &file_name) {
}
if (parsing_result) {
m_ui->m_lblResult->setStatus(WidgetWithStatus::Ok, tr("Feeds were imported."), tr("Feeds were imported."));
m_ui->m_lblResult->setStatus(WidgetWithStatus::Ok, tr("Feeds were loaded."), tr("Feeds were loaded."));
m_ui->m_treeFeeds->setEnabled(true);
m_ui->m_treeFeeds->setModel(m_model);
m_ui->m_treeFeeds->expandAll();
@ -234,5 +234,12 @@ void FormImportExport::exportFeeds() {
}
void FormImportExport::importFeeds() {
QString output_message;
if (qApp->mainForm()->tabWidget()->feedMessageViewer()->feedsView()->sourceModel()->mergeRootItem(m_model->rootItem(), output_message)) {
m_ui->m_lblResult->setStatus(WidgetWithStatus::Ok, output_message, output_message);
}
else {
m_ui->m_lblResult->setStatus(WidgetWithStatus::Error, output_message, output_message);
}
}