This commit is contained in:
Martin Rotter 2025-02-28 11:37:50 +01:00
parent f0660c9a5f
commit 4ea839b7d4
25 changed files with 328 additions and 246 deletions

View file

@ -1759,12 +1759,12 @@ QtWebEngine cache folder -&gt; &quot;%7&quot;</source>
<translation>Backup was created successfully.</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formbackupdatabasesettings.cpp" line="92"/>
<location filename="../src/librssguard/gui/dialogs/formbackupdatabasesettings.cpp" line="91"/>
<source>Backup name cannot be empty.</source>
<translation>Backup name cannot be empty.</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formbackupdatabasesettings.cpp" line="95"/>
<location filename="../src/librssguard/gui/dialogs/formbackupdatabasesettings.cpp" line="94"/>
<source>Backup name looks okay.</source>
<translation>Backup name looks okay.</translation>
</message>
@ -1784,7 +1784,7 @@ QtWebEngine cache folder -&gt; &quot;%7&quot;</source>
<translation>Select destination directory</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formbackupdatabasesettings.cpp" line="86"/>
<location filename="../src/librssguard/gui/dialogs/formbackupdatabasesettings.cpp" line="85"/>
<source>Good destination directory is specified.</source>
<translation>Good destination directory is specified.</translation>
</message>
@ -2378,27 +2378,27 @@ QtWebEngine cache folder -&gt; &quot;%7&quot;</source>
<context>
<name>FormMain</name>
<message>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="417"/>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="416"/>
<source>No possible actions</source>
<translation>No possible actions</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="376"/>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="375"/>
<source>No recycle bin</source>
<translation>No recycle bin</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="64"/>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="63"/>
<source>Main menu</source>
<translation type="unfinished">Main menu</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="77"/>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="76"/>
<source>Open main menu</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="85"/>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="84"/>
<source>Open &amp;main menu</source>
<translation type="unfinished"></translation>
</message>
@ -2914,7 +2914,7 @@ QtWebEngine cache folder -&gt; &quot;%7&quot;</source>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formmain.ui" line="745"/>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="322"/>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="321"/>
<location filename="../build/Desktop_Qt_6_8_0_MSVC2022_64bit-Debug/src/librssguard/ui_formmain.h" line="780"/>
<source>Add new category</source>
<translation>Add new category</translation>
@ -3149,48 +3149,48 @@ QtWebEngine cache folder -&gt; &quot;%7&quot;</source>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formmain.ui" line="740"/>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="332"/>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="331"/>
<location filename="../build/Desktop_Qt_6_8_0_MSVC2022_64bit-Debug/src/librssguard/ui_formmain.h" line="779"/>
<source>Add new feed</source>
<translation>Add new feed</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="383"/>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="382"/>
<source>No actions possible</source>
<translation>No actions possible</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="153"/>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="152"/>
<source>Cannot cleanup database</source>
<translation type="unfinished">Cannot cleanup database</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="154"/>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="153"/>
<source>Cannot cleanup database, because another critical action is running.</source>
<translation type="unfinished">Cannot cleanup database, because another critical action is running.</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="475"/>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="474"/>
<source>Play in media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="476"/>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="475"/>
<source>(not supported)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="542"/>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="541"/>
<source>Close opened modal dialogs first.</source>
<translation type="unfinished">Close opened modal dialogs first.</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="452"/>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="451"/>
<source>Fetching common data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="541"/>
<location filename="../src/librssguard/gui/dialogs/formmain.cpp" line="540"/>
<source>Close dialogs</source>
<translation type="unfinished"></translation>
</message>
@ -3461,38 +3461,38 @@ QtWebEngine cache folder -&gt; &quot;%7&quot;</source>
<context>
<name>FormRestoreDatabaseSettings</name>
<message>
<location filename="../src/librssguard/gui/dialogs/formrestoredatabasesettings.cpp" line="14"/>
<location filename="../src/librssguard/gui/dialogs/formrestoredatabasesettings.cpp" line="15"/>
<location filename="../src/librssguard/gui/dialogs/formrestoredatabasesettings.cpp" line="16"/>
<source>No operation executed yet.</source>
<translation>No operation executed yet.</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formrestoredatabasesettings.cpp" line="54"/>
<location filename="../src/librssguard/gui/dialogs/formrestoredatabasesettings.cpp" line="53"/>
<source>Restoration was initiated. Restart to proceed.</source>
<translation>Restoration was initiated. Restart to proceed.</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formrestoredatabasesettings.cpp" line="55"/>
<location filename="../src/librssguard/gui/dialogs/formrestoredatabasesettings.cpp" line="54"/>
<source>You need to restart application for restoration process to finish.</source>
<translation>You need to restart application for restoration process to finish.</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formrestoredatabasesettings.cpp" line="60"/>
<location filename="../src/librssguard/gui/dialogs/formrestoredatabasesettings.cpp" line="59"/>
<source>Database and/or settings were not copied to restoration directory successully.</source>
<translation>Database and/or settings were not copied to restoration directory successully.</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formrestoredatabasesettings.cpp" line="79"/>
<location filename="../src/librssguard/gui/dialogs/formrestoredatabasesettings.cpp" line="78"/>
<source>Select source directory</source>
<translation>Select source directory</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formrestoredatabasesettings.cpp" line="85"/>
<location filename="../src/librssguard/gui/dialogs/formrestoredatabasesettings.cpp" line="86"/>
<source>Good source directory is specified.</source>
<translation>Good source directory is specified.</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formrestoredatabasesettings.cpp" line="13"/>
<location filename="../src/librssguard/gui/dialogs/formrestoredatabasesettings.cpp" line="12"/>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
@ -3584,22 +3584,22 @@ You have to restart manually.</source>
<context>
<name>FormStandardFeedDetails</name>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardfeeddetails.cpp" line="32"/>
<location filename="../src/librssguard-standard/src/gui/formstandardfeeddetails.cpp" line="31"/>
<source>General</source>
<translation type="unfinished">General</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardfeeddetails.cpp" line="33"/>
<location filename="../src/librssguard-standard/src/gui/formstandardfeeddetails.cpp" line="32"/>
<source>HTTP headers</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardfeeddetails.cpp" line="34"/>
<location filename="../src/librssguard-standard/src/gui/formstandardfeeddetails.cpp" line="33"/>
<source>Auth</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardfeeddetails.cpp" line="35"/>
<location filename="../src/librssguard-standard/src/gui/formstandardfeeddetails.cpp" line="34"/>
<source>Experimental</source>
<translation type="unfinished"></translation>
</message>
@ -3607,145 +3607,145 @@ You have to restart manually.</source>
<context>
<name>FormStandardImportExport</name>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="34"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="35"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="36"/>
<source>No file is selected.</source>
<translation>No file is selected.</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="38"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="39"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="40"/>
<source>No operation executed yet.</source>
<translation>No operation executed yet.</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="70"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="71"/>
<source>Destination file</source>
<translation>Destination file</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="71"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="72"/>
<source>Source feeds &amp;&amp; categories</source>
<translation>Source feeds &amp;&amp; categories</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="73"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="74"/>
<source>Export feeds</source>
<translation>Export feeds</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="81"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="82"/>
<source>Source file</source>
<translation>Source file</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="82"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="83"/>
<source>Target feeds &amp;&amp; categories</source>
<translation>Target feeds &amp;&amp; categories</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="89"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="90"/>
<source>Import feeds</source>
<translation>Import feeds</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="155"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="156"/>
<source>Command is ok.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="158"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="159"/>
<source>Command is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="178"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="179"/>
<source>Select file for feeds export</source>
<translation>Select file for feeds export</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="203"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="239"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="204"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="241"/>
<source>File is selected.</source>
<translation>File is selected.</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="222"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="223"/>
<source>Select file for feeds import</source>
<translation>Select file for feeds import</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="136"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="137"/>
<source>Feeds were loaded.</source>
<translation>Feeds were loaded.</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="28"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="29"/>
<source>Full command to execute</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="29"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="30"/>
<source>You can enter full command including interpreter here.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="31"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="32"/>
<source>Here you can enter script executaion line, including interpreter.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="132"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="133"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="134"/>
<source>Some feeds were not loaded properly. Check log for more information.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="274"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="276"/>
<source>cannot open file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="333"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="334"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="335"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="336"/>
<source>Feeds were exported successfully.</source>
<translation>Feeds were exported successfully.</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="344"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="345"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="346"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="347"/>
<source>Critical error occurred.</source>
<translation>Critical error occurred.</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="116"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="117"/>
<source>Parsing data...</source>
<translation>Parsing data...</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="167"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="212"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="168"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="213"/>
<source>OPML 2.0 files (*.opml *.xml)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="338"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="340"/>
<source>Cannot write into destination file: &apos;%1&apos;.</source>
<translation>Cannot write into destination file: &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="168"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="213"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="169"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="214"/>
<source>TXT files [one URL per line] (*.txt)</source>
<translation>TXT files [one URL per line] (*.txt)</translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="72"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="73"/>
<source>&amp;Export to file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="84"/>
<location filename="../src/librssguard-standard/src/gui/formstandardimportexport.cpp" line="85"/>
<source>&amp;Import from file</source>
<translation type="unfinished"></translation>
</message>
@ -4256,48 +4256,48 @@ You can install it now.</source>
<context>
<name>GmailServiceRoot</name>
<message>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="43"/>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="41"/>
<source>Inbox</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="52"/>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="50"/>
<source>Sent</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="53"/>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="51"/>
<source>Drafts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="57"/>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="55"/>
<source>Spam</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="135"/>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="133"/>
<source>Reply to this e-mail message</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="223"/>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="221"/>
<source>Authentication status: %1
Login tokens expiration: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="225"/>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="223"/>
<source>logged-in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="225"/>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="223"/>
<source>NOT logged-in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="151"/>
<location filename="../src/librssguard-gmail/src/gmailserviceroot.cpp" line="149"/>
<source>Write new e-mail message</source>
<translation type="unfinished"></translation>
</message>
@ -4622,75 +4622,75 @@ Login tokens expiration: %2</source>
<context>
<name>GreaderServiceRoot</name>
<message>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="157"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="158"/>
<source>Other services</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="162"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="192"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="163"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="195"/>
<source>OPML 2.0 files (*.opml *.xml)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="164"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="165"/>
<source>Select file for feeds import</source>
<translation type="unfinished">Select file for feeds import</translation>
</message>
<message>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="176"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="204"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="179"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="207"/>
<source>Done</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="177"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="180"/>
<source>Data imported successfully. Reloading feed tree.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="184"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="187"/>
<source>Cannot import feeds</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="185"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="210"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="188"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="213"/>
<source>Error: %1</source>
<translation type="unfinished">Error: %1</translation>
</message>
<message>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="194"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="197"/>
<source>Select file for feeds export</source>
<translation type="unfinished">Select file for feeds export</translation>
</message>
<message>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="204"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="207"/>
<source>Data exported successfully.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="209"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="212"/>
<source>Cannot export feeds</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="266"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="269"/>
<source>Export feeds</source>
<translation type="unfinished">Export feeds</translation>
</message>
<message>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="267"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="270"/>
<source>Import feeds</source>
<translation type="unfinished">Import feeds</translation>
</message>
<message>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="367"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="370"/>
<source>Cannot add item</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="368"/>
<location filename="../src/librssguard-greader/src/greaderserviceroot.cpp" line="371"/>
<source>Cannot add feed because another critical operation is ongoing.</source>
<translation type="unfinished"></translation>
</message>
@ -6879,18 +6879,18 @@ List of supported readers:</source>
<context>
<name>RedditServiceRoot</name>
<message>
<location filename="../src/librssguard-reddit/src/redditserviceroot.cpp" line="132"/>
<location filename="../src/librssguard-reddit/src/redditserviceroot.cpp" line="130"/>
<source>Authentication status: %1
Login tokens expiration: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-reddit/src/redditserviceroot.cpp" line="134"/>
<location filename="../src/librssguard-reddit/src/redditserviceroot.cpp" line="132"/>
<source>logged-in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-reddit/src/redditserviceroot.cpp" line="134"/>
<location filename="../src/librssguard-reddit/src/redditserviceroot.cpp" line="132"/>
<source>NOT logged-in</source>
<translation type="unfinished"></translation>
</message>
@ -7079,7 +7079,7 @@ File filter for external e-mail selection dialog.</extracomment>
<translation type="unfinished">Opera 12 or older</translation>
</message>
<message>
<location filename="../src/librssguard/gui/settings/settingsbrowsermail.cpp" line="320"/>
<location filename="../src/librssguard/gui/settings/settingsbrowsermail.cpp" line="322"/>
<source>Enter (optional) parameters:</source>
<translation type="unfinished"></translation>
</message>
@ -7284,7 +7284,7 @@ File filter for external e-mail selection dialog.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard/gui/settings/settingsbrowsermail.cpp" line="319"/>
<location filename="../src/librssguard/gui/settings/settingsbrowsermail.cpp" line="321"/>
<source>Enter parameters</source>
<translation type="unfinished"></translation>
</message>
@ -7448,7 +7448,7 @@ Authors of this application are NOT responsible for lost data.</source>
<context>
<name>SettingsDownloads</name>
<message>
<location filename="../src/librssguard/gui/settings/settingsdownloads.cpp" line="34"/>
<location filename="../src/librssguard/gui/settings/settingsdownloads.cpp" line="33"/>
<source>Select downloads target directory</source>
<translation type="unfinished">Select downloads target directory</translation>
</message>
@ -9060,24 +9060,24 @@ Also, you can post-process generated feed data with yet another script if you wi
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/standardfeedexpdetails.cpp" line="26"/>
<location filename="../src/librssguard-standard/src/gui/standardfeedexpdetails.cpp" line="25"/>
<source>Turning this setting ON might bring considerable performance boost when fetching this feed, but only in some very specific conditions.
This setting is useful when raw XML parsing of the feed is very slow, this happens for feed which do have very long contents.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/standardfeedexpdetails.cpp" line="32"/>
<location filename="../src/librssguard-standard/src/gui/standardfeedexpdetails.cpp" line="31"/>
<source>Use application settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/standardfeedexpdetails.cpp" line="34"/>
<location filename="../src/librssguard-standard/src/gui/standardfeedexpdetails.cpp" line="33"/>
<source>Enabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/librssguard-standard/src/gui/standardfeedexpdetails.cpp" line="35"/>
<location filename="../src/librssguard-standard/src/gui/standardfeedexpdetails.cpp" line="34"/>
<source>Disabled</source>
<translation type="unfinished"></translation>
</message>

