From 4dd45c3f75bc904a06de838413ce4c84d1a836bb Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Tue, 19 Aug 2014 17:21:32 +0200 Subject: [PATCH] Work on refactoring. --- CMakeLists.txt | 2 + localization/rssguard-cs_CZ.ts | 61 +- localization/rssguard-de_DE.ts | 61 +- localization/rssguard-en_GB.ts | 61 +- localization/rssguard-fr_FR.ts | 61 +- localization/rssguard-it_IT.ts | 2219 +++++++++++++++++ localization/rssguard-nl_NL.ts | 61 +- .../graphics/icons/mini-kfaenza/it_IT.png | Bin 0 -> 1426 bytes src/application.cpp | 11 +- src/application.h | 17 +- src/core/feeddownloader.cpp | 9 +- src/core/feedsmodel.h | 20 +- src/gui/formsettings.cpp | 48 +- src/gui/formupdate.cpp | 2 +- src/miscellaneous/systemfactory.cpp | 17 +- src/miscellaneous/systemfactory.h | 25 +- src/miscellaneous/textfactory.cpp | 22 +- src/miscellaneous/textfactory.h | 2 +- 18 files changed, 2429 insertions(+), 270 deletions(-) create mode 100644 localization/rssguard-it_IT.ts create mode 100644 resources/graphics/icons/mini-kfaenza/it_IT.png diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e88cd538..e1da792b4 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -481,6 +481,7 @@ set(APP_TRANSLATIONS localization/rssguard-de_DE.ts localization/rssguard-en_GB.ts localization/rssguard-fr_FR.ts + localization/rssguard-it_IT.ts localization/rssguard-nl_NL.ts localization/qt-cs_CZ.ts localization/qt-de_DE.ts @@ -493,6 +494,7 @@ set(APP_TRANSLATIONS_WO_QT localization/rssguard-de_DE.ts localization/rssguard-en_GB.ts localization/rssguard-fr_FR.ts + localization/rssguard-it_IT.ts localization/rssguard-nl_NL.ts ) diff --git a/localization/rssguard-cs_CZ.ts b/localization/rssguard-cs_CZ.ts index c6baeb424..dc287f28f 100644 --- a/localization/rssguard-cs_CZ.ts +++ b/localization/rssguard-cs_CZ.ts @@ -192,9 +192,6 @@ Status auto-aktualizace: %5 Cannot edit item - Warning messagebox title when selected item cannot be edited. ----------- -Warning messagebox title when selected item cannot be edited. Nelze upravit položku @@ -225,15 +222,6 @@ Warning messagebox title when selected item cannot be edited. You cannot update selected items because another feed update is ongoing. Právě nyní nemůžete aktualizovat vybrané položky, protože nejspíše probíhá jiná aktualizace. - - Scheduled update started - Naplánovaná aktualizace kanálu odstartována - - - %1 is performing scheduled update of some feeds. - RSS Guard is performing updates right now. - %1 právě aktualizuje kanály. - FormAbout @@ -419,6 +407,13 @@ Warning messagebox title when selected item cannot be edited. Použít výchozí ikonu + + FormExport + + Dialog + + + FormFeedDetails @@ -1009,6 +1004,22 @@ Warning messagebox title when selected item cannot be edited. &Feed/message list headers &Hlavičky seznamů zpráv/kanálů + + &Import feeds + + + + Imports feeds you want from selected file. + + + + &Export feeds + + + + Imports feeds you want to selected file. + + FormSettings @@ -1127,10 +1138,6 @@ Language column of language list. Http - - Do you want to restart now? - Chcete restartovat nyní? - (not supported on this platform) (na této platformě nepodporováno) @@ -1213,22 +1220,10 @@ Language column of language list. Hide tab bar if just one tab is visible Skrýt přepínač tabů, je-li viditelný pouze jeden tab - - Some critical settings were changed and will be applied after the application gets restarted. - Některá kritická nastavení se změnila a pro jejich aplikování je třeba restartovat aplikaci. - Critical settings were changed Kritická nastavení změněna - - Problem with application restart - Problém s restartováním aplikace - - - Application couldn't be restarted. Please, restart it manually for changes to take effect. - Aplikaci se nepodařilo restartovat. Prosím, restartuje ji manuálně. - Feeds & messages Kanály & zprávy @@ -1582,6 +1577,12 @@ Autoři této aplikace nenesou žádnou odpovědnost za ztrátu Vašich dat.Select toolbar to edit Zvolte lištu, kterou chcete upravit + + Some critical settings were changed and will be applied after the application gets restarted. + +You have to restart manually. + + FormUpdate @@ -2038,10 +2039,6 @@ Přejít na web aplikace a stáhnout jej ručně. ToolBarEditor - - Dialog - - Activated actions Aktivované akce diff --git a/localization/rssguard-de_DE.ts b/localization/rssguard-de_DE.ts index c0c6cd546..44a78d375 100644 --- a/localization/rssguard-de_DE.ts +++ b/localization/rssguard-de_DE.ts @@ -182,9 +182,6 @@ Auto-update status: %5 Cannot edit item - Warning messagebox title when selected item cannot be edited. ----------- -Warning messagebox title when selected item cannot be edited. Kann das Item nicht editieren @@ -215,15 +212,6 @@ Warning messagebox title when selected item cannot be edited. You cannot update selected items because another feed update is ongoing. Sie können die selektierten Items nicht updaten weil ein anderer Feed-Update läuft. - - Scheduled update started - Geplanter Update gestartet - - - %1 is performing scheduled update of some feeds. - RSS Guard is performing updates right now. - - FormAbout @@ -409,6 +397,13 @@ Warning messagebox title when selected item cannot be edited. Standard-Icon verwenden + + FormExport + + Dialog + + + FormFeedDetails @@ -999,6 +994,22 @@ Warning messagebox title when selected item cannot be edited. &Feed/message list headers + + &Import feeds + + + + Imports feeds you want from selected file. + + + + &Export feeds + + + + Imports feeds you want to selected file. + + FormSettings @@ -1117,10 +1128,6 @@ Language column of language list. Http Http - - Do you want to restart now? - Wollen Sie jetzt neu starten? - (not supported on this platform) (nicht verfügbar auf dieser Plattform) @@ -1203,22 +1210,10 @@ Language column of language list. Hide tab bar if just one tab is visible Verstecke die Reiterleiste falls nur ein Reiter sichtbar ist - - Some critical settings were changed and will be applied after the application gets restarted. - Ein paar kritische Einstellungen wurden geändert und werden nach dem Programmneustart angewendet. - Critical settings were changed Kritische Einstellungen wurden geändert - - Problem with application restart - Problem mit Programmneustart - - - Application couldn't be restarted. Please, restart it manually for changes to take effect. - Die Applikation konnte nicht neu gestartet werden. Bitte starten Sie sie neu damit die Änderungen angewendet werden können. - Feeds & messages Feeds & Nachrichten @@ -1556,6 +1551,12 @@ Authors of this application are NOT responsible for lost data. Select toolbar to edit + + Some critical settings were changed and will be applied after the application gets restarted. + +You have to restart manually. + + FormUpdate @@ -2014,10 +2015,6 @@ Go to application website to obtain it manually. ToolBarEditor - - Dialog - - Activated actions diff --git a/localization/rssguard-en_GB.ts b/localization/rssguard-en_GB.ts index 3942d1682..9515b5b9a 100644 --- a/localization/rssguard-en_GB.ts +++ b/localization/rssguard-en_GB.ts @@ -182,9 +182,6 @@ Auto-update status: %5 Cannot edit item - Warning messagebox title when selected item cannot be edited. ----------- -Warning messagebox title when selected item cannot be edited. @@ -215,15 +212,6 @@ Warning messagebox title when selected item cannot be edited. You cannot update selected items because another feed update is ongoing. - - Scheduled update started - - - - %1 is performing scheduled update of some feeds. - RSS Guard is performing updates right now. - - FormAbout @@ -409,6 +397,13 @@ Warning messagebox title when selected item cannot be edited. + + FormExport + + Dialog + + + FormFeedDetails @@ -999,6 +994,22 @@ Warning messagebox title when selected item cannot be edited. &Feed/message list headers + + &Import feeds + + + + Imports feeds you want from selected file. + + + + &Export feeds + + + + Imports feeds you want to selected file. + + FormSettings @@ -1117,10 +1128,6 @@ Language column of language list. Http - - Do you want to restart now? - - (not supported on this platform) @@ -1203,22 +1210,10 @@ Language column of language list. Hide tab bar if just one tab is visible - - Some critical settings were changed and will be applied after the application gets restarted. - - Critical settings were changed - - Problem with application restart - - - - Application couldn't be restarted. Please, restart it manually for changes to take effect. - - Feeds & messages @@ -1554,6 +1549,12 @@ Authors of this application are NOT responsible for lost data. Select toolbar to edit + + Some critical settings were changed and will be applied after the application gets restarted. + +You have to restart manually. + + FormUpdate @@ -2009,10 +2010,6 @@ Go to application website to obtain it manually. ToolBarEditor - - Dialog - - Activated actions diff --git a/localization/rssguard-fr_FR.ts b/localization/rssguard-fr_FR.ts index 9918e3672..c33b8469c 100644 --- a/localization/rssguard-fr_FR.ts +++ b/localization/rssguard-fr_FR.ts @@ -188,9 +188,6 @@ Statut de la mise à jour automatique : %5 Cannot edit item - Warning messagebox title when selected item cannot be edited. ----------- -Warning messagebox title when selected item cannot be edited. Impossible d'éditer l'article @@ -221,15 +218,6 @@ Warning messagebox title when selected item cannot be edited. You cannot update selected items because another feed update is ongoing. Vous ne pouvez pas mettre à jour les articles sélectionnés car une autre mise à jour est en cours sur les flux. - - Scheduled update started - La mise à jour programmée a commencée - - - %1 is performing scheduled update of some feeds. - RSS Guard is performing updates right now. - %1 effectue la mise à jour programmée de certains flux. - FormAbout @@ -415,6 +403,13 @@ Warning messagebox title when selected item cannot be edited. Utiliser les icônes par défaut + + FormExport + + Dialog + + + FormFeedDetails @@ -1005,6 +1000,22 @@ Warning messagebox title when selected item cannot be edited. &Feed/message list headers + + &Import feeds + + + + Imports feeds you want from selected file. + + + + &Export feeds + + + + Imports feeds you want to selected file. + + FormSettings @@ -1123,10 +1134,6 @@ Language column of language list. Http Http - - Do you want to restart now? - Voulez vous redémarrer maintenant ? - (not supported on this platform) (non supporté sur cette plate-forme) @@ -1209,22 +1216,10 @@ Language column of language list. Hide tab bar if just one tab is visible Masquer la barre des onglets si un seul est visible - - Some critical settings were changed and will be applied after the application gets restarted. - Certains paramètres critiques ont changés et ils seront appliqués après le redémarrage de l'application. - Critical settings were changed Les paramètres important ont changé - - Problem with application restart - Problème avec le redémarrage de l'application - - - Application couldn't be restarted. Please, restart it manually for changes to take effect. - L'application ne peut être redémarrée. Redémarrer la manuellement pour que les changements prennent effet, s'il vous plait. - Feeds & messages Flux & messages @@ -1578,6 +1573,12 @@ Les auteurs de cette application NE sont PAS responsable de la perte de données Select toolbar to edit + + Some critical settings were changed and will be applied after the application gets restarted. + +You have to restart manually. + + FormUpdate @@ -2037,10 +2038,6 @@ Aller sur le site de l'application pour les obtenir manuellement. ToolBarEditor - - Dialog - - Activated actions diff --git a/localization/rssguard-it_IT.ts b/localization/rssguard-it_IT.ts new file mode 100644 index 000000000..895d22230 --- /dev/null +++ b/localization/rssguard-it_IT.ts @@ -0,0 +1,2219 @@ + + + + + DatabaseFactory + + MySQL server works as expected. + + + + No MySQL server is running in the target destination. + + + + Access denied. Invalid username or password used. + Access to MySQL server was denied. + + + + Unknown error. + Unknown MySQL error arised. + Errore sconosciuto. + + + + FeedMessageViewer + + Toolbar for messages + Toolbar per messaggi + + + Feed update started + Text display in status bar when feed update is started. + Aggiornamento feed iniziato + + + Updated feed '%1' + Text display in status bar when particular feed is updated. + Feed '%1' aggiornato + + + Cannot defragment database + Impossibile deframmentare database + + + Database cannot be defragmented because feed update is ongoing. + Il database non può essere deframmentato perché è in in corso l'aggiornamento del feed. + + + Database defragmented + Database deframmentato + + + Database was successfully defragmented. + Il database è stato deframmentato con successo. + + + Database was not defragmented + Il database non è stato deframmentato + + + Database was not defragmented. This database backend does not support it or it cannot be defragmented now. + + + + Toolbar for feeds + Toolbar per i feed + + + + FeedsModel + + Title + Title text in the feed list header. + Titolo + + + Titles of feeds/categories. + Feed list header "titles" column tooltip. + Titoli dei feed/categorie. + + + Counts of unread/all meesages. + Feed list header "counts" column tooltip. + Conteggio dei messaggi non letti/tutti. + + + Root + Name of root item of feed list which can be seen in feed add/edit dialog. + Root + + + + FeedsModelCategory + + %1 (category) +%2%3 + Tooltip for standard feed. + %1 (categoria) +%2%3 + + + + +This category does not contain any nested items. + + + + %n unread message(s). + Tooltip for "unread" column of feed list. + + %n messaggio(i) non letto. + %n messaggio(i) non letti. + + + + + FeedsModelFeed + + does not use auto-update + Describes feed auto-update status. + non utilizza l'auto-aggiornamento + + + uses global settings + Describes feed auto-update status. + utilizza impostazioni globali + + + uses specific settings (%n minute(s) to next auto-update) + Describes feed auto-update status. + + + + + + %1 (%2) +%3 + +Encoding: %4 +Auto-update status: %5 + Tooltip for feed. + + + + %n unread message(s). + Tooltip for "unread" column of feed list. + + + + + + + FeedsToolBar + + Toolbar spacer + Spaziatore toolbar + + + + FeedsView + + Context menu for feeds + Menu contestuale per i feed + + + Cannot add standard category + Impossibile aggiungere categoria standard + + + You cannot add new standard category now because feed update is ongoing. + + + + Cannot add standard feed + Impossibile aggiungere feed standard + + + You cannot add new standard feed now because feed update is ongoing. + + + + Cannot edit item + Warning messagebox title when selected item cannot be edited. +---------- +Warning messagebox title when selected item cannot be edited. + Impossibile modificare elemento + + + Selected item cannot be edited because feed update is ongoing. + + + + Cannot delete item + Impossibile eliminare l'elemento + + + Selected item cannot be deleted because feed update is ongoing. + + + + Cannot update all items + Impossibile aggiornare tutti gli elementi + + + You cannot update all items because another feed update is ongoing. + + + + Cannot update selected items + Impossibile aggiornare gli elementi selezionati + + + You cannot update selected items because another feed update is ongoing. + + + + Scheduled update started + + + + %1 is performing scheduled update of some feeds. + RSS Guard is performing updates right now. + + + + + FormAbout + + Information + Informazioni + + + Licenses + Licenze + + + GNU GPL License (applies to RSS Guard source code) + Licenza GNU GPL (applicata al codice sorgente di RSS Guard) + + + GNU GPL License + Licenza GNU GPL + + + BSD License (applies to QtSingleApplication source code) + Licenza BSD (applicata al codice sorgente di QTSingleApplication) + + + Licenses page is available only in English language. + La pagina di licenza è disponibile solo in lingua inglese. + + + Changelog + Changelog + + + Changelog page is available only in English language. + La pagina del changelog è disponibile solo in lingua inglese. + + + License not found. + Licenza non trovato. + + + Changelog not found. + Changelog non trovato. + + + <b>%8</b><br><b>Version:</b> %1 (build on %2 with CMake %3)<br><b>Revision:</b> %4<br><b>Build date:</b> %5<br><b>Qt:</b> %6 (compiled against %7)<br> + + + + <body>%5 is a (very) tiny feed reader.<br><br>This software is distributed under the terms of GNU General Public License, version 3.<br><br>Contacts:<ul><li><a href="mailto://%1">%1</a> ~email</li><li><a href="%2">%2</a> ~website</li></ul>You can obtain source code for %5 from its website.<br><br><br>Copyright (C) 2011-%3 %4</body> + <body>%5 è un (davvero) piccolo lettore di feed.<br><br>Questo software viene distribuito sotto i termini della GNU General Public License, version 3.<br><br>Contatti:<ul><li><a href="mailto://%1">%1</a> ~email</li><li><a href="%2">%2</a> ~website</li></ul>Puoi ottonere il codice sorgente di %5 dal suo sito web.<br><br><br>Copyright (C) 2011-%3 %4</body> + + + About %1 + About RSS Guard dialog title. + Info su %1 + + + + FormCategoryDetails + + Parent category + + + + Select parent item for your category. + + + + Title + Titolo + + + Description + Descrizione + + + Icon + Icona + + + Select icon for your category. + Seleziona icona per la tua categoria. + + + Add new category + Aggiungi nuova categoria + + + Edit existing category + Modifica categoria esistente + + + Cannot add category + Impossibile aggiungere categria + + + Category was not added due to error. + + + + Cannot edit category + Impossibile modificare categoria + + + Category was not edited due to error. + + + + Category name is ok. + Il nome della categoria è ok. + + + Category name is too short. + Il nome della categoria è troppo corto. + + + Description is empty. + La descrizione è vuota. + + + The description os ok. + La descrizione è ok. + + + Select icon file for the category + Seleziona icona per la categoria + + + Images (*.bmp *.jpg *.jpeg *.png *.svg *.tga) + Immagini (*.bmp *.jpg *.jpeg *.png *.svg *.tga) + + + Select icon + Seleziona icona + + + Cancel + Annulla + + + Look in: + Label to describe the folder for icon file selection dialog. + + + + Icon name: + Nome icona: + + + Icon type: + Tipo icona: + + + Category title + Titolo categoria + + + Set title for your category. + Imposta titolo per la tua categoria. + + + Category description + Descrizione categoria + + + Set description for your category. + Imposta descrizione per la tua categoria. + + + Icon selection + Selezione icona + + + Load icon from file... + Carica icona dal file... + + + Do not use icon + Non usare icona + + + Use default icon + Usa icona di default + + + + FormFeedDetails + + Parent category + + + + Select parent item for your feed. + + + + Type + Tipo + + + Select type of the standard feed. + Seleziona tipo di feed standard. + + + Encoding + + + + Select encoding of the standard feed. If you are unsure about the encoding, then select "UTF-8" encoding. + + + + Auto-update + Auto-aggiorna + + + Select the auto-update strategy for this feed. Default auto-update strategy means that the feed will be update in time intervals set in application settings. + + + + minutes + minuti + + + Title + Titolo + + + Description + Descrizione + + + URL + URL + + + Fetch it now + Recupera adesso + + + Icon + Icona + + + Select icon for your feed. + Seleziona icona per il tuo feed. + + + Some feeds require authentication, including GMail feeds. BASIC, NTLM-2 and DIGEST-MD5 authentication schemes are supported. + + + + Requires authentication + Richiede autenticazione + + + Username + Nome utente + + + Password + Password + + + Fetch metadata + Recupera metadata + + + Add new feed + Aggiungi nuovo feed + + + Edit existing feed + Modifica feed esistente + + + Feed name is ok. + Il nome feed è ok. + + + Feed name is too short. + Il nome feed è troppo corto. + + + Description is empty. + La descrizione è vuota. + + + The description os ok. + La descrizione è ok. + + + The url is ok. + L'url è ok. + + + The url does not meet standard pattern. Does your url start with "http://" or "https://" prefix. + + + + The url is empty. + L'url è vuoto. + + + Username is ok or it is not needed. + + + + Username is empty. + Nome utente vuoto. + + + Password is ok or it is not needed. + + + + Password is empty. + La password è vuota. + + + Select icon file for the feed + Seleziona icona per il feed + + + Images (*.bmp *.jpg *.jpeg *.png *.svg *.tga) + Immagini (*.bmp *.jpg *.jpeg *.png *.svg *.tga) + + + Select icon + Seleziona icona + + + Cancel + Annulla + + + Look in: + Label for field with icon file name textbox for selection dialog. + + + + Icon name: + Nome icona: + + + Icon type: + Tipo icona: + + + Cannot add feed + Impossibile aggiungere feed + + + Feed was not added due to error. + Feed non aggiunto a causa di un errore. + + + Cannot edit feed + Impossibile modificare il feed + + + Feed was not edited due to error. + Feed non modificato a coausa di un errore. + + + All metadata fetched successfully. + Tutti i metadata recuperati con successo. + + + Feed and icon metadata fetched. + Feed e icona metadata recuperati. + + + Result: %1. + Risultato: %1. + + + Feed or icon metatada not fetched. + Feed o icona metadata recuperati. + + + Error: %1. + Errore: %1. + + + No metadata fetched. + Nessun metadata recuperato. + + + Feed title + Titolo feed + + + Set title for your feed. + Imposta titolo per il tuo feed. + + + Feed description + Descrizione feed + + + Set description for your feed. + Imposta descrizione del tuo feed. + + + Full feed url including scheme + + + + Set url for your feed. + Imposta url per il tuo feed. + + + Set username to access the feed. + Imposta nome utente per accedere al feed. + + + Set password to access the feed. + Imposta password per accedere al feed. + + + Icon selection + Selezione icona + + + Load icon from file... + Carica icona dal file... + + + Do not use icon + Non usare icona + + + Use default icon + Usa icona di default + + + No metadata fetched so far. + + + + Auto-update using global interval + + + + Auto-update every + Auto-aggiorna ogni + + + Do not auto-update at all + + + + + FormMain + + &File + &File + + + &Help + &Aiuto + + + &View + &Visualizza + + + &Tools + &Tools + + + &Quit + &Chiudi + + + &Settings + &Impostazioni + + + &Current tab + &Tab corrente + + + &Add tab + &Aggiungi tab + + + Close all tabs except current one + Chiudi tutti i tab tranne quello corrente + + + &Messages + &Messaggi + + + &Web browser + &Web browser + + + Switch &importance of selected messages + + + + Quit the application. + Chiudi l'applicazione. + + + Display settings of the application. + Visualizza impostazioni dell'applicazione. + + + Switch fullscreen mode. + Passa alla modalità schermo intero. + + + Add new web browser tab. + Aggiungi nuovo web browser tab. + + + Close current web browser tab. + Chiudi tab web browser corrente. + + + Application is already running. + Applicazione già avviata. + + + No actions available + Nessuna azione disponibile + + + No actions are available right now. + Non è disponibile nessuna azione adesso. + + + Fee&ds && categories + + + + Mark all messages (without message filters) from selected feeds as read. + + + + Mark all messages (without message filters) from selected feeds as unread. + + + + Displays all messages from selected feeds/categories in a new "newspaper mode" tab. Note that messages are not set as read automatically. + + + + Hides main window if it is visible and shows it if it is hidden. + Nasconde la finestra principale se è visibile e la mostra se è nascosta. + + + Defragment database file so that its size decreases. + Deframmenta il file del database cosi la dimensione diminuisce. + + + Hides or shows the list of feeds/categories. + Nascondi o mostra l'elenco dei feed/categorie. + + + Check if new update for the application is available for download. + Controlla se un nuovo aggiornamento per l'applicazione è disponibile al download. + + + Cannot check for updates + Impossibile controllare aggiornamenti. + + + You cannot check for updates because feed update is ongoing. + + + + &About application + + + + Displays extra info about this application. + Visualizza maggiori informazioni su questa applicazione. + + + &Delete selected messages + &Elimina i messaggi selezionati + + + Deletes all messages from selected feeds. + Elimina tutti i messaggi dai feed selezionati. + + + Marks all messages in all feeds read. This does not take message filters into account. + + + + Deletes all messages from all feeds. + Elimina tutti i messaggi da tutti i feed. + + + Update &all feeds + + + + Update &selected feeds + + + + &Edit selected feed/category + + + + &Delete selected feed/category + + + + Settings + Impostazioni + + + Hides or displays the main menu. + Nascondi o visualizza il menu principale. + + + Add &new feed/category + + + + &Close all tabs except current one + + + + &Close current tab + &Chiudi tab corrente + + + Mark &selected messages as &read + + + + Mark &selected messages as &unread + + + + &Mark selected feeds as read + + + + &Mark selected feeds as unread + + + + &Clean selected feeds + + + + Open selected source articles in &external browser + + + + Open selected messages in &internal browser + + + + Open selected source articles in &internal browser + + + + &Mark all feeds as &read + + + + View selected feeds in &newspaper mode + + + + &Defragment database + &Deframmenta database + + + &Clean all feeds + + + + Select &next feed/category + + + + Select &previous feed/category + + + + Select &next message + + + + Select &previous message + + + + Check for &updates + + + + Enable &JavaScript + Abilita &JavaScript + + + Enable external &plugins + Abilita &plugin esterni + + + Auto-load &images + Auto-carica &immagini + + + Show/hide + Mostra/nascondi + + + &Fullscreen + + + + &Feed list + + + + &Main menu + &Menu principale + + + Switch visibility of main &window + + + + Report a &bug... + Segnala un &bug... + + + Cannot open external browser + Impossibile aprire browser esterno + + + Cannot open external browser. Navigate to application website manually. + + + + New &feed + Nuovo &feed + + + Add new feed. + Aggiungi nuovo feed. + + + New &category + Nuova &categoria + + + Add new category. + Aggiungi nuova categoria. + + + &Toolbars + &Toolbar + + + Switch visibility of main toolbars. + Cambia visibilità delle toolbar principali. + + + &Feed/message list headers + + + + + FormSettings + + General + General settings section. + Generale + + + User interface + Interfaccia utente + + + Icon theme + Tema icona + + + Settings + Impostazioni + + + Keyboard shortcuts + Scorciatoie da tastiera + + + Language + Language settings section. +---------- +Language column of language list. + Lingua + + + Proxy + Proxy + + + Icons && skins + Icone && skin + + + Tray icon + Icona vassoio + + + Start application hidden + Avvia applicazione nascosta + + + Use custom color for web browser progress bar + + + + Type + Proxy server type. + Tipo + + + Host + Host + + + Hostname or IP of your proxy server + Hostname e IP del tuo server proxy + + + Port + Porta + + + Username + Nome utente + + + Your username for proxy server authentication + Il tuo nome utente per l'autenticazione per il tuo proxy server + + + Password + Password + + + Your password for proxy server authentication + La tua password per l'autenticazione per il tuo proxy server + + + Display password + Mostra password + + + Code + Lang. code column of language list. + Codice + + + Version + Version column of skin list. + Versione + + + Author + Autore + + + Email + Email + + + Select color for web browser progress bar + + + + Socks5 + Socks5 + + + Http + Http + + + Do you want to restart now? + Vuoi riavviare adesso? + + + (not supported on this platform) + (non supportato su questa piattaforma) + + + Tray area && notifications + + + + Disable + Disabilita + + + Enable + Abilita + + + Tabs + Tab + + + Close tabs with + Chiudi tab con + + + Middle mouse button single-click + + + + Open new tabs with left mouse button double-click on tab bar + + + + Enable mouse gestures + Abilità gesture con il mouse + + + Web browser & proxy + Web browser e proxy + + + Disable (Tray icon is not available.) + + + + Queue new tabs (with hyperlinks) after the active tab + + + + no icon theme + Label for disabling icon theme. + Nessun tema icona + + + Cannot save settings + Impossibile salvare le impostazioni + + + Name + Skin list name column. + Nome + + + Icons + Icone + + + Skins + Skin + + + Active skin: + Skin attiva: + + + Selected skin: + Skin selezionata: + + + Hide tab bar if just one tab is visible + Nascondi tab se è visibile un tab solo + + + Some critical settings were changed and will be applied after the application gets restarted. + + + + Critical settings were changed + Le impostazioni critiche sono cambiate + + + Problem with application restart + Problema con il riavvio dell'applicazione + + + Application couldn't be restarted. Please, restart it manually for changes to take effect. + + + + Feeds & messages + Feed & messaggi + + + Some critical settings are not set. You must fix these settings in order confirm new settings. + + + + Messages + Messaggi + + + Web browser executable + Eseguibile web browser + + + ... + ... + + + Executable parameters + parametri eseguibile + + + Note that "%1" (without quotation marks) is placeholder for URL of selected message. + + + + Select web browser executable + Seleziona eseguibile web browser + + + Executables (*.*) + File filter for external browser selection dialog. + Eseguibili (*.*) + + + Opera 12 or older + Opera 12 o superiori + + + Executable file of web browser + File eseguibile del web browser + + + Parameters to executable + Parametri all'eseguibile + + + some keyboard shortcuts are not unique + alcune scorciatoie da tastiera non sono uniche + + + List of errors: +%1. + Elenco errori: +%1. + + + List of changes: +%1. + Elenco cambiamenti: +%1. + + + language changed + lingua cambiata + + + icon theme changed + tema icona cambiato + + + skin changed + skin cambiata + + + Use sample arguments for + Usa argomenti semplici per + + + Use in-memory database as the working database + + + + Usage of in-memory working database has several advantages and pitfalls. Make sure that you are familiar with these before you turn this feature on. Advantages: +<ul> +<li>higher speed for feed/message manipulations (especially with thousands of messages displayed),</li> +<li>whole database stored in RAM, thus your hard drive can rest more.</li> +</ul> +Disadvantages: +<ul> +<li>if application crashes, your changes from last session are lost,</li> +<li>application startup and shutdown can take little longer (max. 2 seconds).</li> +</ul> +Authors of this application are NOT responsible for lost data. + + + + in-memory database switched + + + + Internal web browser + Web browser interno + + + External web browser + Web browser esterno + + + Remove all read messages from all standard feeds on application exit + Rimuovi tutti i messaggi letti dai feed standard all'uscita dall'applicazione. + + + WARNING: Note that switching to another data storage type will NOT copy existing your data from currently active data storage to newly selected one. + + + + Database driver + Driver database + + + Hostname + Hostname + + + Test setup + + + + Note that speed of used MySQL server and latency of used connection medium HEAVILY influences the final performance of this application. Using slow database connections leads to bad performance when browsing feeds or messages. + + + + Right mouse button double-click + + + + Auto-update all feeds every + Auto-aggiorna tutti i feed ogni + + + minutes + minuti + + + Feed connection timeout + Timeout connessione feed + + + Connection timeout is time interval which is reserved for downloading new messages for the feed. If this time interval elapses, then download process is aborted. + + + + ms + ms + + + Update all feed on application startup + Aggiorna tutti i feed all'avvio dell'apllicazione + + + Data storage + Immagazinamento dati + + + SQLite (embedded database) + SQLite (database incorporato) + + + MySQL/MariaDB (dedicated database) + MySQL/MariaDB (database dedicato) + + + Hostname of your MySQL server + Hostname del tuo server MySQL + + + Username to login with + Nome utente con cui entrare + + + Password for your username + Password per il tuo nome utente + + + data storage backend changed + + + + Hostname is empty. + Hostname è vuoto. + + + Hostname looks ok. + Hostname sembra ok. + + + Username is empty. + Nome utente vuoto. + + + Username looks ok. + Il nome utente sembra ok. + + + Password is empty. + La password è vuota. + + + Password looks ok. + La password sembra ok. + + + Toolbar button style + Stile pulsanti toolbar + + + Hide main window when it is minimized + Nascondi finestra pricnipale quando minimizata + + + No connection test triggered so far. + + + + Note that these settings are applied only on newly established connections. + Nota che queste impostazioni verranno applicate solo quando verrà stabilita una nuova connessione. + + + Select browser + Seleziona browser + + + No proxy + Nessun proxy + + + System proxy + Proxy di sistema + + + Icon only + Solo icona + + + Text only + Solo testo + + + Text beside icon + Testo accanto icona + + + Text under icon + Testo sotto icona + + + Follow OS style + Segui stile OS + + + Keep message selection in the middle of the message list viewport + + + + You did not executed any connection test yet. + + + + Launch %1 on operating system startup + Lancia %1 all'avvio del sistema operativo + + + Mouse gestures work with middle mouse button. Possible gestures are: +<ul> +<li>previous web page (drag mouse left),</li> +<li>next web page (drag mouse right),</li> +<li>reload current web page (drag mouse up),</li> +<li>open new web browser tab (drag mouse down).</li> +</ul> + + + + Enable JavaScript + Abilita JavaScript + + + Enable external plugins based on NPAPI + Abilita plugin esterni basati su NPAPI + + + Auto-load images + carica automaticamente immagini + + + <html><head/><body><p>If unchecked, then default system-wide web browser is used.</p></body></html> + + + + Custom external web browser + Web browser esterno personalizzato + + + Feeds && categories + Feed && categorie + + + Message count format in feed list + Conteggio dei messaggi nell'elenco feed + + + Enter format for count of messages displayed next to each feed/category in feed list. Use "%all" and "%unread" strings which are placeholders for the actual count of all (or unread) messages. + + + + custom external browser is not set correctly + il browser web esterno non è impostato corretamente + + + Toolbars + Toolbar + + + Toolbar for feeds list + Toolbar per elenco feed + + + Toolbar for messages list + Toolbar per elenco messaggi + + + Select toolbar to edit + Seleziona toolbar da modificare + + + + FormUpdate + + Current release + Rilascio corrente + + + Available release + Rilascio disponibile + + + Changes + Cambiamenti + + + Status + Stato + + + unknown + Unknown release. + sconosciuto + + + List with updates was not +downloaded successfully. + L'elenco con gli aggiornamenti non è stata +scaricata con successo. + + + New release available. + Nuovo rilascio disponibile. + + + This is new version which can be +downloaded and installed. + Questa è la nuova versione che puà essere +scaricata e installata. + + + Error: '%1'. + Errore: '%1'. + + + No new release available. + Nessun nuovo rilascio disponibile. + + + This release is not newer than +currently installed one. + Questo rilascio è più vecchio di quello +correntemente installato. + + + Check for updates + Controlla aggiornamenti + + + Update + Aggiorna + + + Download new installation files. + Scarica nuovo file di installazione. + + + Checking for updates failed. + Controllo aggiornamenti faliito. + + + Download installation file for your OS. + Scarica file di installazione per il tuo OS. + + + Installation file is not available directly. +Go to application website to obtain it manually. + + + + No new update available. + Nessun nuovo aggiornamneto disponibile. + + + Cannot update application + Impossibile aggiornare applicazione + + + Cannot navigate to installation file. Check new installation downloads manually on project website. + + + + Download update + Scarica aggiornamento + + + Downloaded %1% (update size is %2 kB). + + + + Downloading update... + Scaricamento aggiornamento... + + + Downloaded successfully + Scaricato con successo + + + Package was downloaded successfully. + Il pacchetto è stato aggiornato con successo. + + + Install update + Installa aggiornamento + + + Error occured + + + + Error occured during downloading of the package. + + + + Cannot launch external updater. Update application manually. + + + + + LocationLineEdit + + Website address goes here + L'indirizzo del sito web va qui + + + + MessagesModel + + Id + Tooltip for ID of message. + Id + + + Read + Tooltip for "read" column in msg list. + Leggi + + + Deleted + Tooltip for "deleted" column in msg list. + Eliminato + + + Important + Tooltip for "important" column in msg list. + Importante + + + Feed + Tooltip for name of feed for message. + Feed + + + Title + Tooltip for title of message. + Titolo + + + Url + Tooltip for url of message. + Url + + + Author + Tooltip for author of message. + Autore + + + Created on + Tooltip for creation date of message. + Creato il + + + Contents + Tooltip for contents of message. + Contenuti + + + Id of the message. + Id del messaggio. + + + Is message read? + Il messaggio è stato letto? + + + Is message deleted? + Il messaggio è stato eliminato? + + + Is message important? + Il messaggio è importante? + + + Id of feed which this message belongs to. + l'id del feed a cui appartiene il messaggio. + + + Title of the message. + Titolo del messaggio. + + + Url of the message. + Url del messaggio. + + + Author of the message. + Autore del messaggio. + + + Creation date of the message. + Data di creazione del messaggio. + + + Contents of the message. + Contenuti del messaggio. + + + + MessagesToolBar + + Search messages + Cerca messaggi + + + Message search box + Box di ricerca messaggio + + + Menu for highlighting messages + + + + No extra highlighting + + + + Highlight unread messages + + + + Highlight important messages + + + + Display all messages + Visualizza tutti i messaggi + + + Message highlighter + + + + Toolbar spacer + Spaziatore toolbar + + + + MessagesView + + Context menu for messages + Menu contestuale per i messaggi + + + Meesage without URL + Messaggio senza URL + + + Message '%s' does not contain URL. + Il messaggio '%s' non contiene URL. + + + Problem with starting external web browser + Problema con l'avvio del web browser esterno + + + External web browser could not be started. + Il web browser esterno non può essere avviato. + + + + NetworkFactory + + protocol error + Network status. + errore protocollo + + + host not found + Network status. + host non trovato + + + connection refused + Network status. + connessione rifiutata + + + connection timed out + Network status. + time out connessione + + + SSL handshake failed + Network status. + Handshake SSL fallito + + + proxy server connection refused + Network status. + connessione proxy server rifiutata + + + temporary failure + Network status. + fallimento temporaneo + + + authentication failed + Network status. + autenticazione fallita + + + proxy authentication required + Network status. + autenticazione proxy richiesta + + + proxy server not found + Network status. + server proxy non trovato + + + success + Network status. + successo + + + uknown content + Network status. + contenuto sconosciuto + + + content not found + Network status. + contenuto non trovato + + + unknown error + Network status. + errore sconosciuto + + + + QObject + + LANG_NAME + Name of language, e.g. English. + Italiano + + + LANG_ABBREV + Abbreviation of language, e.g. en. Use ISO 639-1 code here combined with ISO 3166-1 (alpha-2) code. Examples: "cs_CZ", "en_GB", "en_US". + it_IT + + + LANG_VERSION + Version of your translation, e.g. 1.0. + 0.01 + + + LANG_AUTHOR + Name of translator - optional. + giuseppep + + + LANG_EMAIL + Email of translator - optional. + + + + + ShortcutCatcher + + Reset to original shortcut. + Reimposta alla scorciatoia originale. + + + Clear current shortcut. + Pulisci scorciatoia corrente. + + + Click and hit new shortcut. + + + + + StatusBar + + Fullscreen mode + Modalità schermo intero + + + Switch application between fulscreen/normal states right from this status bar icon. + + + + + TabBar + + Close this tab. + Chiudi questo tab. + + + Close tab + Chiudi tab + + + + TabWidget + + Feeds + Feed + + + Browse your feeds and messages + Sfoglia i tuoi feed e i messaggi + + + Web browser + Web browser default tab title. + Web browser + + + Displays main menu. + Visualizza menu principale + + + Main menu + Menu principale + + + Open new web browser tab. + + + + + ToolBarEditor + + Dialog + Dialogo + + + Activated actions + Azioni attivate + + + Available actions + Azioni disponibili + + + Insert separator + Inserisci separatore + + + Insert spacer + Inserisci spaziatore + + + Separator + Separatore + + + Toolbar spacer + Spaziatore toolbar + + + + TrayIconMenu + + Close opened modal dialogs first. + + + + + WebBrowser + + Navigation panel + Pannello di navigazione + + + Back + Indietro + + + Forward + Avanti + + + Reload + Ricarica + + + Stop + Ferma + + + Zoom + Zoom + + + No title + Webbrowser tab title when no title is available. + Nessun titolo + + + Decrease zoom. + Diminuisci zoom. + + + Reset zoom to default. + Reimposta zoom a default. + + + Increase zoom. + Aumenta zoom. + + + Written by + Scritto da + + + uknown author + autore sconosciuto + + + Newspaper view + Modalità giornale + + + Go back. + Torna indietro. + + + Go forward. + Vai avanti. + + + Reload current web page. + Ricarica pagina web corrente. + + + Stop web page loading. + Ferma caricamento pagina web. + + + + WebView + + Reload web page + Ricarica pagina web. + + + Copy link url + Copia url link + + + Copy image + Copia immagine + + + Copy image url + Copia url immagine + + + Open link in new tab + Apri link in un nuovo tab + + + Follow link + Segui link + + + Open image in new tab + Apri immagine in un nuovo tab + + + Page not found + Pagina non trovata + + + Check your internet connection or website address + Controlla la tua connessione internet o l'indirizzo del sito web + + + This failure can be caused by:<br><ul><li>non-functional internet connection,</li><li>incorrect website address,</li><li>bad proxy server settings,</li><li>target destination outage,</li><li>many other things.</li></ul> + + + + Web browser + Web browser + + + Image + Immagine + + + Hyperlink + Hyperlink + + + Error page + Errore pagina + + + Reload current web page. + Ricarica pagina web corrente. + + + Copy selection + Copia seleziona + + + Copies current selection into the clipboard. + + + + Copy link url to clipboard. + + + + Copy image to clipboard. + + + + Copy image url to clipboard. + + + + Open this hyperlink in new tab. + Apri questo hyperlink in un nuovo tab. + + + Open the hyperlink in this tab. + Apri l'hyperlink in questo tab. + + + Open this image in this tab. + Apri questa immagine in questo tab. + + + diff --git a/localization/rssguard-nl_NL.ts b/localization/rssguard-nl_NL.ts index 37ba6c9c6..bb7a0edd4 100644 --- a/localization/rssguard-nl_NL.ts +++ b/localization/rssguard-nl_NL.ts @@ -189,9 +189,6 @@ Status automatisch bijwerken: %5 Cannot edit item - Warning messagebox title when selected item cannot be edited. ----------- -Warning messagebox title when selected item cannot be edited. Kan item niet bewerken @@ -222,15 +219,6 @@ Warning messagebox title when selected item cannot be edited. You cannot update selected items because another feed update is ongoing. Je kan gekozen items niet bijwerken omdat feeds aan het updaten zijn. - - Scheduled update started - Geplande update begint - - - %1 is performing scheduled update of some feeds. - RSS Guard is performing updates right now. - %1 is geplande updates van sommige feeds aan het uitvoeren. - FormAbout @@ -416,6 +404,13 @@ Warning messagebox title when selected item cannot be edited. Gebruik standaard pictogram + + FormExport + + Dialog + + + FormFeedDetails @@ -1006,6 +1001,22 @@ Warning messagebox title when selected item cannot be edited. &Feed/message list headers &Feed/bericht kopteksten + + &Import feeds + + + + Imports feeds you want from selected file. + + + + &Export feeds + + + + Imports feeds you want to selected file. + + FormSettings @@ -1124,10 +1135,6 @@ Language column of language list. Http Http - - Do you want to restart now? - Wil je nu herstarten? - (not supported on this platform) (Platform wordt niet ondersteunt) @@ -1210,22 +1217,10 @@ Language column of language list. Hide tab bar if just one tab is visible Verberg tabblad als alleen een tabblad zichtbaar is - - Some critical settings were changed and will be applied after the application gets restarted. - Sommige kritieke instellingen zijn veranderd en worden van kracht als het programma wordt herstart. - Critical settings were changed Kritieke instellingen zijn veranderd - - Problem with application restart - Probleem met programma herstart - - - Application couldn't be restarted. Please, restart it manually for changes to take effect. - Programma kan niet worden herstart. Herstart het handmatig zodat de veranderingen worden doorgevoerd. - Feeds & messages Feeds & berichten @@ -1580,6 +1575,12 @@ Auteurs van Rssguard zijn NIET verantwoordelijk voor verlies van gegevens.Select toolbar to edit + + Some critical settings were changed and will be applied after the application gets restarted. + +You have to restart manually. + + FormUpdate @@ -2039,10 +2040,6 @@ Ga naar RRSguard website en download het handmatig. ToolBarEditor - - Dialog - - Activated actions diff --git a/resources/graphics/icons/mini-kfaenza/it_IT.png b/resources/graphics/icons/mini-kfaenza/it_IT.png new file mode 100644 index 0000000000000000000000000000000000000000..ea0b791b5d8dc5298dcfd236303edb3a37ff5466 GIT binary patch literal 1426 zcmV;D1#S9?P)9O&Mo4(zuQcz#GvHuhz+>Ry;H-y<32%XT01P}Zu+{+!tuR1`r zIq;kBeDBep{r>NNcUXXz2!8tAA95c@0)c^dc*D&x1H*800A9a-{iFcC z@sm%H#)T5~KoWU>L=gy)DH0(G+_A%fU;p@1fR_ufAn~_%|KN-4Bv}uYr*(ww`hDBo zA3wjiCn#sfF{SO8BY+X}vH+0q=eK|7E{}vIm}73kX~S;d_-glm`RkPcbUL4$4+*)W z7YA|#xQwT`>-W6Pd%{%CXF1P+3^xiQ@9wVN7aGv2V^tvucaVtj+_HY4XOKz)VKU6> zLBmE-Z)3`M;1`v%HPc9-te`VCp9X}gNfHqXOpfJfX8g8182OO@o8uY{oH@XiA~jb) z5K4MRL1;vZ3^T2Sdz%VGd}#nH{x_CF5J9r*fy^W%f~o)mI)>e}0D75^m3ZZ3Lo)myjJ)nu~GzTGJ5#>(A^(GDlkx6)N z(gGj+KjhG*q&D22CN=DAkm;-sOeN%2`LJ7$JyZ04*%<3kQt;X8tr|jMpI-2NfN3_Tq@Ltu+xc- zSc7^$b3w{UI-l;%w=#1GIe{Cx*2Jrn2rCG!52L8;`e{QOSUSu4W1%!l2~7ebr>0$} zabyyJ4$JoBX&=ZOTBu{RVxI(Bb#bkgtK+_kz$V6@fEi;5v z+#i{A#w2EBJsnJtC)k*2JAXO|Y@u zRJN;4{FMTV*iq=T#8a!|X{Aik1I4LtHVCDv0%=8AN~5;P;rM!VgUDKTrV7lJ_$pPI z=YS}ioQ_kZ=K^6pJ~p z+DpFPoTW9EWx>4>)RL2cy#7Ft+dI_b@raM*Xa3n&A$N<*2EDI+T(2^lgBfmCtabWidget()->feedMessageViewer()->feedsView()->notifyWithCounts(); } + + qDebug("Showing tray icon."); } void Application::deleteTrayIcon() { if (m_trayIcon != NULL) { - qDebug("Disabling tray icon and raising main application window."); + qDebug("Disabling tray icon, deleting it and raising main application window."); m_mainForm->display(); delete m_trayIcon; @@ -66,13 +68,12 @@ void Application::deleteTrayIcon() { void Application::showGuiMessage(const QString& title, const QString& message, QSystemTrayIcon::MessageIcon message_type, - QWidget* parent, int duration) { + QWidget *parent, int duration) { if (SystemTrayIcon::isSystemTrayActivated()) { trayIcon()->showMessage(title, message, message_type, duration); } else { // TODO: Tray icon or OSD is not available, display simple text box. - MessageBox::show(parent, (QMessageBox::Icon) message_type, - title, message); + MessageBox::show(parent, (QMessageBox::Icon) message_type, title, message); } } diff --git a/src/application.h b/src/application.h index 6da4905c4..234aba7b1 100644 --- a/src/application.h +++ b/src/application.h @@ -22,6 +22,7 @@ #include "definitions/definitions.h" #include "miscellaneous/settings.h" +#include "miscellaneous/systemfactory.h" #include "gui/systemtrayicon.h" #include @@ -45,6 +46,14 @@ class Application : public QtSingleApplication { explicit Application(const QString &id, int &argc, char **argv); virtual ~Application(); + inline SystemFactory *system() { + if (m_system == NULL) { + m_system = new SystemFactory(this); + } + + return m_system; + } + inline Settings *settings() { if (m_settings == NULL) { m_settings = Settings::setupSettings(this); @@ -73,15 +82,14 @@ class Application : public QtSingleApplication { // Access to application tray icon. Always use this in cooperation with // SystemTrayIcon::isSystemTrayActivated(). SystemTrayIcon *trayIcon(); + void showTrayIcon(); void deleteTrayIcon(); // Displays given simple message in tray icon bubble or OSD // or in message box if tray icon is disabled. - void showGuiMessage(const QString &title, const QString &message, - QSystemTrayIcon::MessageIcon message_type, - QWidget *parent = NULL, - int duration = TRAY_ICON_BUBBLE_TIMEOUT); + void showGuiMessage(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon message_type, + QWidget *parent = NULL, int duration = TRAY_ICON_BUBBLE_TIMEOUT); // Returns pointer to "GOD" application singleton. inline static Application *instance() { @@ -105,6 +113,7 @@ class Application : public QtSingleApplication { FormMain *m_mainForm; SystemTrayIcon *m_trayIcon; Settings *m_settings; + SystemFactory *m_system; }; #endif // APPLICATION_H diff --git a/src/core/feeddownloader.cpp b/src/core/feeddownloader.cpp index 9a3330e04..c9077bbb4 100644 --- a/src/core/feeddownloader.cpp +++ b/src/core/feeddownloader.cpp @@ -31,8 +31,7 @@ FeedDownloader::~FeedDownloader() { } void FeedDownloader::updateFeeds(const QList &feeds) { - qDebug().nospace() << "Performing feed updates in thread: \'" << - QThread::currentThreadId() << "\'."; + qDebug().nospace() << "Performing feed updates in thread: \'" << QThread::currentThreadId() << "\'."; // Job starts now. emit started(); @@ -40,14 +39,12 @@ void FeedDownloader::updateFeeds(const QList &feeds) { for (int i = 0, total = feeds.size(); i < total; i++) { feeds.at(i)->update(); - qDebug("Made progress in feed updates: %d/%d (id of feed is %d).", - i + 1, total, feeds.at(i)->id()); + qDebug("Made progress in feed updates: %d/%d (id of feed is %d).", i + 1, total, feeds.at(i)->id()); emit progress(feeds.at(i), i + 1, total); } - qDebug().nospace() << "Finished feed updates in thread: \'" << - QThread::currentThreadId() << "\'."; + qDebug().nospace() << "Finished feed updates in thread: \'" << QThread::currentThreadId() << "\'."; // Update of feeds has finished. // NOTE: This means that now "update lock" can be unlocked diff --git a/src/core/feedsmodel.h b/src/core/feedsmodel.h index a8fe8b1c0..65d54545b 100644 --- a/src/core/feedsmodel.h +++ b/src/core/feedsmodel.h @@ -43,10 +43,8 @@ class FeedsModel : public QAbstractItemModel { explicit FeedsModel(QObject *parent = 0); virtual ~FeedsModel(); - // Returns list of all indexes available - // in the model. - // NOTE: Overriden because original method - // is protected. + // Returns list of all indexes available in the model. + // NOTE: Overriden because original method is protected. QModelIndexList persistentIndexList() const; // Model implementation. @@ -61,7 +59,7 @@ class FeedsModel : public QAbstractItemModel { int columnCount(const QModelIndex &parent) const; int rowCount(const QModelIndex &parent) const; - // Returns couns of ALL/UNREAD (non-deleted) messages for the model. + // Returns counts of ALL/UNREAD (non-deleted) messages for the model. inline int countOfAllMessages() const { return m_rootItem->countOfAllMessages(); } @@ -74,20 +72,16 @@ class FeedsModel : public QAbstractItemModel { bool removeItem(const QModelIndex &index); // Standard category manipulators. - bool addCategory(FeedsModelCategory *category, - FeedsModelRootItem *parent); - bool editCategory(FeedsModelCategory *original_category, - FeedsModelCategory *new_category); + bool addCategory(FeedsModelCategory *category, FeedsModelRootItem *parent); + bool editCategory(FeedsModelCategory *original_category, FeedsModelCategory *new_category); // Standard feed manipulators. - bool addFeed(FeedsModelFeed *feed, - FeedsModelRootItem *parent); + bool addFeed(FeedsModelFeed *feed, FeedsModelRootItem *parent); // New feed is just temporary feed, it is not added to the model. // It is used to fetch its data to the original feed // and the original feed is moved if needed. - bool editFeed(FeedsModelFeed *original_feed, - FeedsModelFeed *new_feed); + bool editFeed(FeedsModelFeed *original_feed, FeedsModelFeed *new_feed); // Returns the list of updates which should be updated // according to auto-update schedule. diff --git a/src/gui/formsettings.cpp b/src/gui/formsettings.cpp index 314b06df4..e731e4754 100755 --- a/src/gui/formsettings.cpp +++ b/src/gui/formsettings.cpp @@ -277,40 +277,16 @@ void FormSettings::loadWebBrowserColor(const QColor &color) { void FormSettings::promptForRestart() { if (m_changedDataTexts.count() > 0) { - QStringList changed_data_texts = m_changedDataTexts; + QStringList changed_settings_description = m_changedDataTexts.replaceInStrings(QRegExp("^"), QString::fromUtf8(" • ")); - changed_data_texts.replaceInStrings(QRegExp("^"), - QString::fromUtf8(" • ")); - - int question_result = MessageBox::show(this, - QMessageBox::Question, - tr("Critical settings were changed"), - tr("Some critical settings were changed and will be applied after the application gets restarted."), - tr("Do you want to restart now?"), - tr("List of changes:\n%1.").arg(changed_data_texts.join(",\n")), - QMessageBox::Yes | QMessageBox::No, - QMessageBox::Yes); - - if (question_result == QMessageBox::Yes) { - if (!QProcess::startDetached(qApp->applicationFilePath())) { - if (SystemTrayIcon::isSystemTrayActivated()) { - qApp->trayIcon()->showMessage(tr("Problem with application restart"), - tr("Application couldn't be restarted. " - "Please, restart it manually for changes to take effect."), - QSystemTrayIcon::Warning); - } - else { - MessageBox::show(this, - QMessageBox::Warning, - tr("Problem with application restart"), - tr("Application couldn't be restarted. " - "Please, restart it manually for changes to take effect.")); - } - } - else { - qApp->quit(); - } - } + MessageBox::show(this, + QMessageBox::Question, + tr("Critical settings were changed"), + tr("Some critical settings were changed and will be applied after the application gets restarted. " + "\n\nYou have to restart manually."), + QString(), + tr("List of changes:\n%1.").arg(changed_settings_description .join(",\n")), + QMessageBox::Ok, QMessageBox::Ok); } } @@ -647,7 +623,7 @@ void FormSettings::loadGeneral() { m_ui->m_checkAutostart->setText(m_ui->m_checkAutostart->text().arg(APP_NAME)); // Load auto-start status. - SystemFactory::AutoStartStatus autostart_status = SystemFactory::instance()->getAutoStartStatus(); + SystemFactory::AutoStartStatus autostart_status = qApp->system()->getAutoStartStatus(); switch (autostart_status) { case SystemFactory::Enabled: m_ui->m_checkAutostart->setChecked(true); @@ -667,10 +643,10 @@ void FormSettings::saveGeneral() { // If auto-start feature is available and user wants // to turn it on, then turn it on. if (m_ui->m_checkAutostart->isChecked()) { - SystemFactory::instance()->setAutoStartStatus(SystemFactory::Enabled); + qApp->system()->setAutoStartStatus(SystemFactory::Enabled); } else { - SystemFactory::instance()->setAutoStartStatus(SystemFactory::Disabled); + qApp->system()->setAutoStartStatus(SystemFactory::Disabled); } } diff --git a/src/gui/formupdate.cpp b/src/gui/formupdate.cpp index 844067a95..1eb32cd60 100755 --- a/src/gui/formupdate.cpp +++ b/src/gui/formupdate.cpp @@ -69,7 +69,7 @@ bool FormUpdate::isSelfUpdateSupported() const { } void FormUpdate::checkForUpdates() { - QPair update = SystemFactory::instance()->checkForUpdates(); + QPair update = qApp->system()->checkForUpdates(); m_updateInfo = update.first; diff --git a/src/miscellaneous/systemfactory.cpp b/src/miscellaneous/systemfactory.cpp index 1d7151ab1..5839b992f 100644 --- a/src/miscellaneous/systemfactory.cpp +++ b/src/miscellaneous/systemfactory.cpp @@ -32,8 +32,6 @@ #include -QPointer SystemFactory::s_instance; - SystemFactory::SystemFactory(QObject *parent) : QObject(parent) { } @@ -41,7 +39,6 @@ SystemFactory::~SystemFactory() { qDebug("Destroying SystemFactory instance."); } - SystemFactory::AutoStartStatus SystemFactory::getAutoStartStatus() { // User registry way to auto-start the application on Windows. #if defined(Q_OS_WIN) @@ -109,16 +106,6 @@ QString SystemFactory::getAutostartDesktopFileLocation() { } #endif -SystemFactory *SystemFactory::instance() { - if (s_instance.isNull()) { - s_instance = new SystemFactory(qApp); - } - - return s_instance; -} - - - bool SystemFactory::setAutoStartStatus(const AutoStartStatus &new_status) { SystemFactory::AutoStartStatus current_status = SystemFactory::getAutoStartStatus(); @@ -165,9 +152,7 @@ QPair SystemFactory::checkForUpdates() QPair result; QByteArray releases_xml; - result.second = NetworkFactory::downloadFeedFile(RELEASES_LIST, - 5000, - releases_xml); + result.second = NetworkFactory::downloadFeedFile(RELEASES_LIST, DOWNLOAD_TIMEOUT, releases_xml); if (result.second == QNetworkReply::NoError) { result.first = parseUpdatesFile(releases_xml); diff --git a/src/miscellaneous/systemfactory.h b/src/miscellaneous/systemfactory.h index 7bda41ecb..9a76efffa 100644 --- a/src/miscellaneous/systemfactory.h +++ b/src/miscellaneous/systemfactory.h @@ -43,8 +43,7 @@ class UpdateInfo { Evolution }; - explicit UpdateInfo() { - m_availableVersion = m_changes = ""; + explicit UpdateInfo() : m_availableVersion(QString()), m_changes(QString()) { } QString m_availableVersion; @@ -58,17 +57,7 @@ Q_DECLARE_METATYPE(UpdateInfo) class SystemFactory : public QObject { Q_OBJECT - private: - // Constructors and destructors. - explicit SystemFactory(QObject *parent = 0); - - // Performs parsing of downloaded file with list of updates. - UpdateInfo parseUpdatesFile(const QByteArray &updates_file); - public: - // Constructors and destructors. - virtual ~SystemFactory(); - // Specifies possible states of auto-start functionality. enum AutoStartStatus { Enabled, @@ -76,6 +65,12 @@ class SystemFactory : public QObject { Unavailable }; + // Constructors and destructors. + explicit SystemFactory(QObject *parent = 0); + + // Constructors and destructors. + virtual ~SystemFactory(); + // Returns current status of auto-start function. SystemFactory::AutoStartStatus getAutoStartStatus(); @@ -93,11 +88,9 @@ class SystemFactory : public QObject { // Tries to download list with new updates. QPair checkForUpdates(); - // Singleton getter. - static SystemFactory *instance(); - private: - static QPointer s_instance; + // Performs parsing of downloaded file with list of updates. + UpdateInfo parseUpdatesFile(const QByteArray &updates_file); }; #endif // SYSTEMFACTORY_H diff --git a/src/miscellaneous/textfactory.cpp b/src/miscellaneous/textfactory.cpp index 0848e7614..c49671465 100644 --- a/src/miscellaneous/textfactory.cpp +++ b/src/miscellaneous/textfactory.cpp @@ -28,25 +28,23 @@ TextFactory::TextFactory() { } QDateTime TextFactory::parseDateTime(const QString &date_time) { - QString date = date_time.simplified(); - QStringList date_patterns; - QStringList timezone_offset_patterns; + QString input_date = date_time.simplified(); QDateTime dt; QTime time_zone_offset; QLocale locale(QLocale::C); bool positive_time_zone_offset = false; - date_patterns << "yyyy-MM-ddTHH:mm:ss" << "MMM dd yyyy hh:mm:ss" << - "MMM d yyyy hh:mm:ss" << "ddd, dd MMM yyyy HH:mm:ss" << - "dd MMM yyyy" << "yyyy-MM-dd HH:mm:ss.z" << "yyyy-MM-dd" << - "yyyy" << "yyyy-MM" << "yyyy-MM-dd" << "yyyy-MM-ddThh:mm" << - "yyyy-MM-ddThh:mm:ss"; + QStringList date_patterns; date_patterns << "yyyy-MM-ddTHH:mm:ss" << "MMM dd yyyy hh:mm:ss" << + "MMM d yyyy hh:mm:ss" << "ddd, dd MMM yyyy HH:mm:ss" << + "dd MMM yyyy" << "yyyy-MM-dd HH:mm:ss.z" << "yyyy-MM-dd" << + "yyyy" << "yyyy-MM" << "yyyy-MM-dd" << "yyyy-MM-ddThh:mm" << + "yyyy-MM-ddThh:mm:ss"; - timezone_offset_patterns << "+hh:mm" << "-hh:mm" << "+hhmm" << "-hhmm" << "+hh" << "-hh"; + QStringList timezone_offset_patterns; timezone_offset_patterns << "+hh:mm" << "-hh:mm" << "+hhmm" << "-hhmm" << "+hh" << "-hh"; - if (date.size() >= TIMEZONE_OFFSET_LIMIT) { + if (input_date.size() >= TIMEZONE_OFFSET_LIMIT) { foreach (const QString &pattern, timezone_offset_patterns) { - time_zone_offset = QTime::fromString(date.right(pattern.size()), pattern); + time_zone_offset = QTime::fromString(input_date.right(pattern.size()), pattern); if (time_zone_offset.isValid()) { positive_time_zone_offset = pattern.at(0) == '+'; @@ -57,7 +55,7 @@ QDateTime TextFactory::parseDateTime(const QString &date_time) { // Iterate over patterns and check if input date/time matches the pattern. foreach (const QString &pattern, date_patterns) { - dt = locale.toDateTime(date.left(pattern.size()), pattern); + dt = locale.toDateTime(input_date.left(pattern.size()), pattern); if (dt.isValid()) { // Make sure that this date/time is considered UTC. diff --git a/src/miscellaneous/textfactory.h b/src/miscellaneous/textfactory.h index 7a94b1e6f..36e7ae85a 100644 --- a/src/miscellaneous/textfactory.h +++ b/src/miscellaneous/textfactory.h @@ -21,7 +21,6 @@ #include "definitions/definitions.h" #include -#include class TextFactory { @@ -30,6 +29,7 @@ class TextFactory { explicit TextFactory(); public: + // Returns true if lhs is smaller than rhs if case-insensitive string comparison is used. static inline bool isCaseInsensitiveLessThan(const QString &lhs, const QString &rhs) { return lhs.toLower() < rhs.toLower(); }