View file

@ -28,6 +28,7 @@
#include "src/3rd-party/richtexteditor/mrichtextedit.h"
#include <librssguard/definitions/definitions.h>
#include <librssguard/gui/dialogs/filedialog.h>
#include <librssguard/miscellaneous/application.h>
#include <librssguard/miscellaneous/iconfactory.h>
@ -36,7 +37,6 @@
#include <QClipboard>
#include <QColorDialog>
#include <QDialog>
#include <QFileDialog>
#include <QFontDatabase>
#include <QImageReader>
#include <QInputDialog>
@ -635,10 +635,12 @@ void MRichTextEdit::setText(const QString& text) {
void MRichTextEdit::insertImage() {
QSettings s;
QString attdir = s.value("general/filedialog-path").toString();
QString file = QFileDialog::getOpenFileName(this,
tr("Select an image"),
attdir,
tr("JPEG (*.jpg);; GIF (*.gif);; PNG (*.png);; BMP (*.bmp);; All (*)"));
QString file = FileDialog::openFileName(this,
tr("Select an image"),
attdir,
tr("JPEG (*.jpg);; GIF (*.gif);; PNG (*.png);; BMP (*.bmp);; All (*)"),
nullptr,
GENERAL_REMEMBERED_PATH);
QImage image = QImageReader(file).read();
m_ui.f_textedit->dropImage(image, QFileInfo(file).suffix().toUpper().toLocal8Bit().data());

View file

@ -16,8 +16,6 @@
#include <librssguard/network-web/oauth2service.h>
#include <librssguard/services/abstract/labelsnode.h>
#include <QFileDialog>
GmailServiceRoot::GmailServiceRoot(RootItem* parent)
: ServiceRoot(parent), m_network(new GmailNetworkFactory(this)), m_actionReply(nullptr) {
m_network->setService(this);

View file

@ -11,6 +11,7 @@
#include <librssguard/database/databasequeries.h>
#include <librssguard/definitions/definitions.h>
#include <librssguard/gui/dialogs/filedialog.h>
#include <librssguard/gui/messagebox.h>
#include <librssguard/miscellaneous/application.h>
#include <librssguard/miscellaneous/iconfactory.h>
@ -18,8 +19,6 @@
#include <librssguard/miscellaneous/textfactory.h>
#include <librssguard/network-web/oauth2service.h>
#include <QFileDialog>
GreaderServiceRoot::GreaderServiceRoot(RootItem* parent) : ServiceRoot(parent), m_network(new GreaderNetwork(this)) {
setIcon(GreaderEntryPoint().icon());
m_network->setRoot(this);
@ -160,10 +159,12 @@ QString GreaderServiceRoot::serviceToString(Service service) {
void GreaderServiceRoot::importFeeds() {
const QString filter_opml20 = tr("OPML 2.0 files (*.opml *.xml)");
const QString selected_file = QFileDialog::getOpenFileName(qApp->mainFormWidget(),
tr("Select file for feeds import"),
qApp->homeFolder(),
filter_opml20);
const QString selected_file = FileDialog::openFileName(qApp->mainFormWidget(),
tr("Select file for feeds import"),
qApp->homeFolder(),
filter_opml20,
nullptr,
GENERAL_REMEMBERED_PATH);
if (!QFile::exists(selected_file)) {
return;
@ -191,7 +192,7 @@ void GreaderServiceRoot::exportFeeds() {
QSL("rssguard_feeds_%1.opml").arg(QDate::currentDate().toString(Qt::DateFormat::ISODate));
const QString filter_opml20 = tr("OPML 2.0 files (*.opml *.xml)");
const QString selected_file =
QFileDialog::getSaveFileName(qApp->mainFormWidget(), tr("Select file for feeds export"), the_file, filter_opml20);
FileDialog::saveFileName(qApp->mainFormWidget(), tr("Select file for feeds export"), the_file, filter_opml20);
if (selected_file.isEmpty()) {
return;

View file

@ -11,8 +11,6 @@
#include "src/redditnetworkfactory.h"
#include "src/redditsubscription.h"
#include <QFileDialog>
RedditServiceRoot::RedditServiceRoot(RootItem* parent)
: ServiceRoot(parent), m_network(new RedditNetworkFactory(this)) {
m_network->setService(this);

View file

@ -18,7 +18,6 @@
#include <QComboBox>
#include <QDialogButtonBox>
#include <QFileDialog>
#include <QGroupBox>
#include <QNetworkCookie>

View file

@ -6,12 +6,12 @@
#include "src/standardserviceroot.h"
#include <librssguard/exceptions/ioexception.h>
#include <librssguard/gui/dialogs/filedialog.h>
#include <librssguard/gui/guiutilities.h>
#include <librssguard/miscellaneous/application.h>
#include <librssguard/miscellaneous/iconfactory.h>
#include <librssguard/services/abstract/category.h>
#include <QFileDialog>
#include <QTextStream>
FormStandardImportExport::FormStandardImportExport(StandardServiceRoot* service_root, QWidget* parent)
@ -175,7 +175,7 @@ void FormStandardImportExport::selectExportFile(bool without_dialog) {
filter += QSL(";;");
filter += filter_txt_url_per_line;
selected_file =
QFileDialog::getSaveFileName(this, tr("Select file for feeds export"), the_file, filter, &selected_filter);
FileDialog::saveFileName(this, tr("Select file for feeds export"), the_file, filter, &selected_filter);
}
else {
selected_file = the_file;
@ -218,11 +218,12 @@ void FormStandardImportExport::selectImportFile() {
// Add more filters here.
filter += filter_opml20 + QSL(";;") + filter_txt_url_per_line;
const QString selected_file = QFileDialog::getOpenFileName(this,
tr("Select file for feeds import"),
qApp->homeFolder(),
filter,
&selected_filter);
const QString selected_file = FileDialog::openFileName(this,
tr("Select file for feeds import"),
qApp->homeFolder(),
filter,
&selected_filter,
GENERAL_REMEMBERED_PATH);
if (!selected_file.isEmpty()) {
if (selected_filter == filter_opml20) {

View file

@ -5,9 +5,9 @@
#include "src/standardserviceentrypoint.h"
#include <librssguard/3rd-party/boolinq/boolinq.h>
#include <librssguard/gui/dialogs/filedialog.h>
#include <librssguard/miscellaneous/iconfactory.h>
#include <QFileDialog>
#include <QImageReader>
StandardAccountDetails::StandardAccountDetails(QWidget* parent) : QWidget(parent) {
@ -51,26 +51,15 @@ void StandardAccountDetails::onLoadIconFromFile() {
.toStdList();
QStringList list_formats = FROM_STD_LIST(QStringList, prefixed_formats);
QString fil = FileDialog::openFileName(this,
tr("Select icon file for the account"),
qApp->homeFolder(),
tr("Images (%1)").arg(list_formats.join(QL1C(' '))),
nullptr,
GENERAL_REMEMBERED_PATH);
QFileDialog dialog(this,
tr("Select icon file for the account"),
qApp->homeFolder(),
tr("Images (%1)").arg(list_formats.join(QL1C(' '))));
dialog.setFileMode(QFileDialog::FileMode::ExistingFile);
dialog.setWindowIcon(qApp->icons()->fromTheme(QSL("image-x-generic")));
dialog.setOptions(QFileDialog::Option::DontUseNativeDialog | QFileDialog::Option::ReadOnly);
dialog.setViewMode(QFileDialog::ViewMode::Detail);
dialog.setLabelText(QFileDialog::DialogLabel::Accept, tr("Select icon"));
dialog.setLabelText(QFileDialog::DialogLabel::Reject, tr("Cancel"));
//: Label for field with icon file name textbox for selection dialog.
dialog.setLabelText(QFileDialog::DialogLabel::LookIn, tr("Look in:"));
dialog.setLabelText(QFileDialog::DialogLabel::FileName, tr("Icon name:"));
dialog.setLabelText(QFileDialog::DialogLabel::FileType, tr("Icon type:"));
if (dialog.exec() == QDialog::DialogCode::Accepted) {
m_ui.m_btnIcon->setIcon(QIcon(dialog.selectedFiles().value(0)));
if (!fil.isEmpty()) {
m_ui.m_btnIcon->setIcon(QIcon(fil));
}
}

View file

@ -8,6 +8,7 @@
#include <librssguard/exceptions/applicationexception.h>
#include <librssguard/exceptions/networkexception.h>
#include <librssguard/exceptions/scriptexception.h>
#include <librssguard/gui/dialogs/filedialog.h>
#include <librssguard/miscellaneous/iconfactory.h>
#include <librssguard/miscellaneous/settings.h>
#include <librssguard/miscellaneous/textfactory.h>
@ -15,7 +16,6 @@
#include <librssguard/services/abstract/category.h>
#include <QClipboard>
#include <QFileDialog>
#include <QImageReader>
#include <QInputDialog>
#include <QMenu>
@ -377,26 +377,15 @@ void StandardFeedDetails::onLoadIconFromFile() {
.toStdList();
QStringList list_formats = FROM_STD_LIST(QStringList, prefixed_formats);
QString fil = FileDialog::openFileName(this,
tr("Select icon file for the feed"),
qApp->homeFolder(),
tr("Images (%1)").arg(list_formats.join(QL1C(' '))),
nullptr,
GENERAL_REMEMBERED_PATH);
QFileDialog dialog(this,
tr("Select icon file for the feed"),
qApp->homeFolder(),
tr("Images (%1)").arg(list_formats.join(QL1C(' '))));
dialog.setFileMode(QFileDialog::FileMode::ExistingFile);
dialog.setWindowIcon(qApp->icons()->fromTheme(QSL("image-x-generic")));
dialog.setOptions(QFileDialog::Option::DontUseNativeDialog | QFileDialog::Option::ReadOnly);
dialog.setViewMode(QFileDialog::ViewMode::Detail);
dialog.setLabelText(QFileDialog::DialogLabel::Accept, tr("Select icon"));
dialog.setLabelText(QFileDialog::DialogLabel::Reject, tr("Cancel"));
//: Label for field with icon file name textbox for selection dialog.
dialog.setLabelText(QFileDialog::DialogLabel::LookIn, tr("Look in:"));
dialog.setLabelText(QFileDialog::DialogLabel::FileName, tr("Icon name:"));
dialog.setLabelText(QFileDialog::DialogLabel::FileType, tr("Icon type:"));
if (dialog.exec() == QDialog::DialogCode::Accepted) {
m_ui.m_btnIcon->setIcon(QIcon(dialog.selectedFiles().value(0)));
if (!fil.isEmpty()) {
m_ui.m_btnIcon->setIcon(QIcon(fil));
}
}

View file

@ -13,7 +13,6 @@
#include <librssguard/network-web/networkfactory.h>
#include <librssguard/services/abstract/category.h>
#include <QFileDialog>
#include <QImageReader>
#include <QMenu>
#include <QMimeData>

View file

@ -63,6 +63,8 @@ set(SOURCES
exceptions/processexception.h
exceptions/scriptexception.cpp
exceptions/scriptexception.h
gui/dialogs/filedialog.cpp
gui/dialogs/filedialog.h
gui/dialogs/formabout.cpp
gui/dialogs/formabout.h
gui/dialogs/formaddaccount.cpp

View file

@ -0,0 +1,70 @@
// For license of this file, see <project-root-folder>/LICENSE.md.
#include "gui/dialogs/filedialog.h"
#include "miscellaneous/settings.h"
#include <QFileInfo>
QString FileDialog::existingDirectory(QWidget* parent,
const QString& caption,
const QString& dir,
const QString& id,
QFileDialog::Options options) {
QString initial_dir_file = id.isEmpty() ? dir : qApp->settings()->value(GROUP(FileDialogPaths), id, dir).toString();
QFileInfo initial_dir_file_info(initial_dir_file);
QString fldr = QFileDialog::getExistingDirectory(parent,
caption.isEmpty() ? QObject::tr("Select existing folder") : caption,
initial_dir_file_info.absolutePath(),
options);
if (!fldr.isEmpty() && !id.isEmpty()) {
qApp->settings()->setValue(GROUP(FileDialogPaths), id, fldr);
}
return fldr;
}
QString FileDialog::saveFileName(QWidget* parent,
const QString& caption,
const QString& dir,
const QString& filter,
QString* selected_filter,
const QString& id,
QFileDialog::Options options) {
QString initial_dir_file = id.isEmpty() ? dir : qApp->settings()->value(GROUP(FileDialogPaths), id, dir).toString();
QString file = QFileDialog::getSaveFileName(parent,
caption.isEmpty() ? QObject::tr("Save file") : caption,
initial_dir_file,
filter,
selected_filter,
options);
if (!file.isEmpty() && !id.isEmpty()) {
qApp->settings()->setValue(GROUP(FileDialogPaths), id, QFileInfo(file).absolutePath());
}
return file;
}
QString FileDialog::openFileName(QWidget* parent,
const QString& caption,
const QString& dir,
const QString& filter,
QString* selected_filter,
const QString& id,
QFileDialog::Options options) {
QString initial_dir_file = id.isEmpty() ? dir : qApp->settings()->value(GROUP(FileDialogPaths), id, dir).toString();
QString file = QFileDialog::getOpenFileName(parent,
caption.isEmpty() ? QObject::tr("Select existing file") : caption,
initial_dir_file,
filter,
selected_filter,
options);
if (!file.isEmpty() && !id.isEmpty()) {
qApp->settings()->setValue(GROUP(FileDialogPaths), id, QFileInfo(file).absolutePath());
}
return file;
}

View file

@ -0,0 +1,41 @@
// For license of this file, see <project-root-folder>/LICENSE.md.
#ifndef FILEDIALOG_H
#define FILEDIALOG_H
#include <QFileDialog>
#include <QString>
#define GENERAL_REMEMBERED_PATH QSL("general")
class QWidget;
class RSSGUARD_DLLSPEC FileDialog {
public:
static QString saveFileName(QWidget* parent = nullptr,
const QString& caption = QString(),
const QString& dir = QString(),
const QString& filter = QString(),
QString* selected_filter = nullptr,
const QString& id = QString(),
QFileDialog::Options options = QFileDialog::Options());
static QString existingDirectory(QWidget* parent = nullptr,
const QString& caption = QString(),
const QString& dir = QString(),
const QString& id = QString(),
QFileDialog::Options options = QFileDialog::Option::ShowDirsOnly);
static QString openFileName(QWidget* parent = nullptr,
const QString& caption = QString(),
const QString& dir = QString(),
const QString& filter = QString(),
QString* selected_filter = nullptr,
const QString& id = QString(),
QFileDialog::Options options = QFileDialog::Options());
private:
FileDialog() {}
};
#endif // FILEDIALOG_H

View file

@ -3,6 +3,7 @@
#include "gui/dialogs/formbackupdatabasesettings.h"
#include "exceptions/applicationexception.h"
#include "gui/dialogs/filedialog.h"
#include "gui/guiutilities.h"
#include "miscellaneous/application.h"
#include "miscellaneous/iconfactory.h"
@ -11,7 +12,6 @@
#include <QCheckBox>
#include <QDateTime>
#include <QDialogButtonBox>
#include <QFileDialog>
#include <QPushButton>
FormBackupDatabaseSettings::FormBackupDatabaseSettings(QWidget* parent)
@ -75,9 +75,10 @@ void FormBackupDatabaseSettings::selectFolderInitial() {
void FormBackupDatabaseSettings::selectFolder(QString path) {
if (path.isEmpty()) {
path = QFileDialog::getExistingDirectory(this,
tr("Select destination directory"),
m_ui->m_lblSelectFolder->label()->text());
path = FileDialog::existingDirectory(this,
tr("Select destination directory"),
m_ui->m_lblSelectFolder->label()->text(),
GENERAL_REMEMBERED_PATH);
}
if (!path.isEmpty()) {

View file

@ -36,7 +36,6 @@
#include <QClipboard>
#include <QCloseEvent>
#include <QFileDialog>
#include <QRect>
#include <QScopedPointer>
#include <QTimer>

View file

@ -3,11 +3,10 @@
#include "gui/dialogs/formrestoredatabasesettings.h"
#include "exceptions/applicationexception.h"
#include "gui/dialogs/filedialog.h"
#include "gui/guiutilities.h"
#include "miscellaneous/iconfactory.h"
#include <QFileDialog>
FormRestoreDatabaseSettings::FormRestoreDatabaseSettings(QWidget& parent) : QDialog(&parent), m_shouldRestart(false) {
m_ui.setupUi(this);
m_btnRestart = m_ui.m_buttonBox->addButton(tr("Restart"), QDialogButtonBox::ButtonRole::ActionRole);
@ -75,8 +74,10 @@ void FormRestoreDatabaseSettings::selectFolderWithGui() {
void FormRestoreDatabaseSettings::selectFolder(QString folder) {
if (folder.isEmpty()) {
folder =
QFileDialog::getExistingDirectory(this, tr("Select source directory"), m_ui.m_lblSelectFolder->label()->text());
folder = FileDialog::existingDirectory(this,
tr("Select source directory"),
m_ui.m_lblSelectFolder->label()->text(),
GENERAL_REMEMBERED_PATH);
}
if (!folder.isEmpty()) {

View file

@ -2,11 +2,11 @@
#include "gui/notifications/singlenotificationeditor.h"
#include "gui/dialogs/filedialog.h"
#include "miscellaneous/application.h"
#include "miscellaneous/iconfactory.h"
#include <QCompleter>
#include <QFileDialog>
#include <QFileSystemModel>
SingleNotificationEditor::SingleNotificationEditor(const Notification& notification, QWidget* parent)
@ -44,10 +44,12 @@ Notification SingleNotificationEditor::notification() const {
}
void SingleNotificationEditor::selectSoundFile() {
auto fil = QFileDialog::getOpenFileName(window(),
tr("Select sound file"),
qApp->homeFolder(),
tr("WAV files (*.wav);;MP3 files (*.mp3)"));
auto fil = FileDialog::openFileName(window(),
tr("Select sound file"),
qApp->homeFolder(),
tr("WAV files (*.wav);;MP3 files (*.mp3)"),
nullptr,
GENERAL_REMEMBERED_PATH);
if (!fil.isEmpty()) {
m_ui.m_txtSound->setText(fil);

View file

@ -3,6 +3,7 @@
#include "gui/settings/settingsbrowsermail.h"
#include "exceptions/applicationexception.h"
#include "gui/dialogs/filedialog.h"
#include "gui/reusable/networkproxydetails.h"
#include "miscellaneous/application.h"
#include "miscellaneous/externaltool.h"
@ -12,7 +13,6 @@
#include "network-web/silentnetworkaccessmanager.h"
#include "network-web/webfactory.h"
#include <QFileDialog>
#include <QInputDialog>
#include <QNetworkProxy>
@ -111,15 +111,15 @@ void SettingsBrowserMail::changeDefaultBrowserArguments(int index) {
}
void SettingsBrowserMail::selectBrowserExecutable() {
const QString executable_file = QFileDialog::getOpenFileName(this,
tr("Select web browser executable"),
qApp->homeFolder(),
const QString executable_file = FileDialog::openFileName(this,
tr("Select web browser executable"),
qApp->homeFolder(),
//: File filter for external browser selection dialog.
#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)
tr("Executables (*)"));
tr("Executables (*)"));
#else
tr("Executables (*.*)"));
tr("Executables (*.*)"));
#endif
if (!executable_file.isEmpty()) {
@ -156,15 +156,15 @@ void SettingsBrowserMail::changeDefaultEmailArguments(int index) {
}
void SettingsBrowserMail::selectEmailExecutable() {
QString executable_file = QFileDialog::getOpenFileName(this,
tr("Select e-mail executable"),
qApp->homeFolder(),
QString executable_file = FileDialog::openFileName(this,
tr("Select e-mail executable"),
qApp->homeFolder(),
//: File filter for external e-mail selection dialog.
#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)
tr("Executables (*)"));
tr("Executables (*)"));
#else
tr("Executables (*.*)"));
tr("Executables (*.*)"));
#endif
if (!executable_file.isEmpty()) {
@ -303,14 +303,16 @@ void SettingsBrowserMail::addExternalTool() {
}
ExternalTool SettingsBrowserMail::tweakExternalTool(const ExternalTool& tool) const {
QString executable_file = QFileDialog::getOpenFileName(window(),
tr("Select external tool"),
tool.executable(),
QString executable_file = FileDialog::openFileName(window(),
tr("Select external tool"),
tool.executable(),
#if defined(Q_OS_WIN)
tr("Executables (*.*)"));
tr("Executables (*.*)"),
#else
tr("Executables (*)"));
tr("Executables (*)"),
#endif
nullptr,
GENERAL_REMEMBERED_PATH);
if (!executable_file.isEmpty()) {
executable_file = QDir::toNativeSeparators(executable_file);

View file

@ -2,13 +2,12 @@
#include "gui/settings/settingsdownloads.h"
#include "gui/dialogs/filedialog.h"
#include "miscellaneous/application.h"
#include "miscellaneous/iconfactory.h"
#include "miscellaneous/settings.h"
#include "network-web/downloadmanager.h"
#include <QFileDialog>
SettingsDownloads::SettingsDownloads(Settings* settings, QWidget* parent)
: SettingsPanel(settings, parent), m_ui(new Ui::SettingsDownloads) {
m_ui->setupUi(this);
@ -30,9 +29,9 @@ QIcon SettingsDownloads::icon() const {
}
void SettingsDownloads::selectDownloadsDirectory() {
const QString target_directory = QFileDialog::getExistingDirectory(this,
tr("Select downloads target directory"),
m_ui->m_txtDownloadsTargetDirectory->text());
const QString target_directory = FileDialog::existingDirectory(this,
tr("Select downloads target directory"),
m_ui->m_txtDownloadsTargetDirectory->text());
if (!target_directory.isEmpty()) {
m_ui->m_txtDownloadsTargetDirectory->setText(QDir::toNativeSeparators(target_directory));

View file

@ -7,11 +7,10 @@
#include "miscellaneous/settings.h"
#if defined(ENABLE_MEDIAPLAYER_LIBMPV)
#include "gui/dialogs/filedialog.h"
#include "gui/mediaplayer/libmpv/libmpvbackend.h"
#include <mpv/client.h>
#include <QFileDialog>
#endif
SettingsMediaPlayer::SettingsMediaPlayer(Settings* settings, QWidget* parent) : SettingsPanel(settings, parent) {
@ -65,16 +64,13 @@ void SettingsMediaPlayer::loadSettings() {
#if defined(ENABLE_MEDIAPLAYER_LIBMPV)
void SettingsMediaPlayer::selectMpvConfigFolder() {
QString real_path = qApp->replaceUserDataFolderPlaceholder(m_ui.m_txtMpvConfigFolder->text());
QFileDialog dialog(this, tr("Select folder for your MPV configuration"), real_path);
QString directory = FileDialog::existingDirectory(this,
tr("Select folder for your MPV configuration"),
real_path,
GENERAL_REMEMBERED_PATH);
dialog.setFileMode(QFileDialog::FileMode::Directory);
dialog.setWindowIcon(icon());
dialog.setOptions(QFileDialog::Option::DontUseNativeDialog | QFileDialog::Option::ShowDirsOnly |
QFileDialog::Option::HideNameFilterDetails);
dialog.setViewMode(QFileDialog::ViewMode::Detail);
if (dialog.exec() == QDialog::DialogCode::Accepted && !dialog.selectedFiles().isEmpty()) {
m_ui.m_txtMpvConfigFolder->setText(QDir::toNativeSeparators(dialog.selectedFiles().at(0)));
if (!directory.isEmpty()) {
m_ui.m_txtMpvConfigFolder->setText(QDir::toNativeSeparators(directory));
}
}
#endif

View file

@ -4,13 +4,13 @@
#include "definitions/definitions.h"
#include "exceptions/applicationexception.h"
#include "gui/dialogs/filedialog.h"
#include "miscellaneous/application.h"
#include "miscellaneous/iconfactory.h"
#include "miscellaneous/nodejs.h"
#include "network-web/webfactory.h"
#include <QDir>
#include <QFileDialog>
SettingsNodejs::SettingsNodejs(Settings* settings, QWidget* parent) : SettingsPanel(settings, parent) {
m_ui.setupUi(this);
@ -60,23 +60,18 @@ QIcon SettingsNodejs::icon() const {
}
void SettingsNodejs::changeFileFolder(LineEditWithStatus* tb, bool directory_select, const QString& file_filter) {
QFileDialog d(this);
d.setFileMode(directory_select ? QFileDialog::FileMode::Directory : QFileDialog::FileMode::ExistingFile);
if (directory_select) {
d.setOption(QFileDialog::Option::ShowDirsOnly);
}
else {
d.setNameFilter(file_filter);
}
QString file_dir;
QString current = qApp->replaceUserDataFolderPlaceholder(tb->lineEdit()->text());
d.selectFile(current);
if (directory_select) {
file_dir = FileDialog::existingDirectory(this, {}, current, GENERAL_REMEMBERED_PATH);
}
else {
file_dir = FileDialog::openFileName(this, {}, current, file_filter, {}, GENERAL_REMEMBERED_PATH);
}
if (d.exec() == QDialog::DialogCode::Accepted && !d.selectedFiles().isEmpty()) {
tb->lineEdit()->setText(QDir::toNativeSeparators(d.selectedFiles().at(0)));
if (!file_dir.isEmpty()) {
tb->lineEdit()->setText(QDir::toNativeSeparators(file_dir));
}
}

View file

@ -15,6 +15,8 @@
DKEY WebEngineAttributes::ID = "web_engine_attributes";
#endif
DKEY FileDialogPaths::ID = "file_dialog_paths";
DKEY DialogGeometries::ID = "dialog_geometries";
// Media player.

View file

@ -45,6 +45,10 @@ namespace DialogGeometries {
KEY ID;
}
namespace FileDialogPaths {
KEY ID;
}
namespace Node {
KEY ID;

View file

@ -2,6 +2,7 @@
#include "network-web/downloadmanager.h"
#include "gui/dialogs/filedialog.h"
#include "gui/dialogs/formmain.h"
#include "gui/messagebox.h"
#include "gui/tabwidget.h"
@ -17,7 +18,6 @@
#include <QDebug>
#include <QDesktopServices>
#include <QFileDialog>
#include <QFileIconProvider>
#include <QHeaderView>
#include <QMessageBox>
@ -109,8 +109,11 @@ void DownloadItem::getFileName() {
if (m_requestFileName) {
// User must provide the path where he wants to save downloaded file in.
m_gettingFileName = true;
chosen_filename =
QFileDialog::getSaveFileName(this, tr("Select destination for downloaded file"), filename_for_prompt);
chosen_filename = FileDialog::saveFileName(this,
tr("Select destination for downloaded file"),
filename_for_prompt,
QString(),
nullptr);
m_gettingFileName = false;
if (chosen_filename.isEmpty()) {

View file

@ -6,6 +6,7 @@
#include "database/databasequeries.h"
#include "definitions/definitions.h"
#include "exceptions/applicationexception.h"
#include "gui/dialogs/filedialog.h"
#include "gui/guiutilities.h"
#include "gui/reusable/baselineedit.h"
#include "miscellaneous/iconfactory.h"
@ -17,7 +18,6 @@
#include <QAction>
#include <QDialogButtonBox>
#include <QFileDialog>
#include <QImageReader>
#include <QLineEdit>
#include <QMenu>
@ -194,26 +194,15 @@ void FormCategoryDetails::onLoadIconFromFile() {
.toStdList();
QStringList list_formats = FROM_STD_LIST(QStringList, prefixed_formats);
QString fil = FileDialog::openFileName(this,
tr("Select icon file for the category"),
qApp->homeFolder(),
tr("Images (%1)").arg(list_formats.join(QL1C(' '))),
nullptr,
GENERAL_REMEMBERED_PATH);
QFileDialog dialog(this,
tr("Select icon file for the category"),
qApp->homeFolder(),
tr("Images (%1)").arg(list_formats.join(QL1C(' '))));
dialog.setFileMode(QFileDialog::FileMode::ExistingFile);
dialog.setWindowIcon(qApp->icons()->fromTheme(QSL("image-x-generic")));
dialog.setOptions(QFileDialog::Option::DontUseNativeDialog | QFileDialog::Option::ReadOnly);
dialog.setViewMode(QFileDialog::ViewMode::Detail);
dialog.setLabelText(QFileDialog::DialogLabel::Accept, tr("Select icon"));
dialog.setLabelText(QFileDialog::DialogLabel::Reject, tr("Cancel"));
//: Label to describe the folder for icon file selection dialog.
dialog.setLabelText(QFileDialog::DialogLabel::LookIn, tr("Look in:"));
dialog.setLabelText(QFileDialog::DialogLabel::FileName, tr("Icon name:"));
dialog.setLabelText(QFileDialog::DialogLabel::FileType, tr("Icon type:"));
if (dialog.exec() == QDialog::DialogCode::Accepted) {
m_ui->m_btnIcon->setIcon(QIcon(dialog.selectedFiles().value(0)));
if (!fil.isEmpty()) {
m_ui->m_btnIcon->setIcon(QIcon(fil));
}
}