nomnom-commits Mailing List for NomNom
Brought to you by:
legatvs
You can subscribe to this list here.
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(32) |
Nov
(6) |
Dec
|
---|
From: <nom...@li...> - 2011-11-06 11:40:42
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The annotated tag, v0.3.1 has been created at 2769a927f46431137c6edfb291e8f202b638b879 (tag) tagging 7ae1c420a03d3bec24238af5d9b0cd0c1d0d7179 (commit) replaces v0.3.0 tagged by Toni Gundogdu on Sun Nov 6 13:32:12 2011 +0200 - Log ----------------------------------------------------------------- nomnom 0.3.1 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAABCgAGBQJOtnA8AAoJEN2P/OHKyMCpYekQAKQlygqAHOzAwJepIIl4Aa56 59J5nE/kVXVHPv4J4wZouwHusJsqvyH2bUnzoQ5z8GBXjpD16/+uu2jNMGOqPF/9 bCXc052IlOLnRMlReXWqYfVcEdyJ5PsA5pmGVJh/immCRsRa1/0vn/x4YeigotYe ywewD+ZJ5sievElwaZGvQyJV8EPTtJJBKYA6JF9BBHOF07ZbdJF9ZmJMDb796N+2 iCu/X4FlKy59XAsPcmfNdJViOsWtTamL4neSKmc98KOw8+llwrvnSN0zv0gc4Ht5 veX4EpLCan3zdldT9K5WOXj5aDmADs+HCUS0Om7m4tdJ92QBOzphDpeEQaVhYH/M iXVWTCFPLMU7nW7Zw1qcYdZnvd+B7IY48TW1O9NixrkMcEvfV4jWs/x0Tt337u24 WXLmPpUrGihKmZJaN2W8gxv5ku0JRtefWOcpdMs7FDsLpWV+P9BJNqKQ78Rno6Yu cZ4irWqDJwBT6u8MPD/IcBXJx7B//+m7Te1g392abgADiCuowBjHe0kUEWzdVHl0 20K/Wv3/q0hx9LMGluljojfKbIIn5Mf6doeHpKaHoJDQo91I5xC3zM95NT6MSil3 SlZ2y+F5HPTZ1LqBDuBjfsj2Hbz/QSa0SEXcee8oWtkCkeWczQp7eZRmSBL63ViX hKRltFgjk+R+oAKudj9l =3FJO -----END PGP SIGNATURE----- Toni Gundogdu (7): NLogRecent: Move Reset button to NLogDialog button box Add "copy to clipboard" to NLogDialog Add "Always get the best media format" Improve handling of user URL input Update Finnish translation Bump version to 0.3.1 Update NEWS for 0.3.1 ----------------------------------------------------------------------- repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-11-06 11:40:09
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via 7ae1c420a03d3bec24238af5d9b0cd0c1d0d7179 (commit) via 17d7ec15a3b522d41aa2198f34359aa711724a19 (commit) from 41e1a39ce90002a4fc68ef80f169ce46ec7f158f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: NEWS | 9 +++++++++ m4/version.m4 | 2 +- 2 files changed, 10 insertions(+), 1 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-11-06 11:40:09
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, maint has been updated via 7ae1c420a03d3bec24238af5d9b0cd0c1d0d7179 (commit) via 17d7ec15a3b522d41aa2198f34359aa711724a19 (commit) via 41e1a39ce90002a4fc68ef80f169ce46ec7f158f (commit) via 7ee1b920439239e2bf9b47a5dff09fe233efe0af (commit) via 34321f54d60a82d9c0f57648efee09653dff4f0d (commit) via a831f1cd8c389e271b40706c6f35342550f1f823 (commit) via 11e64fdb36bfeab183fafc081d36378a4cac15c7 (commit) from 4b171a767f322cfeb087e3b5c97b77f40bd1f873 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: NEWS | 9 ++ m4/version.m4 | 2 +- src/i/MainWindow.cpp | 47 ++++++++--- src/i/MainWindow.h | 5 +- src/log/nlogdialog.cpp | 31 ++++++- src/log/nlogdialog.h | 13 ++-- src/log/nlogdialog_recent.cpp | 29 +++++-- src/settings/nsettings.cpp | 1 + src/settings/nsettings.h | 1 + src/settings/nsettingsdialog.h | 1 + src/settings/nsettingsdialog_options_behaviour.cpp | 8 ++- tr/NomNom_fi_FI.ts | 83 +++++++++++++------- 12 files changed, 163 insertions(+), 67 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-11-06 11:40:09
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, master has been updated via 7ae1c420a03d3bec24238af5d9b0cd0c1d0d7179 (commit) via 17d7ec15a3b522d41aa2198f34359aa711724a19 (commit) via 41e1a39ce90002a4fc68ef80f169ce46ec7f158f (commit) via 7ee1b920439239e2bf9b47a5dff09fe233efe0af (commit) via 34321f54d60a82d9c0f57648efee09653dff4f0d (commit) via a831f1cd8c389e271b40706c6f35342550f1f823 (commit) via 11e64fdb36bfeab183fafc081d36378a4cac15c7 (commit) from 4b171a767f322cfeb087e3b5c97b77f40bd1f873 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: NEWS | 9 ++ m4/version.m4 | 2 +- src/i/MainWindow.cpp | 47 ++++++++--- src/i/MainWindow.h | 5 +- src/log/nlogdialog.cpp | 31 ++++++- src/log/nlogdialog.h | 13 ++-- src/log/nlogdialog_recent.cpp | 29 +++++-- src/settings/nsettings.cpp | 1 + src/settings/nsettings.h | 1 + src/settings/nsettingsdialog.h | 1 + src/settings/nsettingsdialog_options_behaviour.cpp | 8 ++- tr/NomNom_fi_FI.ts | 83 +++++++++++++------- 12 files changed, 163 insertions(+), 67 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-11-06 11:21:51
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via 41e1a39ce90002a4fc68ef80f169ce46ec7f158f (commit) from 7ee1b920439239e2bf9b47a5dff09fe233efe0af (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/41e1a39ce90002a4fc68ef80f169ce46ec7f158f commit 41e1a39ce90002a4fc68ef80f169ce46ec7f158f Author: Toni Gundogdu <le...@gm...> Date: Sun Nov 6 13:22:32 2011 +0200 Update Finnish translation diff --git a/tr/NomNom_fi_FI.ts b/tr/NomNom_fi_FI.ts index ec7c79e..ca1489a 100644 --- a/tr/NomNom_fi_FI.ts +++ b/tr/NomNom_fi_FI.ts @@ -85,81 +85,86 @@ p, li { white-space: pre-wrap; } </message> <message> <location filename="../src/i/MainWindow.cpp" line="154"/> - <location filename="../src/i/MainWindow.cpp" line="749"/> + <location filename="../src/i/MainWindow.cpp" line="770"/> <source>Show</source> <translation>Näytä</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="210"/> + <location filename="../src/i/MainWindow.cpp" line="201"/> + <source>Invalid URL: %1</source> + <translation>Väärän tyyppinen internet-osoite: %1</translation> + </message> + <message> + <location filename="../src/i/MainWindow.cpp" line="219"/> <source>Please configure the path to the quvi. See under the "commands" in the settings.</source> <translation>Aseta polku komentoon quvi. Katso asetukset: kohta "komennot".</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="226"/> + <location filename="../src/i/MainWindow.cpp" line="235"/> <source>Please configure the path to a media player. See under the "commands" in the settings.</source> <translation>Aseta polku media-toistin komentoon. Katso asetukset: kohta "komennot".</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="299"/> - <location filename="../src/i/MainWindow.cpp" line="350"/> + <location filename="../src/i/MainWindow.cpp" line="310"/> + <location filename="../src/i/MainWindow.cpp" line="361"/> <source>Checking...</source> <translation>Tarkastetaan...</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="396"/> + <location filename="../src/i/MainWindow.cpp" line="414"/> <source>Choose format</source> - <translation>Valitse muoto</translation> + <translation>Valitse media-muoto</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="397"/> - <location filename="../src/i/MainWindow.cpp" line="409"/> + <location filename="../src/i/MainWindow.cpp" line="415"/> + <location filename="../src/i/MainWindow.cpp" line="427"/> <source>Format:</source> <translation>Muoto:</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="398"/> - <location filename="../src/i/MainWindow.cpp" line="405"/> + <location filename="../src/i/MainWindow.cpp" line="416"/> + <location filename="../src/i/MainWindow.cpp" line="423"/> <source>Enter your own</source> <translation>Syötä muoto</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="408"/> + <location filename="../src/i/MainWindow.cpp" line="426"/> <source>Enter format</source> <translation>Syötä muoto</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="433"/> - <location filename="../src/i/MainWindow.cpp" line="553"/> + <location filename="../src/i/MainWindow.cpp" line="451"/> + <location filename="../src/i/MainWindow.cpp" line="571"/> <source>Unknown error while attempting to start a detached process</source> <translation>Ulkoista ohjelmaa käynnistettäessa tapahtui tuntematon virhe</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="476"/> + <location filename="../src/i/MainWindow.cpp" line="494"/> <source>Save media as</source> <translation>Tallenna nimellä</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="595"/> + <location filename="../src/i/MainWindow.cpp" line="613"/> <source>quvi returned unexpected data</source> <translation>quvi-komento ei palauttanut odotettuja tietoja</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="633"/> + <location filename="../src/i/MainWindow.cpp" line="651"/> <source>Language will be changed after you restart the application. Restart now?</source> <translation>Kieli vaihdetaan ohjelman uudelleen käynnistyksen yhteydessä. Käynnistetäänkö ohjelma uudelleen?</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="686"/> + <location filename="../src/i/MainWindow.cpp" line="705"/> <source>Address</source> <translation>Osoite</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="686"/> + <location filename="../src/i/MainWindow.cpp" line="706"/> <source>Media page URL:</source> <translation>Internet-osoite:</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="709"/> + <location filename="../src/i/MainWindow.cpp" line="730"/> <source>Please configure the path to a feed reader. See under the "commands" in the settings.</source> <translation>Aseta polku syötetietoja lukevaan komentoon. Katso asetukset: kohta "komennot".</translation> </message> @@ -465,17 +470,27 @@ you set the max results parameter to 10. <context> <name>nn::NLogDialog</name> <message> - <location filename="../src/log/nlogdialog.cpp" line="44"/> + <location filename="../src/log/nlogdialog.cpp" line="45"/> <source>&Recent</source> <translation>&Aiemmat</translation> </message> <message> - <location filename="../src/log/nlogdialog.cpp" line="64"/> + <location filename="../src/log/nlogdialog.cpp" line="54"/> + <source>Co&py</source> + <translation>&Kopioi</translation> + </message> + <message> + <location filename="../src/log/nlogdialog.cpp" line="55"/> + <source>Copy to clipboard</source> + <translation>Kopioi leikepöydälle</translation> + </message> + <message> + <location filename="../src/log/nlogdialog.cpp" line="76"/> <source>Log</source> <translation>Historia</translation> </message> <message> - <location filename="../src/log/nlogdialog.cpp" line="90"/> + <location filename="../src/log/nlogdialog.cpp" line="99"/> <source>Please select an item from the list</source> <translation>Ole hyvä ja valitse kohde listasta</translation> </message> @@ -493,10 +508,15 @@ you set the max results parameter to 10. <translation>Lisätty</translation> </message> <message> - <location filename="../src/log/nlogdialog_recent.cpp" line="92"/> + <location filename="../src/log/nlogdialog_recent.cpp" line="86"/> <source>All records will be lost permanently. Really clear?</source> <translation>Tiedot menetetään pysyvästi. Oletko varma?</translation> </message> + <message> + <location filename="../src/log/nlogdialog_recent.cpp" line="101"/> + <source>Please select an item from the list</source> + <translation>Ole hyvä ja valitse kohde listasta</translation> + </message> </context> <context> <name>nn::NRecentMutator</name> @@ -557,30 +577,35 @@ you set the max results parameter to 10. <context> <name>nn::NSettingsBehaviour</name> <message> - <location filename="../src/settings/nsettingsdialog_options_behaviour.cpp" line="54"/> + <location filename="../src/settings/nsettingsdialog_options_behaviour.cpp" line="55"/> <source>&Keep application window on top</source> <translation>&Pidä ohjelman ikkuna ylimmäisenä</translation> </message> <message> - <location filename="../src/settings/nsettingsdialog_options_behaviour.cpp" line="57"/> + <location filename="../src/settings/nsettingsdialog_options_behaviour.cpp" line="58"/> <source>Pla&y media when done downloading</source> <translation>Toi&sta tiedosto kopioinnin päätyttyä</translation> </message> <message> - <location filename="../src/settings/nsettingsdialog_options_behaviour.cpp" line="60"/> + <location filename="../src/settings/nsettingsdialog_options_behaviour.cpp" line="61"/> <source>A&sk where to save media</source> <translation>Va&litse nimi tallennettavalle tiedostolle kopioinnin alkaessa</translation> </message> <message> - <location filename="../src/settings/nsettingsdialog_options_behaviour.cpp" line="63"/> + <location filename="../src/settings/nsettingsdialog_options_behaviour.cpp" line="64"/> <source>C&lear record of visited URLs at exit</source> <translation>Unoh&da aiemmat osoitteet ohjelman sulkeutuessa</translation> </message> <message> - <location filename="../src/settings/nsettingsdialog_options_behaviour.cpp" line="66"/> + <location filename="../src/settings/nsettingsdialog_options_behaviour.cpp" line="67"/> <source>Al&ways replace existing media</source> <translation>&Korvaa aiempi tiedosto kopioinnin alkaessa</translation> </message> + <message> + <location filename="../src/settings/nsettingsdialog_options_behaviour.cpp" line="70"/> + <source>Always &get the best media format</source> + <translation>V&alitse paras media-muoto automaattisesti</translation> + </message> </context> <context> <name>nn::NSettingsCommands</name> ----------------------------------------------------------------------- Summary of changes: tr/NomNom_fi_FI.ts | 83 +++++++++++++++++++++++++++++++++------------------ 1 files changed, 54 insertions(+), 29 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-11-03 16:55:18
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via 7ee1b920439239e2bf9b47a5dff09fe233efe0af (commit) via 34321f54d60a82d9c0f57648efee09653dff4f0d (commit) from a831f1cd8c389e271b40706c6f35342550f1f823 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/7ee1b920439239e2bf9b47a5dff09fe233efe0af commit 7ee1b920439239e2bf9b47a5dff09fe233efe0af Author: Toni Gundogdu <le...@gm...> Date: Thu Nov 3 18:16:29 2011 +0200 Improve handling of user URL input * Use QUrl::fromUserInput * Validate URLs diff --git a/src/i/MainWindow.cpp b/src/i/MainWindow.cpp index a88f2f3..ae408fb 100644 --- a/src/i/MainWindow.cpp +++ b/src/i/MainWindow.cpp @@ -191,8 +191,17 @@ static void print_url(const nn::NRecentEntry& r) } #endif -void MainWindow::handleURL(const QString& url) +void MainWindow::handleURL(const QString& u) { + const QUrl url = QUrl::fromUserInput(u); + + if (!url.isValid()) + { + // QUrl::errorString() is less than ideal. + nn::info(this, tr("Invalid URL: %1").arg(u)); + return; + } + QString s = settings.eitherValue(nn::ParseUsing, nn::ParseUsingOther) .toString() @@ -232,7 +241,7 @@ void MainWindow::handleURL(const QString& url) // Recent. nn::NRecentEntry e; - e.setURL(url); + e.setURL(url.toEncoded()); recent << e; @@ -291,7 +300,7 @@ void MainWindow::handleURL(const QString& url) // Query media stream data. - q_args.replaceInStrings("%u", url); + q_args.replaceInStrings("%u", url.toEncoded()); q_args << "-f" << fmt; #ifdef ENABLE_VERBOSE @@ -336,11 +345,11 @@ void MainWindow::handleURL(const QString& url) bool MainWindow::queryFormats(QStringList& formats, const QStringList& q_args, - const QString& url, + const QUrl& url, bool& failed) { QStringList args = q_args; - args.replaceInStrings("%u", url); + args.replaceInStrings("%u", url.toEncoded()); args << "-F"; #ifdef ENABLE_VERBOSE @@ -692,7 +701,10 @@ void MainWindow::onRecent() void MainWindow::onAddress() { const QString url = - QInputDialog::getText(this, tr("Address"), tr("Media page URL:")); + QInputDialog::getText(this, + tr("Address"), + tr("Media page URL:")) + .simplified(); if (url.isEmpty()) return; @@ -746,7 +758,7 @@ void MainWindow::dragEnterEvent(QDragEnterEvent *e) void MainWindow::dropEvent(QDropEvent *e) { - handleURL(e->mimeData()->text().simplified()); + handleURL(e->mimeData()->text()); e->acceptProposedAction(); } diff --git a/src/i/MainWindow.h b/src/i/MainWindow.h index 7be959c..91e7a8b 100644 --- a/src/i/MainWindow.h +++ b/src/i/MainWindow.h @@ -28,6 +28,7 @@ class ProcessProgressDialog; class DownloadDialog; +class QUrl; class MainWindow : public QMainWindow, private Ui::MainWindow { @@ -43,7 +44,7 @@ private: void handleURL(const QString&); bool queryFormats(QStringList&, const QStringList&, - const QString&, + const QUrl&, bool&); void createContextMenu(); void changeProgramIcon(); http://repo.or.cz/w/nomnom.git/commit/34321f54d60a82d9c0f57648efee09653dff4f0d commit 34321f54d60a82d9c0f57648efee09653dff4f0d Author: Toni Gundogdu <le...@gm...> Date: Thu Nov 3 18:43:39 2011 +0200 Add "Always get the best media format" diff --git a/src/i/MainWindow.cpp b/src/i/MainWindow.cpp index 5ebd2a1..a88f2f3 100644 --- a/src/i/MainWindow.cpp +++ b/src/i/MainWindow.cpp @@ -256,8 +256,10 @@ void MainWindow::handleURL(const QString& url) << have_quvi_feature_query_formats; #endif + const bool get_best = settings.value(nn::GetBestFormat).toBool(); + QStringList formats; - if (have_quvi_feature_query_formats) + if (have_quvi_feature_query_formats && !get_best) { bool failed = false; @@ -284,7 +286,7 @@ void MainWindow::handleURL(const QString& url) // Choose format. QString fmt; - if (!selectFormat(formats, fmt)) + if (!selectFormat(formats, fmt, get_best)) return; // Query media stream data. @@ -382,12 +384,19 @@ bool MainWindow::queryFormats(QStringList& formats, return false; } -bool MainWindow::selectFormat(QStringList& formats, QString& fmt) +bool MainWindow::selectFormat(QStringList& formats, + QString& fmt, + const bool get_best) { - // Prompt only if count exceeds 1 ("default)". - if (formats.size() < 2) + if (get_best) + { + fmt = "best"; + return true; + } + + if (formats.size() < 2) // Skip prompt unless >1 formats available { - fmt = "default"; // Do not translate. quvi understands only this. + fmt = "default"; return true; } diff --git a/src/i/MainWindow.h b/src/i/MainWindow.h index aa1b8ff..7be959c 100644 --- a/src/i/MainWindow.h +++ b/src/i/MainWindow.h @@ -39,7 +39,7 @@ protected: void closeEvent(QCloseEvent*); void dropEvent(QDropEvent*); private: - bool selectFormat(QStringList&, QString&); + bool selectFormat(QStringList&, QString&, const bool); void handleURL(const QString&); bool queryFormats(QStringList&, const QStringList&, diff --git a/src/settings/nsettings.cpp b/src/settings/nsettings.cpp index 99da9e8..58b685a 100644 --- a/src/settings/nsettings.cpp +++ b/src/settings/nsettings.cpp @@ -55,6 +55,7 @@ const char *key_strings[] = "AskWhereToSaveMediaFile", "ClearURLRecordAtExit", "ReplaceExistingMedia", + "GetBestFormat", // Options: Systray "ShowInTrayIcon", "TerminateInstead", diff --git a/src/settings/nsettings.h b/src/settings/nsettings.h index 5b9857d..0bf6bb5 100644 --- a/src/settings/nsettings.h +++ b/src/settings/nsettings.h @@ -54,6 +54,7 @@ typedef enum AskWhereToSaveMediaFile, ClearURLRecordAtExit, ReplaceExistingMedia, + GetBestFormat, // Options: Systray ShowInTrayIcon, TerminateInstead, diff --git a/src/settings/nsettingsdialog.h b/src/settings/nsettingsdialog.h index 40a30ea..c9d63bb 100644 --- a/src/settings/nsettingsdialog.h +++ b/src/settings/nsettingsdialog.h @@ -218,6 +218,7 @@ private: QCheckBox *clearURLRecordAtExitBox; QCheckBox *askWhereSaveMediaBox; QCheckBox *keepAppWinTopBox; + QCheckBox *getBestFormatBox; QCheckBox *playWhenDoneBox; }; diff --git a/src/settings/nsettingsdialog_options_behaviour.cpp b/src/settings/nsettingsdialog_options_behaviour.cpp index 3cfd88d..522942e 100644 --- a/src/settings/nsettingsdialog_options_behaviour.cpp +++ b/src/settings/nsettingsdialog_options_behaviour.cpp @@ -40,8 +40,9 @@ NSettingsBehaviour::NSettingsBehaviour(QWidget *parent/*=NULL*/) QVBoxLayout *box = new QVBoxLayout; box->addWidget(clearURLRecordAtExitBox); - box->addWidget(replaceExistingMediaBox); + box->addWidget(getBestFormatBox); box->addWidget(askWhereSaveMediaBox); + box->addWidget(replaceExistingMediaBox); box->addWidget(keepAppWinTopBox); box->addWidget(playWhenDoneBox); box->addStretch(0); @@ -64,6 +65,9 @@ void NSettingsBehaviour::createWidgets() replaceExistingMediaBox = new QCheckBox(tr("Al&ways replace existing media")); + + getBestFormatBox = + new QCheckBox(tr("Always &get the best media format")); } void NSettingsBehaviour::init() @@ -81,6 +85,7 @@ void NSettingsBehaviour::write() _write(ClearURLRecordAtExit, clearURLRecordAtExitBox); _write(AskWhereToSaveMediaFile, askWhereSaveMediaBox); _write(KeepApplicationWindowOnTop, keepAppWinTopBox); + _write(GetBestFormat, getBestFormatBox); _write(PlayWhenDoneDownloading, playWhenDoneBox); } @@ -96,6 +101,7 @@ void NSettingsBehaviour::read() _read(ReplaceExistingMedia, replaceExistingMediaBox); _read(ClearURLRecordAtExit, clearURLRecordAtExitBox); _read(AskWhereToSaveMediaFile, askWhereSaveMediaBox); + _read(GetBestFormat, getBestFormatBox); _read(KeepApplicationWindowOnTop, keepAppWinTopBox); _read(PlayWhenDoneDownloading, playWhenDoneBox); } ----------------------------------------------------------------------- Summary of changes: src/i/MainWindow.cpp | 47 ++++++++++++++----- src/i/MainWindow.h | 5 +- src/settings/nsettings.cpp | 1 + src/settings/nsettings.h | 1 + src/settings/nsettingsdialog.h | 1 + src/settings/nsettingsdialog_options_behaviour.cpp | 8 +++- 6 files changed, 47 insertions(+), 16 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-31 16:10:09
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via a831f1cd8c389e271b40706c6f35342550f1f823 (commit) via 11e64fdb36bfeab183fafc081d36378a4cac15c7 (commit) from 4b171a767f322cfeb087e3b5c97b77f40bd1f873 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/a831f1cd8c389e271b40706c6f35342550f1f823 commit a831f1cd8c389e271b40706c6f35342550f1f823 Author: Toni Gundogdu <le...@gm...> Date: Mon Oct 31 18:03:53 2011 +0200 Add "copy to clipboard" to NLogDialog diff --git a/src/log/nlogdialog.cpp b/src/log/nlogdialog.cpp index 3a4016d..bc30aa6 100644 --- a/src/log/nlogdialog.cpp +++ b/src/log/nlogdialog.cpp @@ -51,8 +51,14 @@ NLogDialog::NLogDialog(QWidget *parent/*=NULL*/) | QDialogButtonBox::Cancel | QDialogButtonBox::Reset); + QPushButton *b = new QPushButton(tr("Co&py")); + b->setToolTip(tr("Copy to clipboard")); + + bb->addButton(b, QDialogButtonBox::ActionRole); + connect(bb, SIGNAL(accepted()), this, SLOT(accept())); connect(bb, SIGNAL(rejected()), this, SLOT(reject())); + connect(b, SIGNAL(clicked()), this, SLOT(copy())); connect(bb->button(QDialogButtonBox::Reset), SIGNAL(clicked()), this, SLOT(reset())); @@ -114,6 +120,12 @@ void NLogDialog::reset() l->reset(); } +void NLogDialog::copy() +{ + NLogWidget *l = dynamic_cast<NLogWidget*>(_toolbox->currentWidget()); + l->copy(); +} + // NLogWidget NLogWidget::NLogWidget(QWidget *parent/*=NULL*/) diff --git a/src/log/nlogdialog.h b/src/log/nlogdialog.h index 42614c6..a22b1cf 100644 --- a/src/log/nlogdialog.h +++ b/src/log/nlogdialog.h @@ -40,6 +40,7 @@ private: private slots: void selected(QString); void reset(); + void copy(); private: QToolBox *_toolbox; QString _selected; @@ -53,6 +54,7 @@ public: protected: virtual void reset() = 0; virtual void init() = 0; + virtual void copy() = 0; // Friends friend class NLogDialog; }; @@ -69,6 +71,7 @@ private slots: protected: virtual void reset(); virtual void init(); + virtual void copy(); private: QTreeWidget *_treew; }; diff --git a/src/log/nlogdialog_recent.cpp b/src/log/nlogdialog_recent.cpp index d884cf0..b97f291 100644 --- a/src/log/nlogdialog_recent.cpp +++ b/src/log/nlogdialog_recent.cpp @@ -17,12 +17,13 @@ #include "config.h" -#include <QCoreApplication> #include <QDialogButtonBox> +#include <QApplication> #include <QVBoxLayout> #include <QTextStream> #include <QTreeWidget> #include <QMessageBox> +#include <QClipboard> #include <NRecentMutator> #include <NRecentEntry> @@ -71,7 +72,7 @@ void NLogRecent::init() void NLogRecent::selected() { - QTreeWidgetItem *i = _treew->selectedItems().first(); + QTreeWidgetItem *i = _treew->currentItem(); i = (i->childCount() > 0) ? i->child(0) : i; if (i) emit selected(i->text(0)); @@ -92,6 +93,23 @@ void NLogRecent::reset() recent.clear(); } +void NLogRecent::copy() +{ + QTreeWidgetItem *i = _treew->currentItem(); + if (!i) + { + info(this, tr("Please select an item from the list")); + return; + } + + i = (i->childCount() > 0) ? i : i->parent(); + + QApplication::clipboard()->setText(QString("%1n %2n %3n") + .arg(i->text(0)) + .arg(i->text(1)) + .arg((i->child(0)->text(0)))); +} + } // namespace nn /* vim: set ts=2 sw=2 tw=72 expandtab: */ http://repo.or.cz/w/nomnom.git/commit/11e64fdb36bfeab183fafc081d36378a4cac15c7 commit 11e64fdb36bfeab183fafc081d36378a4cac15c7 Author: Toni Gundogdu <le...@gm...> Date: Mon Oct 31 17:16:44 2011 +0200 NLogRecent: Move Reset button to NLogDialog button box diff --git a/src/log/nlogdialog.cpp b/src/log/nlogdialog.cpp index 5e9b8ee..3a4016d 100644 --- a/src/log/nlogdialog.cpp +++ b/src/log/nlogdialog.cpp @@ -19,6 +19,7 @@ #include <QCoreApplication> #include <QDialogButtonBox> +#include <QPushButton> #include <QMessageBox> #include <QVBoxLayout> #include <QToolBox> @@ -45,12 +46,17 @@ NLogDialog::NLogDialog(QWidget *parent/*=NULL*/) // Button box - QDialogButtonBox *bb = new QDialogButtonBox( - QDialogButtonBox::Ok | QDialogButtonBox::Cancel); + QDialogButtonBox *bb = + new QDialogButtonBox(QDialogButtonBox::Ok + | QDialogButtonBox::Cancel + | QDialogButtonBox::Reset); connect(bb, SIGNAL(accepted()), this, SLOT(accept())); connect(bb, SIGNAL(rejected()), this, SLOT(reject())); + connect(bb->button(QDialogButtonBox::Reset), SIGNAL(clicked()), + this, SLOT(reset())); + // Layout QVBoxLayout *box = new QVBoxLayout; @@ -73,9 +79,6 @@ void NLogDialog::foreachWidget() for (int i=0; i<c; ++i) { NLogWidget *l = dynamic_cast<NLogWidget*>(_toolbox->widget(i)); -#ifdef _1 - l->read(); -#endif l->init(); } } @@ -105,6 +108,12 @@ QString NLogDialog::selected() const return _selected; } +void NLogDialog::reset() +{ + NLogWidget *l = dynamic_cast<NLogWidget*>(_toolbox->currentWidget()); + l->reset(); +} + // NLogWidget NLogWidget::NLogWidget(QWidget *parent/*=NULL*/) diff --git a/src/log/nlogdialog.h b/src/log/nlogdialog.h index 33313c7..42614c6 100644 --- a/src/log/nlogdialog.h +++ b/src/log/nlogdialog.h @@ -39,6 +39,7 @@ private: void foreachWidget(); private slots: void selected(QString); + void reset(); private: QToolBox *_toolbox; QString _selected; @@ -50,10 +51,8 @@ class NLogWidget : public QWidget public: NLogWidget(QWidget *parent); protected: + virtual void reset() = 0; virtual void init() = 0; -#ifdef _1 - virtual void read() = 0; -#endif // Friends friend class NLogDialog; }; @@ -67,12 +66,9 @@ signals: void selected(QString); private slots: void selected(); - void reset(); protected: + virtual void reset(); virtual void init(); -#ifdef _1 - virtual void read(); -#endif private: QTreeWidget *_treew; }; diff --git a/src/log/nlogdialog_recent.cpp b/src/log/nlogdialog_recent.cpp index 6d9cea6..d884cf0 100644 --- a/src/log/nlogdialog_recent.cpp +++ b/src/log/nlogdialog_recent.cpp @@ -19,7 +19,6 @@ #include <QCoreApplication> #include <QDialogButtonBox> -#include <QPushButton> #include <QVBoxLayout> #include <QTextStream> #include <QTreeWidget> @@ -48,16 +47,10 @@ NLogRecent::NLogRecent(QWidget *parent/*=NULL*/) connect(_treew, SIGNAL(itemSelectionChanged()), this, SLOT(selected())); - QDialogButtonBox *bb = new QDialogButtonBox(QDialogButtonBox::Reset); - - connect(bb->button(QDialogButtonBox::Reset), SIGNAL(clicked()), - this, SLOT(reset())); - // Layout QVBoxLayout *box = new QVBoxLayout; box->addWidget(_treew); - box->addWidget(bb); setLayout(box); } ----------------------------------------------------------------------- Summary of changes: src/log/nlogdialog.cpp | 31 ++++++++++++++++++++++++++----- src/log/nlogdialog.h | 13 ++++++------- src/log/nlogdialog_recent.cpp | 29 ++++++++++++++++++++--------- 3 files changed, 52 insertions(+), 21 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-30 11:34:23
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via 4b171a767f322cfeb087e3b5c97b77f40bd1f873 (commit) via 629d5c22e985abdc2eaba06f4b5fff45ea3ca50a (commit) from 81cae5678e8d27d22ccc15ca3d876474d6a9b0ad (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: NEWS | 17 +++++++++++++++++ m4/version.m4 | 2 +- 2 files changed, 18 insertions(+), 1 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-30 11:33:55
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, maint has been updated via 4b171a767f322cfeb087e3b5c97b77f40bd1f873 (commit) via 629d5c22e985abdc2eaba06f4b5fff45ea3ca50a (commit) via 81cae5678e8d27d22ccc15ca3d876474d6a9b0ad (commit) via ac14a94f684982ce7c3016753c2cddd950025179 (commit) via b870a8205a75aab21aed05409f439c37e82d8b0c (commit) via de755375c57f4be78c827cc581cb9ea7a8a58b95 (commit) via 663dd37b38c12b9d34109529bd61e30ecd4acf76 (commit) via da248b9c73cc4295cd9f949f421547aef35e3fde (commit) via 9fdd096b2cb4b79c2306bcbcda73b078bd1eabf4 (commit) via c98e0b65eef6a2115eae15fa13fef9a89374ba53 (commit) via fb3dd47a41c948cacfc5d697fa8ee267989ea7af (commit) via 2b9280145afba0e226448b5711ad499d2844982d (commit) via d7ab7b3359e5346fa56a2e268960365edeb2bf08 (commit) via 20baadec5f8280944524e85b8c66da49306032a4 (commit) via a81db9b068eb38cd9083c3883ed03df9f17b0aeb (commit) via 6723f6614df04a99a1cdade99ecfecb466a33f5b (commit) via e60d055fc39d005ae9c6a29a2d3058ee90d64fb1 (commit) via 49ae0c95905f819a96a214b3278d28d4c439df38 (commit) via d89b9cbf3e03965b17801196c7e81b5a8ee4b25d (commit) via 1f2afdc5c32bc92fd0e6e4d01f174355c8ab988f (commit) via c808a1aea94ca131ee78eddb1ff76d1a47127f19 (commit) via e274497c7211c7c7d10e587c389cb50770ee58dd (commit) via 587399e1d3bbee37e0ec72644d2186aabadca5e2 (commit) via 366924d88ba3fbd04c6ed27fa1e63a03208f0a9b (commit) from d9050e2badf01d3aa3d768148aa70a19b771c350 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: INSTALL | 11 +- Makefile.am | 1 - NEWS | 17 ++ README.packagers | 42 ++-- configure.ac | 2 +- doc/man1/nomnom.1.pod | 50 +++-- examples/NomNom.conf | 7 - m4/version.m4 | 2 +- src/DownloadDiag.cpp | 20 +- src/DownloadDiag.h | 2 + src/Makefile.am | 77 +++-- src/Media.cpp | 170 +++-------- src/Media.h | 41 ++-- src/NErrorWhileDialog | 1 + src/NLogDialog | 1 + src/NRecentEntry | 1 + src/NRecentMutator | 1 + src/ProcProgDiag.cpp | 22 +- src/ProcProgDiag.h | 4 +- src/Recent.cpp | 72 ----- src/Recent.h | 47 --- src/detect/ndetect.cpp | 2 +- src/errorwhile/nerrorwhiledialog.cpp | 132 +++++++++ .../nfeed.h => errorwhile/nerrorwhiledialog.h} | 33 +-- src/feed/nfeeddialog.cpp | 35 ++- src/feed/nfeeddialog.h | 2 - src/feed/nfeeddialog_properties.cpp | 4 +- src/feed/nfeedprogressdialog.cpp | 70 ++--- src/feed/nfeedprogressdialog.h | 4 +- src/i/MainWindow.cpp | 219 ++++++++------- src/i/MainWindow.h | 18 +- src/lang/nlang.cpp | 2 +- src/log/nlogdialog.cpp | 117 ++++++++ src/{about/naboutdialog.h => log/nlogdialog.h} | 52 +++- src/log/nlogdialog_recent.cpp | 104 +++++++ src/{feed/nfeed.cpp => log/nrecententry.cpp} | 79 ++++-- src/{systray/nsystray.h => log/nrecententry.h} | 40 ++-- src/log/nrecentmutator.cpp | 156 ++++++++++ .../nsettingsmutator.h => log/nrecentmutator.h} | 32 ++- src/main.cpp | 42 ++-- src/settings/nsettingsdialog.cpp | 9 +- src/settings/nsettingsdialog.h | 2 - src/settings/nsettingsdialog_commands.cpp | 3 +- src/settings/nsettingsdialog_options.cpp | 3 +- src/util/nutil.cpp | 15 +- tr/NomNom_fi_FI.ts | 304 +++++++++++--------- 46 files changed, 1266 insertions(+), 804 deletions(-) delete mode 100644 examples/NomNom.conf create mode 100644 src/NErrorWhileDialog create mode 100644 src/NLogDialog create mode 100644 src/NRecentEntry create mode 100644 src/NRecentMutator delete mode 100644 src/Recent.cpp delete mode 100644 src/Recent.h create mode 100644 src/errorwhile/nerrorwhiledialog.cpp copy src/{feed/nfeed.h => errorwhile/nerrorwhiledialog.h} (72%) create mode 100644 src/log/nlogdialog.cpp copy src/{about/naboutdialog.h => log/nlogdialog.h} (52%) create mode 100644 src/log/nlogdialog_recent.cpp copy src/{feed/nfeed.cpp => log/nrecententry.cpp} (50%) copy src/{systray/nsystray.h => log/nrecententry.h} (54%) create mode 100644 src/log/nrecentmutator.cpp copy src/{settings/nsettingsmutator.h => log/nrecentmutator.h} (62%) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-30 11:33:42
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The annotated tag, v0.3.0 has been created at f1405e79e56f9c87cbae3086c7832ee2373c4297 (tag) tagging 4b171a767f322cfeb087e3b5c97b77f40bd1f873 (commit) replaces v0.2.0 tagged by Toni Gundogdu on Sun Oct 30 13:00:21 2011 +0200 - Log ----------------------------------------------------------------- nomnom 0.3.0 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAABCgAGBQJOrS5FAAoJEN2P/OHKyMCpUlwP/jQsi6ycvDkcRClo+m53SYWS i20BZvEWpjAlBPFdf4lStzlkemD541Wr+4p343FvYipkmt5OJlHxuQK9ICGbiroQ fPFzA8LDmUsSHS1sgK2nk5EXqabtDvDwhv8mDRWMhGAlVnImgXczQEiDX2mcVW9a NLBmYB/0Pn5NHqfWrJvTg5/ziDSOibgoCunVhjOPQpUj9FurUYrxHzJsrXHvI2fx DvpU0q5v53umxEm2V5Xs04OP2Ez5gH2apUExEciNaMhaOVA98LqcKBNqvgNgEdGk OU74Tp9snKo7xhouq4rCAFuy6uykRcHbL232JBmgqaT0w35zFHPYwOqzHv15LsEZ /JBiySm1c0rRSG9iK45bqAx4Ca14CfvBh3SYa9850lSpDby4JnVGeR1Z8B2s0IF0 Ht6SGocWHFpjEJg1hNqOSiBHDjhP3hMgpEQz7n0KLjXhiHGlOpjVmXmLMVwN+Szu i4kjMq+JtQEAEtykgLppwc4CR5OsrIEiJpX0Cr+obGWGGhj2IHPnKg4fkygivCe3 d+7IYSOylNylP+db5gqlATFw0IuPZkVW/U+NB+GsEfClEXwnONss88/cZlIqUnt0 bnEmjs0xhyFdLrmOMy4OH6M4U70xNkMSCaQVg1eV6Er6z35To9vO+PBADhFQ+LqX 0D+2Ck4RHf1/LA4hYvtX =19W9 -----END PGP SIGNATURE----- Toni Gundogdu (24): Remove outdated examples/NomNom.conf Use VN instead of (PACKAGE_)VERSION Add user-agent to curl args Revise manual qDebug media player args Use NErrorWhileDialog instead Use qApp instead, use NUtil info() instead Add QJson prerequisite Use "_" prefix with MainWindow member vars Use QJson for parsing quvi output Use QJson for parsing umph output Remove QtScript prerequisite Add "Copy" button to NErrorWhileDialog Use NLogDialog instead Use NUtil 'info' and 'ask' instead Add Qt module note to INSTALL Bump max recent URLs to 25 Recent: resize to "Title" column contents Add size grips to NFeedDialog, NSettingsDialog Revise README.packagers Fix umph integration Update Finnish translation Bump version to 0.3.0 Update NEWS for 0.3.0 ----------------------------------------------------------------------- repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-30 11:33:40
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, master has been updated via 4b171a767f322cfeb087e3b5c97b77f40bd1f873 (commit) via 629d5c22e985abdc2eaba06f4b5fff45ea3ca50a (commit) via 81cae5678e8d27d22ccc15ca3d876474d6a9b0ad (commit) via ac14a94f684982ce7c3016753c2cddd950025179 (commit) via b870a8205a75aab21aed05409f439c37e82d8b0c (commit) via de755375c57f4be78c827cc581cb9ea7a8a58b95 (commit) via 663dd37b38c12b9d34109529bd61e30ecd4acf76 (commit) via da248b9c73cc4295cd9f949f421547aef35e3fde (commit) via 9fdd096b2cb4b79c2306bcbcda73b078bd1eabf4 (commit) via c98e0b65eef6a2115eae15fa13fef9a89374ba53 (commit) via fb3dd47a41c948cacfc5d697fa8ee267989ea7af (commit) via 2b9280145afba0e226448b5711ad499d2844982d (commit) via d7ab7b3359e5346fa56a2e268960365edeb2bf08 (commit) via 20baadec5f8280944524e85b8c66da49306032a4 (commit) via a81db9b068eb38cd9083c3883ed03df9f17b0aeb (commit) via 6723f6614df04a99a1cdade99ecfecb466a33f5b (commit) via e60d055fc39d005ae9c6a29a2d3058ee90d64fb1 (commit) via 49ae0c95905f819a96a214b3278d28d4c439df38 (commit) via d89b9cbf3e03965b17801196c7e81b5a8ee4b25d (commit) via 1f2afdc5c32bc92fd0e6e4d01f174355c8ab988f (commit) via c808a1aea94ca131ee78eddb1ff76d1a47127f19 (commit) via e274497c7211c7c7d10e587c389cb50770ee58dd (commit) via 587399e1d3bbee37e0ec72644d2186aabadca5e2 (commit) via 366924d88ba3fbd04c6ed27fa1e63a03208f0a9b (commit) from d9050e2badf01d3aa3d768148aa70a19b771c350 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/4b171a767f322cfeb087e3b5c97b77f40bd1f873 commit 4b171a767f322cfeb087e3b5c97b77f40bd1f873 Author: Toni Gundogdu <le...@gm...> Date: Sun Oct 30 12:55:06 2011 +0200 Update NEWS for 0.3.0 diff --git a/NEWS b/NEWS index 89c43b5..7666bb8 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,21 @@ +0.3.0 Sun Oct 30 2011 Toni Gundogdu + +Changes: + - Add improved dialog for displaying "recent URLs" + - Revise log (recent) subsystem + - Add dialog for displaying "error while running command" + - Use QJson for parsing umph and quvi output + - Make QJson a new prerequisite + - Remove QtScript prerequisite + - Make curl use a custom user-agent by default + - Update Finnish translation + +Bugfixes: + - umph integration ("nothing found" even when feed contains items) + - Caused by incorrectly parsed and re-joined command line args + + 0.2.0 Fri Oct 21 2011 Toni Gundogdu Changes: http://repo.or.cz/w/nomnom.git/commit/629d5c22e985abdc2eaba06f4b5fff45ea3ca50a commit 629d5c22e985abdc2eaba06f4b5fff45ea3ca50a Author: Toni Gundogdu <le...@gm...> Date: Sun Oct 30 12:59:57 2011 +0200 Bump version to 0.3.0 diff --git a/m4/version.m4 b/m4/version.m4 index f609e44..d46c4cb 100644 --- a/m4/version.m4 +++ b/m4/version.m4 @@ -1 +1 @@ -m4_define([_NOMNOM_VERSION], [0.2.0]) +m4_define([_NOMNOM_VERSION], [0.3.0]) ----------------------------------------------------------------------- Summary of changes: INSTALL | 11 +- Makefile.am | 1 - NEWS | 17 ++ README.packagers | 42 ++-- configure.ac | 2 +- doc/man1/nomnom.1.pod | 50 +++-- examples/NomNom.conf | 7 - m4/version.m4 | 2 +- src/DownloadDiag.cpp | 20 +- src/DownloadDiag.h | 2 + src/Makefile.am | 77 +++-- src/Media.cpp | 170 +++-------- src/Media.h | 41 ++-- src/NErrorWhileDialog | 1 + src/NLogDialog | 1 + src/NRecentEntry | 1 + src/NRecentMutator | 1 + src/ProcProgDiag.cpp | 22 +- src/ProcProgDiag.h | 4 +- src/Recent.cpp | 72 ----- src/Recent.h | 47 --- src/detect/ndetect.cpp | 2 +- src/errorwhile/nerrorwhiledialog.cpp | 132 +++++++++ .../nfeed.h => errorwhile/nerrorwhiledialog.h} | 33 +-- src/feed/nfeeddialog.cpp | 35 ++- src/feed/nfeeddialog.h | 2 - src/feed/nfeeddialog_properties.cpp | 4 +- src/feed/nfeedprogressdialog.cpp | 70 ++--- src/feed/nfeedprogressdialog.h | 4 +- src/i/MainWindow.cpp | 219 ++++++++------- src/i/MainWindow.h | 18 +- src/lang/nlang.cpp | 2 +- src/log/nlogdialog.cpp | 117 ++++++++ src/{about/naboutdialog.h => log/nlogdialog.h} | 52 +++- src/log/nlogdialog_recent.cpp | 104 +++++++ src/{feed/nfeed.cpp => log/nrecententry.cpp} | 79 ++++-- src/{systray/nsystray.h => log/nrecententry.h} | 40 ++-- src/log/nrecentmutator.cpp | 156 ++++++++++ .../nsettingsmutator.h => log/nrecentmutator.h} | 32 ++- src/main.cpp | 42 ++-- src/settings/nsettingsdialog.cpp | 9 +- src/settings/nsettingsdialog.h | 2 - src/settings/nsettingsdialog_commands.cpp | 3 +- src/settings/nsettingsdialog_options.cpp | 3 +- src/util/nutil.cpp | 15 +- tr/NomNom_fi_FI.ts | 304 +++++++++++--------- 46 files changed, 1266 insertions(+), 804 deletions(-) delete mode 100644 examples/NomNom.conf create mode 100644 src/NErrorWhileDialog create mode 100644 src/NLogDialog create mode 100644 src/NRecentEntry create mode 100644 src/NRecentMutator delete mode 100644 src/Recent.cpp delete mode 100644 src/Recent.h create mode 100644 src/errorwhile/nerrorwhiledialog.cpp copy src/{feed/nfeed.h => errorwhile/nerrorwhiledialog.h} (72%) create mode 100644 src/log/nlogdialog.cpp copy src/{about/naboutdialog.h => log/nlogdialog.h} (52%) create mode 100644 src/log/nlogdialog_recent.cpp copy src/{feed/nfeed.cpp => log/nrecententry.cpp} (50%) copy src/{systray/nsystray.h => log/nrecententry.h} (54%) create mode 100644 src/log/nrecentmutator.cpp copy src/{settings/nsettingsmutator.h => log/nrecentmutator.h} (62%) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-30 10:37:02
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via 81cae5678e8d27d22ccc15ca3d876474d6a9b0ad (commit) from ac14a94f684982ce7c3016753c2cddd950025179 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/81cae5678e8d27d22ccc15ca3d876474d6a9b0ad commit 81cae5678e8d27d22ccc15ca3d876474d6a9b0ad Author: Toni Gundogdu <le...@gm...> Date: Sun Oct 30 11:50:57 2011 +0200 Update Finnish translation diff --git a/tr/NomNom_fi_FI.ts b/tr/NomNom_fi_FI.ts index 2028cc4..ec7c79e 100644 --- a/tr/NomNom_fi_FI.ts +++ b/tr/NomNom_fi_FI.ts @@ -4,25 +4,15 @@ <context> <name>DownloadDialog</name> <message> - <location filename="../src/DownloadDiag.cpp" line="84"/> + <location filename="../src/DownloadDiag.cpp" line="89"/> <source>Starting download...</source> <translation>Kopioidaan...</translation> </message> <message> - <location filename="../src/DownloadDiag.cpp" line="95"/> - <source>Error while running command:<p>%1</p>Qt error message follows (code #%2):<p>%3</p></source> - <translation>Seuraavaa komentoa suorittaessa tapahtui virhe:<p>%1</p>Qt virhe (koodi #%2):<p>%3</p></translation> - </message> - <message> - <location filename="../src/DownloadDiag.cpp" line="123"/> + <location filename="../src/DownloadDiag.cpp" line="125"/> <source>Copying %1/s, %2</source> <translation>Kopioidaan %1/s, %2</translation> </message> - <message> - <location filename="../src/DownloadDiag.cpp" line="149"/> - <source>Error while running command:<p>%1</p>curl error message follows:<p>%3</p></source> - <translation>Seuraavaa komentoa suorittaessa tapahtui virhe:<p>%1</p>curl virhe:<p>%3</p></translation> - </message> </context> <context> <name>MainWindow</name> @@ -57,134 +47,119 @@ p, li { white-space: pre-wrap; } <translation>Kopioi</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="107"/> - <location filename="../src/i/MainWindow.cpp" line="124"/> + <location filename="../src/i/MainWindow.cpp" line="113"/> + <location filename="../src/i/MainWindow.cpp" line="130"/> <source>Address...</source> <translation>Osoite...</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="108"/> - <location filename="../src/i/MainWindow.cpp" line="125"/> + <location filename="../src/i/MainWindow.cpp" line="114"/> + <location filename="../src/i/MainWindow.cpp" line="131"/> <source>Feed...</source> <translation>Syöte...</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="109"/> - <location filename="../src/i/MainWindow.cpp" line="126"/> + <location filename="../src/i/MainWindow.cpp" line="115"/> + <location filename="../src/i/MainWindow.cpp" line="132"/> <source>Recent...</source> <translation>Aikaisempi...</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="111"/> - <location filename="../src/i/MainWindow.cpp" line="128"/> - <location filename="../src/i/MainWindow.cpp" line="159"/> + <location filename="../src/i/MainWindow.cpp" line="117"/> + <location filename="../src/i/MainWindow.cpp" line="134"/> + <location filename="../src/i/MainWindow.cpp" line="163"/> <source>Settings...</source> <translation>Asetukset...</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="113"/> + <location filename="../src/i/MainWindow.cpp" line="119"/> <source>About...</source> <translation>Tietoja...</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="114"/> - <location filename="../src/i/MainWindow.cpp" line="130"/> - <location filename="../src/i/MainWindow.cpp" line="167"/> + <location filename="../src/i/MainWindow.cpp" line="120"/> + <location filename="../src/i/MainWindow.cpp" line="136"/> + <location filename="../src/i/MainWindow.cpp" line="171"/> <source>Quit</source> <translation>Sulje</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="150"/> - <location filename="../src/i/MainWindow.cpp" line="734"/> + <location filename="../src/i/MainWindow.cpp" line="154"/> + <location filename="../src/i/MainWindow.cpp" line="749"/> <source>Show</source> <translation>Näytä</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="201"/> + <location filename="../src/i/MainWindow.cpp" line="210"/> <source>Please configure the path to the quvi. See under the "commands" in the settings.</source> <translation>Aseta polku komentoon quvi. Katso asetukset: kohta "komennot".</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="217"/> + <location filename="../src/i/MainWindow.cpp" line="226"/> <source>Please configure the path to a media player. See under the "commands" in the settings.</source> <translation>Aseta polku media-toistin komentoon. Katso asetukset: kohta "komennot".</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="278"/> - <location filename="../src/i/MainWindow.cpp" line="316"/> + <location filename="../src/i/MainWindow.cpp" line="299"/> + <location filename="../src/i/MainWindow.cpp" line="350"/> <source>Checking...</source> <translation>Tarkastetaan...</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="364"/> + <location filename="../src/i/MainWindow.cpp" line="396"/> <source>Choose format</source> <translation>Valitse muoto</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="365"/> - <location filename="../src/i/MainWindow.cpp" line="377"/> + <location filename="../src/i/MainWindow.cpp" line="397"/> + <location filename="../src/i/MainWindow.cpp" line="409"/> <source>Format:</source> <translation>Muoto:</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="366"/> - <location filename="../src/i/MainWindow.cpp" line="373"/> + <location filename="../src/i/MainWindow.cpp" line="398"/> + <location filename="../src/i/MainWindow.cpp" line="405"/> <source>Enter your own</source> <translation>Syötä muoto</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="376"/> + <location filename="../src/i/MainWindow.cpp" line="408"/> <source>Enter format</source> <translation>Syötä muoto</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="400"/> - <location filename="../src/i/MainWindow.cpp" line="507"/> - <source>Error while running command:<p>%1</p></source> - <translation>Seuraavaa komentoa suorittaessa tapahtui virhe:<p>%1</p></translation> + <location filename="../src/i/MainWindow.cpp" line="433"/> + <location filename="../src/i/MainWindow.cpp" line="553"/> + <source>Unknown error while attempting to start a detached process</source> + <translation>Ulkoista ohjelmaa käynnistettäessa tapahtui tuntematon virhe</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="440"/> + <location filename="../src/i/MainWindow.cpp" line="476"/> <source>Save media as</source> <translation>Tallenna nimellä</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="550"/> + <location filename="../src/i/MainWindow.cpp" line="595"/> <source>quvi returned unexpected data</source> <translation>quvi-komento ei palauttanut odotettuja tietoja</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="589"/> + <location filename="../src/i/MainWindow.cpp" line="633"/> <source>Language will be changed after you restart the application. Restart now?</source> <translation>Kieli vaihdetaan ohjelman uudelleen käynnistyksen yhteydessä. Käynnistetäänkö ohjelma uudelleen?</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="642"/> - <source>No record of recently visited URLs found.</source> - <translation>Ei aiempia osoitteita.</translation> - </message> - <message> - <location filename="../src/i/MainWindow.cpp" line="649"/> - <source>Recent URLs</source> - <translation>Aiemmat osoitteet</translation> - </message> - <message> - <location filename="../src/i/MainWindow.cpp" line="650"/> - <source>Select URL (most recent first):</source> - <translation>Valitse osoite (viimeisin ensimmäisenä):</translation> - </message> - <message> - <location filename="../src/i/MainWindow.cpp" line="666"/> + <location filename="../src/i/MainWindow.cpp" line="686"/> <source>Address</source> <translation>Osoite</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="666"/> + <location filename="../src/i/MainWindow.cpp" line="686"/> <source>Media page URL:</source> <translation>Internet-osoite:</translation> </message> <message> - <location filename="../src/i/MainWindow.cpp" line="688"/> + <location filename="../src/i/MainWindow.cpp" line="709"/> <source>Please configure the path to a feed reader. See under the "commands" in the settings.</source> <translation>Aseta polku syötetietoja lukevaan komentoon. Katso asetukset: kohta "komennot".</translation> </message> @@ -192,43 +167,28 @@ p, li { white-space: pre-wrap; } <context> <name>Media</name> <message> - <location filename="../src/Media.cpp" line="69"/> - <source>Uncaught exception at line %1: %2</source> - <translation>Tietoja luettaessa rivillä %1: tapahtui virhe %2</translation> - </message> - <message> - <location filename="../src/Media.cpp" line="84"/> - <source>Expected at least one media link from quvi(1), got none.</source> - <translation>quvi-komento ei palauttanut tietoja.</translation> + <location filename="../src/Media.cpp" line="56"/> + <source>An error occurred while parsing JSON</source> + <translation>JSON-tietoja jäsentäessä tapahtui virhe</translation> </message> </context> <context> <name>ProcessProgressDialog</name> <message> - <location filename="../src/ProcProgDiag.cpp" line="50"/> + <location filename="../src/ProcProgDiag.cpp" line="49"/> <source>Checking...</source> <translation>Tarkastetaan...</translation> </message> <message> - <location filename="../src/ProcProgDiag.cpp" line="51"/> + <location filename="../src/ProcProgDiag.cpp" line="50"/> <source>Fetching...</source> <translation>Haetaan...</translation> </message> <message> - <location filename="../src/ProcProgDiag.cpp" line="52"/> + <location filename="../src/ProcProgDiag.cpp" line="51"/> <source>Verifying...</source> <translation>Todennetaan...</translation> </message> - <message> - <location filename="../src/ProcProgDiag.cpp" line="105"/> - <source>Error while running command:<p>%1</p>Qt error message follows (code #%2):<p>%3</p></source> - <translation>Seuraavaa komentoa suorittaessa tapahtui virhe:<p>%1</p>Qt virhe (koodi #%2):<p>%3</p></translation> - </message> - <message> - <location filename="../src/ProcProgDiag.cpp" line="155"/> - <source>Error while running command:<p>%1</p>quvi error message follows (code #%2):<p>%3</p></source> - <translation>Seuraavaa komentoa suorittaessa tapahtui virhe:<p>%1</p>quvi virhe (koodi #%2):<p>%3</p></translation> - </message> </context> <context> <name>nn::NAboutDialog</name> @@ -305,29 +265,62 @@ p, li { white-space: pre-wrap; } </message> </context> <context> + <name>nn::NErrorWhileDialog</name> + <message> + <location filename="../src/errorwhile/nerrorwhiledialog.cpp" line="42"/> + <source>Error while running command:</source> + <translation>Seuraavaa komentoa suorittaessa tapahtui virhe:</translation> + </message> + <message> + <location filename="../src/errorwhile/nerrorwhiledialog.cpp" line="45"/> + <source>Error message follows:</source> + <translation>Virhe:</translation> + </message> + <message> + <location filename="../src/errorwhile/nerrorwhiledialog.cpp" line="48"/> + <source>[code #%1]</source> + <translation>[koodi #%1]</translation> + </message> + <message> + <location filename="../src/errorwhile/nerrorwhiledialog.cpp" line="96"/> + <source>Co&py</source> + <translation>&Kopioi</translation> + </message> + <message> + <location filename="../src/errorwhile/nerrorwhiledialog.cpp" line="97"/> + <source>Copy to clipboard</source> + <translation>Kopioi leikepöydälle</translation> + </message> + <message> + <location filename="../src/errorwhile/nerrorwhiledialog.cpp" line="108"/> + <source>Error</source> + <translation>Virhe</translation> + </message> +</context> +<context> <name>nn::NFeedDialog</name> <message> - <location filename="../src/feed/nfeeddialog.cpp" line="48"/> + <location filename="../src/feed/nfeeddialog.cpp" line="51"/> <source>&Properties</source> <translation>O&minaisuudet</translation> </message> <message> - <location filename="../src/feed/nfeeddialog.cpp" line="49"/> + <location filename="../src/feed/nfeeddialog.cpp" line="52"/> <source>&Items</source> <translation>&Syötteen sisältö</translation> </message> <message> - <location filename="../src/feed/nfeeddialog.cpp" line="68"/> + <location filename="../src/feed/nfeeddialog.cpp" line="71"/> <source>YouTube feed</source> <translation>YouTube-syöte</translation> </message> <message> - <location filename="../src/feed/nfeeddialog.cpp" line="85"/> + <location filename="../src/feed/nfeeddialog.cpp" line="89"/> <source>Please read a feed</source> <translation>Ole hyvä ja hae syöte</translation> </message> <message> - <location filename="../src/feed/nfeeddialog.cpp" line="90"/> + <location filename="../src/feed/nfeeddialog.cpp" line="94"/> <source>Please select an item from the list</source> <translation>Ole hyvä ja valitse kohde listasta</translation> </message> @@ -335,40 +328,25 @@ p, li { white-space: pre-wrap; } <context> <name>nn::NFeedProgressDialog</name> <message> - <location filename="../src/feed/nfeedprogressdialog.cpp" line="53"/> + <location filename="../src/feed/nfeedprogressdialog.cpp" line="55"/> <source>Working...</source> <translation>Työskennellään...</translation> </message> <message> - <location filename="../src/feed/nfeedprogressdialog.cpp" line="79"/> + <location filename="../src/feed/nfeedprogressdialog.cpp" line="81"/> <source>Unexpected data from umph</source> <translation>umph-komento ei palauttanut odotettuja tietoja</translation> </message> <message> - <location filename="../src/feed/nfeedprogressdialog.cpp" line="87"/> - <source>Uncaught exception at line %1: %2</source> - <translation>Tietoja lukiessa, rivillä %1: tapahtui virhe %2</translation> - </message> - <message> - <location filename="../src/feed/nfeedprogressdialog.cpp" line="96"/> - <source>umph did not return any video entries</source> - <translation>umph-komento ei palauttanut tietoja</translation> - </message> - <message> - <location filename="../src/feed/nfeedprogressdialog.cpp" line="121"/> - <source>Error while running command:<p>%1</p>Qt error message follows (code #%2):<p>%3</p></source> - <translation>Seuraavaa komentoa suoritettassa tapahtui virhe:<p>%1</p>Qt virhe (koodi #%2):<p>%3</p></translation> - </message> - <message> - <location filename="../src/feed/nfeedprogressdialog.cpp" line="147"/> - <source>Error while running command:<p>%1</p>Error message follows (code #%2):<p>%3</p></source> - <translation>Seuraavaa komentoa suoritettassa tapahtui virhe:<p>%1</p>Virhe (koodi #%2):<p>%3</p></translation> + <location filename="../src/feed/nfeedprogressdialog.cpp" line="91"/> + <source>An error occurred while parsing JSON</source> + <translation>JSON-tietoja jäsentäessä tapahtui virhe</translation> </message> </context> <context> <name>nn::NFeedProperties</name> <message> - <location filename="../src/feed/nfeeddialog_properties.cpp" line="45"/> + <location filename="../src/feed/nfeeddialog_properties.cpp" line="47"/> <source>The start index parameter specifies the index of the first matching result that should be included in the result set. This parameter uses a one-based index, meaning the first result is 1, the second result @@ -382,7 +360,7 @@ start index parameter to 11 and the max results parameter to 10. <translation></translation> </message> <message> - <location filename="../src/feed/nfeeddialog_properties.cpp" line="56"/> + <location filename="../src/feed/nfeeddialog_properties.cpp" line="58"/> <source>The max results parameter specifies the maximum number of results that should be included in the result set. @@ -398,67 +376,67 @@ you set the max results parameter to 10. <translation></translation> </message> <message> - <location filename="../src/feed/nfeeddialog_properties.cpp" line="89"/> + <location filename="../src/feed/nfeeddialog_properties.cpp" line="91"/> <source>Uploads</source> <translation>Lataukset</translation> </message> <message> - <location filename="../src/feed/nfeeddialog_properties.cpp" line="90"/> + <location filename="../src/feed/nfeeddialog_properties.cpp" line="92"/> <source>Favorites</source> <translation>Suosikit</translation> </message> <message> - <location filename="../src/feed/nfeeddialog_properties.cpp" line="91"/> + <location filename="../src/feed/nfeeddialog_properties.cpp" line="93"/> <source>Playlist</source> <translation>Soittolista</translation> </message> <message> - <location filename="../src/feed/nfeeddialog_properties.cpp" line="98"/> + <location filename="../src/feed/nfeeddialog_properties.cpp" line="100"/> <source>YouTube username or playlist ID depending on your selection</source> <translation>YouTube käyttäjätunnus tai soittolistan tunnus</translation> </message> <message> - <location filename="../src/feed/nfeeddialog_properties.cpp" line="107"/> + <location filename="../src/feed/nfeeddialog_properties.cpp" line="109"/> <source>&Get the entire feed</source> <translation>&Hae kaikki</translation> </message> <message> - <location filename="../src/feed/nfeeddialog_properties.cpp" line="109"/> + <location filename="../src/feed/nfeeddialog_properties.cpp" line="111"/> <source>G&et the specified range from the feed</source> <translation>H&ae seuraavat</translation> </message> <message> - <location filename="../src/feed/nfeeddialog_properties.cpp" line="113"/> + <location filename="../src/feed/nfeeddialog_properties.cpp" line="115"/> <source>Please install umph 0.2.0 or later to enable</source> <translation>Asenna umph 0.2.0 tai uudempi versio</translation> </message> <message> - <location filename="../src/feed/nfeeddialog_properties.cpp" line="128"/> + <location filename="../src/feed/nfeeddialog_properties.cpp" line="130"/> <source>St&art index:</source> <translation>A&loita hakemiston kohdasta:</translation> </message> <message> - <location filename="../src/feed/nfeeddialog_properties.cpp" line="138"/> + <location filename="../src/feed/nfeeddialog_properties.cpp" line="140"/> <source>&Max. results:</source> <translation>&Enimmäismäärä:</translation> </message> <message> - <location filename="../src/feed/nfeeddialog_properties.cpp" line="148"/> + <location filename="../src/feed/nfeeddialog_properties.cpp" line="150"/> <source>Select range</source> <translation>Valitse raja-alue</translation> </message> <message> - <location filename="../src/feed/nfeeddialog_properties.cpp" line="192"/> + <location filename="../src/feed/nfeeddialog_properties.cpp" line="194"/> <source>I&D</source> <translation>&tunnus</translation> </message> <message> - <location filename="../src/feed/nfeeddialog_properties.cpp" line="192"/> + <location filename="../src/feed/nfeeddialog_properties.cpp" line="194"/> <source>for &user</source> <translation>&käyttäjälle</translation> </message> <message> - <location filename="../src/feed/nfeeddialog_properties.cpp" line="201"/> + <location filename="../src/feed/nfeeddialog_properties.cpp" line="203"/> <source>Please enter %1</source> <translation>Syötä %1</translation> </message> @@ -485,6 +463,50 @@ you set the max results parameter to 10. </message> </context> <context> + <name>nn::NLogDialog</name> + <message> + <location filename="../src/log/nlogdialog.cpp" line="44"/> + <source>&Recent</source> + <translation>&Aiemmat</translation> + </message> + <message> + <location filename="../src/log/nlogdialog.cpp" line="64"/> + <source>Log</source> + <translation>Historia</translation> + </message> + <message> + <location filename="../src/log/nlogdialog.cpp" line="90"/> + <source>Please select an item from the list</source> + <translation>Ole hyvä ja valitse kohde listasta</translation> + </message> +</context> +<context> + <name>nn::NLogRecent</name> + <message> + <location filename="../src/log/nlogdialog_recent.cpp" line="46"/> + <source>Title</source> + <translation>Otsikko</translation> + </message> + <message> + <location filename="../src/log/nlogdialog_recent.cpp" line="46"/> + <source>Added</source> + <translation>Lisätty</translation> + </message> + <message> + <location filename="../src/log/nlogdialog_recent.cpp" line="92"/> + <source>All records will be lost permanently. Really clear?</source> + <translation>Tiedot menetetään pysyvästi. Oletko varma?</translation> + </message> +</context> +<context> + <name>nn::NRecentMutator</name> + <message> + <location filename="../src/log/nrecentmutator.cpp" line="145"/> + <source>(no title)</source> + <translation>(ei otsikkotietoja)</translation> + </message> +</context> +<context> <name>nn::NSettingsAppearance</name> <message> <location filename="../src/settings/nsettingsdialog_options_appearance.cpp" line="49"/> @@ -593,29 +615,29 @@ you set the max results parameter to 10. <translation>&Kopioi komennolla</translation> </message> <message> - <location filename="../src/settings/nsettingsdialog_commands.cpp" line="167"/> + <location filename="../src/settings/nsettingsdialog_commands.cpp" line="168"/> <source>Pl&ay using</source> <translation>&Toista komennolla</translation> </message> <message> - <location filename="../src/settings/nsettingsdialog_commands.cpp" line="179"/> + <location filename="../src/settings/nsettingsdialog_commands.cpp" line="180"/> <source>Read &YouTube feeds using</source> <translation>&Lue YouTube-syötteitä komennolla</translation> </message> <message> - <location filename="../src/settings/nsettingsdialog_commands.cpp" line="208"/> + <location filename="../src/settings/nsettingsdialog_commands.cpp" line="209"/> <source>Please enter a custom command</source> <translation>Syötä oma komento</translation> </message> <message> <location filename="../src/settings/nsettingsdialog_commands.cpp" line="53"/> - <location filename="../src/settings/nsettingsdialog_commands.cpp" line="205"/> - <location filename="../src/settings/nsettingsdialog_commands.cpp" line="239"/> - <location filename="../src/settings/nsettingsdialog_commands.cpp" line="277"/> - <location filename="../src/settings/nsettingsdialog_commands.cpp" line="324"/> - <location filename="../src/settings/nsettingsdialog_commands.cpp" line="329"/> - <location filename="../src/settings/nsettingsdialog_commands.cpp" line="334"/> - <location filename="../src/settings/nsettingsdialog_commands.cpp" line="339"/> + <location filename="../src/settings/nsettingsdialog_commands.cpp" line="206"/> + <location filename="../src/settings/nsettingsdialog_commands.cpp" line="240"/> + <location filename="../src/settings/nsettingsdialog_commands.cpp" line="278"/> + <location filename="../src/settings/nsettingsdialog_commands.cpp" line="325"/> + <location filename="../src/settings/nsettingsdialog_commands.cpp" line="330"/> + <location filename="../src/settings/nsettingsdialog_commands.cpp" line="335"/> + <location filename="../src/settings/nsettingsdialog_commands.cpp" line="340"/> <source>Other</source> <translation>Oma</translation> </message> @@ -623,27 +645,27 @@ you set the max results parameter to 10. <context> <name>nn::NSettingsDialog</name> <message> - <location filename="../src/settings/nsettingsdialog.cpp" line="41"/> + <location filename="../src/settings/nsettingsdialog.cpp" line="42"/> <source>Op&tions</source> <translation>&Vaihtoehdot</translation> </message> <message> - <location filename="../src/settings/nsettingsdialog.cpp" line="42"/> + <location filename="../src/settings/nsettingsdialog.cpp" line="43"/> <source>Co&mmands</source> <translation>Ko&mennot</translation> </message> <message> - <location filename="../src/settings/nsettingsdialog.cpp" line="43"/> + <location filename="../src/settings/nsettingsdialog.cpp" line="44"/> <source>&Download</source> <translation>Kop&iointi</translation> </message> <message> - <location filename="../src/settings/nsettingsdialog.cpp" line="45"/> + <location filename="../src/settings/nsettingsdialog.cpp" line="46"/> <source>&Proxy</source> <translation>&Välityspalvelin</translation> </message> <message> - <location filename="../src/settings/nsettingsdialog.cpp" line="65"/> + <location filename="../src/settings/nsettingsdialog.cpp" line="66"/> <source>Settings</source> <translation>Asetukset</translation> </message> @@ -715,17 +737,17 @@ you set the max results parameter to 10. <context> <name>nn::NSettingsOptions</name> <message> - <location filename="../src/settings/nsettingsdialog_options.cpp" line="38"/> + <location filename="../src/settings/nsettingsdialog_options.cpp" line="39"/> <source>&Appearance</source> <translation>&Ulkoiset ominaisuudet</translation> </message> <message> - <location filename="../src/settings/nsettingsdialog_options.cpp" line="39"/> + <location filename="../src/settings/nsettingsdialog_options.cpp" line="40"/> <source>&Behaviour</source> <translation>&Ominaisuudet</translation> </message> <message> - <location filename="../src/settings/nsettingsdialog_options.cpp" line="40"/> + <location filename="../src/settings/nsettingsdialog_options.cpp" line="41"/> <source>Sys&tray</source> <translation></translation> </message> ----------------------------------------------------------------------- Summary of changes: tr/NomNom_fi_FI.ts | 304 ++++++++++++++++++++++++++++------------------------ 1 files changed, 163 insertions(+), 141 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-30 10:30:24
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via ac14a94f684982ce7c3016753c2cddd950025179 (commit) from b870a8205a75aab21aed05409f439c37e82d8b0c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/ac14a94f684982ce7c3016753c2cddd950025179 commit ac14a94f684982ce7c3016753c2cddd950025179 Author: Toni Gundogdu <le...@gm...> Date: Sun Oct 30 12:25:27 2011 +0200 Fix umph integration * umph returned "nothing found" even with feeds with items * Make nn::to_cmd_args use QString::SkipEmptyParts diff --git a/src/i/MainWindow.cpp b/src/i/MainWindow.cpp index 37c9445..5ebd2a1 100644 --- a/src/i/MainWindow.cpp +++ b/src/i/MainWindow.cpp @@ -699,6 +699,9 @@ void MainWindow::onFeed() .simplified(); QStringList args = nn::to_cmd_args(p); +#ifdef ENABLE_VERBOSE + qDebug() << __PRETTY_FUNCTION__ << __LINE__ << "args=" << args; +#endif const QString r = args.first(); if (r.isEmpty()) diff --git a/src/util/nutil.cpp b/src/util/nutil.cpp index 31dbb5f..3f23b6d 100644 --- a/src/util/nutil.cpp +++ b/src/util/nutil.cpp @@ -134,17 +134,20 @@ QStringList to_cmd_args(const QString& s) // $cmd_path:$cmd_args - if (s.simplified().contains(NSETTINGS_CMDPATH_SEPARATOR)) + static const QString::SplitBehavior sb = QString::SkipEmptyParts; + static const QString sep = NSETTINGS_CMDPATH_SEPARATOR; + + if (s.simplified().contains(sep)) { - QStringList r, a = s.simplified().split(NSETTINGS_CMDPATH_SEPARATOR); + QStringList r, a = s.simplified().split(sep); r << a.takeFirst(); - r << a.takeFirst().split(" "); + r << a.takeFirst().split(" ", sb); return r; } // "Other" value. - return s.simplified().split(" "); + return s.simplified().split(" ", sb); } } // namespace nn ----------------------------------------------------------------------- Summary of changes: src/i/MainWindow.cpp | 3 +++ src/util/nutil.cpp | 11 +++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-30 09:56:21
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via b870a8205a75aab21aed05409f439c37e82d8b0c (commit) from de755375c57f4be78c827cc581cb9ea7a8a58b95 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/b870a8205a75aab21aed05409f439c37e82d8b0c commit b870a8205a75aab21aed05409f439c37e82d8b0c Author: Toni Gundogdu <le...@gm...> Date: Sun Oct 30 11:40:08 2011 +0200 Revise README.packagers diff --git a/README.packagers b/README.packagers index 59be41d..b01d26e 100644 --- a/README.packagers +++ b/README.packagers @@ -5,43 +5,39 @@ PACKAGERS Prerequisites ------------- -Make sure you read the INSTALL file for the application prerequisites. +See the INSTALL file. -System wide configuration file +System-wide configuration file ------------------------------ -You can distribute 0.2 without a system wide configuration file. +If you choose to install NomNom with a system-wide configuration file, +please keep in mind that the users may override the values in the settings +at any time. -NomNom was, until 0.2, a tedious application to configure -- which is -why installing a system wide config file with predefined values was -previously a recommended step. - -You may still do this, if you like. Refer to the Qt documentation -(look up QSettings) for the typical search paths, e.g. on Unix-like -systems: +Refer to the Qt documentation (look up QSettings) for the typical search +paths as they tend to vary on how Qt was configured. For example, on a +typical Unix-like systems these may be: /etc/xdg/NomNom/NomNom.conf /etc/xdg/NomNom.conf /etc/NomNom.conf -Keep in mind, however, that the "system wide config values" are nothing -more than recommendations as the users may override them (in settings) at -anytime. - -Example (/etc/NomNom.conf): +Example: Force the application to use command "/foo/bar" instead of + default "quvi" [Settings] - ParseUsing=other: + ParseUsing=other^ ParseUsingOther=/foo/bar^-f -b %u -Make a note of the use of "other". This would make "/foo/bar" to be -used as the default value for "Parse using" command. The command line -arguments follow after the "^". - -Full list of the supported variables, can be found in: +You can tell the application to use a custom command by setting (in +this case) "ParseUsing" to "other^" and then add the "ParseUsingOther" +variable that defines the (path) to the custom command with the args. +Make also a note of the "^" that separates the command and the args. +For other supported Settings variables, see: $top_srcdir/src/settings/nsettings.cpp -Or take a look at your local user config. Run "nomnom --config-path" -to find the path to it. +Or, alternatively, you could use your own local config file as a +template config file. To find the path to the file, run: + nomnom --config-path ----------------------------------------------------------------------- Summary of changes: README.packagers | 42 +++++++++++++++++++----------------------- 1 files changed, 19 insertions(+), 23 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-28 14:45:29
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via de755375c57f4be78c827cc581cb9ea7a8a58b95 (commit) via 663dd37b38c12b9d34109529bd61e30ecd4acf76 (commit) from da248b9c73cc4295cd9f949f421547aef35e3fde (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/de755375c57f4be78c827cc581cb9ea7a8a58b95 commit de755375c57f4be78c827cc581cb9ea7a8a58b95 Author: Toni Gundogdu <le...@gm...> Date: Fri Oct 28 17:45:03 2011 +0300 Add size grips to NFeedDialog, NSettingsDialog diff --git a/src/feed/nfeeddialog.cpp b/src/feed/nfeeddialog.cpp index e3f534c..170c3bf 100644 --- a/src/feed/nfeeddialog.cpp +++ b/src/feed/nfeeddialog.cpp @@ -70,6 +70,7 @@ NFeedDialog::NFeedDialog(QWidget *parent, const QStringList& args) setWindowTitle(tr("YouTube feed")); setMinimumSize(QSize(500,400)); + setSizeGripEnabled(true); foreachWidget(); if (feedItems.count() > 0) diff --git a/src/settings/nsettingsdialog.cpp b/src/settings/nsettingsdialog.cpp index 68cd439..966f683 100644 --- a/src/settings/nsettingsdialog.cpp +++ b/src/settings/nsettingsdialog.cpp @@ -65,6 +65,7 @@ NSettingsDialog::NSettingsDialog(QWidget *parent/*=NULL*/) setWindowTitle(tr("Settings")); setMinimumSize(QSize(540,450)); + setSizeGripEnabled(true); fromConfig(); } http://repo.or.cz/w/nomnom.git/commit/663dd37b38c12b9d34109529bd61e30ecd4acf76 commit 663dd37b38c12b9d34109529bd61e30ecd4acf76 Author: Toni Gundogdu <le...@gm...> Date: Fri Oct 28 17:38:43 2011 +0300 Recent: resize to "Title" column contents * Add size grip to dialog diff --git a/src/log/nlogdialog.cpp b/src/log/nlogdialog.cpp index 695d9ad..5e9b8ee 100644 --- a/src/log/nlogdialog.cpp +++ b/src/log/nlogdialog.cpp @@ -62,6 +62,7 @@ NLogDialog::NLogDialog(QWidget *parent/*=NULL*/) setMinimumSize(QSize(500,400)); setWindowTitle(tr("Log")); + setSizeGripEnabled(true); foreachWidget(); } diff --git a/src/log/nlogdialog_recent.cpp b/src/log/nlogdialog_recent.cpp index 6b0cb5e..6d9cea6 100644 --- a/src/log/nlogdialog_recent.cpp +++ b/src/log/nlogdialog_recent.cpp @@ -71,7 +71,7 @@ void NLogRecent::read() void NLogRecent::init() { recent.populate(_treew); - _treew->resizeColumnToContents(1); + _treew->resizeColumnToContents(0); _treew->sortByColumn(1); _treew->setSortingEnabled(true); } ----------------------------------------------------------------------- Summary of changes: src/feed/nfeeddialog.cpp | 1 + src/log/nlogdialog.cpp | 1 + src/log/nlogdialog_recent.cpp | 2 +- src/settings/nsettingsdialog.cpp | 1 + 4 files changed, 4 insertions(+), 1 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-28 14:28:28
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via da248b9c73cc4295cd9f949f421547aef35e3fde (commit) from 9fdd096b2cb4b79c2306bcbcda73b078bd1eabf4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/da248b9c73cc4295cd9f949f421547aef35e3fde commit da248b9c73cc4295cd9f949f421547aef35e3fde Author: Toni Gundogdu <le...@gm...> Date: Fri Oct 28 17:26:41 2011 +0300 Bump max recent URLs to 25 diff --git a/src/i/MainWindow.cpp b/src/i/MainWindow.cpp index cee1717..37c9445 100644 --- a/src/i/MainWindow.cpp +++ b/src/i/MainWindow.cpp @@ -75,8 +75,9 @@ MainWindow::MainWindow() connect(_proc, SIGNAL(finished(QString)), this, SLOT(onProcFinished(QString))); -// Read recent URLs into memory. +// Recent URLs. + recent.setMaxItems(25); recent.read(); // Custom program icon. ----------------------------------------------------------------------- Summary of changes: src/i/MainWindow.cpp | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-27 20:00:32
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via 9fdd096b2cb4b79c2306bcbcda73b078bd1eabf4 (commit) from c98e0b65eef6a2115eae15fa13fef9a89374ba53 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/9fdd096b2cb4b79c2306bcbcda73b078bd1eabf4 commit 9fdd096b2cb4b79c2306bcbcda73b078bd1eabf4 Author: Toni Gundogdu <le...@gm...> Date: Thu Oct 27 23:01:28 2011 +0300 Add Qt module note to INSTALL diff --git a/INSTALL b/INSTALL index 5c125ca..a330567 100644 --- a/INSTALL +++ b/INSTALL @@ -7,6 +7,8 @@ Prerequisites * umph (0.1.6+) <http://umph.googlecode.com/> * curl (7.20.0+) <http://curl.haxx.se/> * qt (4.6+) <http://qt.nokia.com/> + You can run "grep < configure.ac ^PKG" to get a + list of the Qt modules that nomnom uses * qjson (0.7.1+) <http://qjson.sourceforge.net> * media player that supports streaming (e.g. vlc, mplayer) ----------------------------------------------------------------------- Summary of changes: INSTALL | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-27 19:55:35
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via c98e0b65eef6a2115eae15fa13fef9a89374ba53 (commit) via fb3dd47a41c948cacfc5d697fa8ee267989ea7af (commit) from 2b9280145afba0e226448b5711ad499d2844982d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/c98e0b65eef6a2115eae15fa13fef9a89374ba53 commit c98e0b65eef6a2115eae15fa13fef9a89374ba53 Author: Toni Gundogdu <le...@gm...> Date: Thu Oct 27 18:51:32 2011 +0300 Use NUtil 'info' and 'ask' instead diff --git a/src/log/nlogdialog.cpp b/src/log/nlogdialog.cpp index 9fca6d4..695d9ad 100644 --- a/src/log/nlogdialog.cpp +++ b/src/log/nlogdialog.cpp @@ -24,6 +24,8 @@ #include <QToolBox> #include <NLogDialog> +#include <NSettings> +#include <NUtil> namespace nn { @@ -84,7 +86,7 @@ void NLogDialog::done(int n) if (_selected.isEmpty()) { _toolbox->setCurrentIndex(0); - m_info(tr("Please select an item from the list")); + info(this, tr("Please select an item from the list")); return; } } @@ -102,11 +104,6 @@ QString NLogDialog::selected() const return _selected; } -void NLogDialog::m_info(const QString& msg) -{ - QMessageBox::information(this, QCoreApplication::applicationName(), msg); -} - // NLogWidget NLogWidget::NLogWidget(QWidget *parent/*=NULL*/) diff --git a/src/log/nlogdialog.h b/src/log/nlogdialog.h index 5635794..33313c7 100644 --- a/src/log/nlogdialog.h +++ b/src/log/nlogdialog.h @@ -36,7 +36,6 @@ public: protected: void done(int); private: - void m_info(const QString& msg); void foreachWidget(); private slots: void selected(QString); @@ -75,8 +74,6 @@ protected: virtual void read(); #endif private: - int confirmClear(); -private: QTreeWidget *_treew; }; diff --git a/src/log/nlogdialog_recent.cpp b/src/log/nlogdialog_recent.cpp index 775ff94..6b0cb5e 100644 --- a/src/log/nlogdialog_recent.cpp +++ b/src/log/nlogdialog_recent.cpp @@ -28,6 +28,8 @@ #include <NRecentMutator> #include <NRecentEntry> #include <NLogDialog> +#include <NSettings> +#include <NUtil> extern nn::NRecentMutator recent; @@ -82,22 +84,16 @@ void NLogRecent::selected() emit selected(i->text(0)); } -int NLogRecent::confirmClear() -{ - return QMessageBox::question(this, - qApp->applicationName(), - tr("All records will be lost permanently. " - "Really clear?"), - QMessageBox::Yes|QMessageBox::No); -} - void NLogRecent::reset() { if (_treew->topLevelItemCount() == 0) return; - if (confirmClear() != QMessageBox::Yes) - return; + if (ask(this, tr("All records will be lost permanently. Really clear?")) + != QMessageBox::Yes) + { + return; + } _treew->clear(); recent.clear(); http://repo.or.cz/w/nomnom.git/commit/fb3dd47a41c948cacfc5d697fa8ee267989ea7af commit fb3dd47a41c948cacfc5d697fa8ee267989ea7af Author: Toni Gundogdu <le...@gm...> Date: Thu Oct 27 18:39:01 2011 +0300 Use NLogDialog instead * Replace old "recent URL" subsystem * Remove "using namespace nn" * Add prerequisite for QJson * Cleanup misc. comments diff --git a/src/Makefile.am b/src/Makefile.am index cd97339..db43bc5 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -15,8 +15,10 @@ nodist_nomnom_SOURCES= moc_nsettingsdialog.cpp moc_ndetectdialog.cpp moc_ntripwireedit.cpp + moc_nrecententry.cpp moc_naboutdialog.cpp moc_nfeeddialog.cpp + moc_nlogdialog.cpp moc_nsystray.cpp moc_MainWindow.cpp moc_DownloadDiag.cpp @@ -37,6 +39,12 @@ moc_DownloadDiag.cpp: moc_ProcProgDiag.cpp: $(MOC) -o $@ $(top_srcdir)/src/ProcProgDiag.h +moc_nrecententry.cpp: + $(MOC) -o $@ $(top_srcdir)/src/log/nrecententry.h + +moc_nlogdialog.cpp: + $(MOC) -o $@ $(top_srcdir)/src/log/nlogdialog.h + moc_nerrorwhiledialog.cpp: $(MOC) -o $@ $(top_srcdir)/src/errorwhile/nerrorwhiledialog.h @@ -65,6 +73,20 @@ qrc_nomnom.cpp: $(RCC) -o $@ $(top_srcdir)/src/rc/nomnom.qrc src=+ about/naboutdialog.cpp + detect/ndetectdialog.cpp + detect/ndetect.cpp + errorwhile/nerrorwhiledialog.cpp + feed/nfeeddialog_properties.cpp + feed/nfeedprogressdialog.cpp + feed/nfeeddialog_items.cpp + feed/nfeeddialog.cpp + feed/nfeed.cpp + lang/nlang.cpp + log/nlogdialog_recent.cpp + log/nrecentmutator.cpp + log/nrecententry.cpp + log/nlogdialog.cpp settings/nsettingsdialog_options_appearance.cpp settings/nsettingsdialog_options_behaviour.cpp settings/nsettingsdialog_options_systray.cpp @@ -75,27 +97,22 @@ src= settings/nsettingsmutator.cpp settings/nsettingsdialog.cpp settings/nsettings.cpp - errorwhile/nerrorwhiledialog.cpp - widgets/ntripwireedit.cpp - detect/ndetectdialog.cpp - detect/ndetect.cpp - about/naboutdialog.cpp - feed/nfeeddialog_properties.cpp - feed/nfeedprogressdialog.cpp - feed/nfeeddialog_items.cpp - feed/nfeeddialog.cpp - feed/nfeed.cpp - lang/nlang.cpp - util/nutil.cpp systray/nsystray.cpp + util/nutil.cpp + widgets/ntripwireedit.cpp i/MainWindow.cpp ProcProgDiag.cpp DownloadDiag.cpp main.cpp - Recent.cpp Media.cpp hdr=+ NAboutDialog + about/naboutdialog.h + NDetectDialog + NDetect + detect/ndetectdialog.h + detect/ndetect.h NErrorWhileDialog errorwhile/nerrorwhiledialog.h NFeedProgressDialog @@ -104,30 +121,29 @@ hdr= feed/nfeedprogressdialog.h feed/nfeeddialog.h feed/nfeed.h + NLang + lang/nlang.h + NRecentMutator + NRecentEntry + NLogDialog + log/nrecentmutator.h + log/nrecententry.h + log/nlogdialog.h + NTripwireEdit + widgets/ntripwireedit.h NSettingsMutator NSettingsDialog NSettings settings/nsettingsmutator.h settings/nsettingsdialog.h settings/nsettings.h - NDetectDialog - NDetect - detect/ndetectdialog.h - detect/ndetect.h - NTripwireEdit - widgets/ntripwireedit.h NSysTray systray/nsystray.h - NAboutDialog - about/naboutdialog.h - NLang - lang/nlang.h NUtil util/nutil.h i/MainWindow.h ProcProgDiag.h DownloadDiag.h - Recent.h Media.h bin_PROGRAMS= nomnom diff --git a/src/NLogDialog b/src/NLogDialog new file mode 100644 index 0000000..44029cf --- /dev/null +++ b/src/NLogDialog @@ -0,0 +1 @@ +#include "log/nlogdialog.h" diff --git a/src/NRecentEntry b/src/NRecentEntry new file mode 100644 index 0000000..ea8b4d9 --- /dev/null +++ b/src/NRecentEntry @@ -0,0 +1 @@ +#include "log/nrecententry.h" diff --git a/src/NRecentMutator b/src/NRecentMutator new file mode 100644 index 0000000..9db9d85 --- /dev/null +++ b/src/NRecentMutator @@ -0,0 +1 @@ +#include "log/nrecentmutator.h" diff --git a/src/Recent.cpp b/src/Recent.cpp deleted file mode 100644 index a4a775e..0000000 --- a/src/Recent.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/* - * NomNom - * Copyright (C) 2010 Toni Gundogdu <le...@gm...> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include "config.h" - -#include <QSettings> -#include <QDebug> - -#include "Recent.h" - -#define QSETTINGS_GROUP "Recent" - -Recent::Recent () :maxItems (10) { } -Recent::~Recent () { } - -void -Recent::write () const -{ - QSettings ().setValue(QString("%1/drops").arg(QSETTINGS_GROUP), drops); -} - -void -Recent::read () -{ - drops = QSettings ().value (QString ("%1/drops") - .arg (QSETTINGS_GROUP)) - .toStringList (); -} - -void -Recent::append(const QString& s) -{ - drops.prepend(s); - drops.removeDuplicates(); - - if (drops.size() > maxItems) - drops.takeFirst(); -} - -Recent& -Recent::operator<<(const QString& s) -{ - append (s); - return *this; -} - -QStringList Recent::toStringList () const -{ - return drops; -} - -void Recent::clear () -{ - drops.clear (); -} - -// vim: set ts=2 sw=2 tw=72 expandtab: diff --git a/src/i/MainWindow.cpp b/src/i/MainWindow.cpp index 50c3dc1..cee1717 100644 --- a/src/i/MainWindow.cpp +++ b/src/i/MainWindow.cpp @@ -33,14 +33,16 @@ #include <NErrorWhileDialog> #include <NSettingsMutator> #include <NSettingsDialog> +#include <NRecentMutator> +#include <NRecentEntry> #include <NAboutDialog> #include <NFeedDialog> +#include <NLogDialog> #include <NSettings> #include <NSysTray> #include <NLang> #include <NUtil> -#include "Recent.h" #include "DownloadDiag.h" #include "ProcProgDiag.h" #include "MainWindow.h" @@ -52,10 +54,8 @@ extern bool have_quvi_feature_query_formats; extern nn::NSettingsMutator settings; extern bool have_umph_feature_all; +extern nn::NRecentMutator recent; extern nn::NSysTray *systray; -extern Recent recent; - -// Modes. enum { StreamMedia=0, DownloadMedia }; @@ -75,6 +75,10 @@ MainWindow::MainWindow() connect(_proc, SIGNAL(finished(QString)), this, SLOT(onProcFinished(QString))); +// Read recent URLs into memory. + + recent.read(); + // Custom program icon. #ifdef _1 @@ -117,7 +121,7 @@ void MainWindow::createContextMenu() #undef add_s #undef creat_a - // Add key shortcuts. +// Add key shortcuts. #define _wrap(s,k) do { _actions[s]->setShortcut(QKeySequence(k)); } while (0) @@ -131,13 +135,11 @@ void MainWindow::createContextMenu() _wrap(tr("Quit"), "Ctrl+Q"); #undef _wrap - // Add the context menu. +// Add the context menu. textBrowser->setContextMenuPolicy(Qt::ActionsContextMenu); } -// Create tray icon. - void MainWindow::createTrayIcon() { systray = new nn::NSysTray(this, QString("<b>NomNom</b> %1").arg(VN)); @@ -181,7 +183,12 @@ void MainWindow::createTrayIcon() show(); } -// Handle (dropped) URL. +#ifdef ENABLE_VERBOSE +static void print_url(const nn::NRecentEntry& r) +{ + qDebug() << __PRETTY_FUNCTION__ << __LINE__ << r.url(); +} +#endif void MainWindow::handleURL(const QString& url) { @@ -223,7 +230,14 @@ void MainWindow::handleURL(const QString& url) // Recent. - recent << url; + nn::NRecentEntry e; + e.setURL(url); + + recent << e; + +#ifdef ENABLE_VERBOSE + recent.for_each(print_url); +#endif // 0x1=invalid input, 0x3=no input @@ -288,11 +302,19 @@ void MainWindow::handleURL(const QString& url) if (_proc->canceled()) return; -// Download media or pass media stream URL to a media player. +// Check for quvi errors. QString errmsg; if (parseOK(errmsg)) { + // Update recent entry. Media URL is set already. Update title + // only. + + e.setTitle(_media.get(Media::PageTitle).toString().simplified()); + recent.update(e); + + // Download media or pass media stream URL. + if (modeCBox->currentIndex() == StreamMedia) streamMedia(); else @@ -309,8 +331,6 @@ void MainWindow::handleURL(const QString& url) } } -// Query formats to an URL. - bool MainWindow::queryFormats(QStringList& formats, const QStringList& q_args, const QString& url, @@ -361,8 +381,6 @@ bool MainWindow::queryFormats(QStringList& formats, return false; } -// Select a format. - bool MainWindow::selectFormat(QStringList& formats, QString& fmt) { // Prompt only if count exceeds 1 ("default)". @@ -395,8 +413,6 @@ bool MainWindow::selectFormat(QStringList& formats, QString& fmt) return ok && !fmt.isEmpty(); } -// View media (stream). - void MainWindow::streamMedia() { const QString p = settings.eitherValue(nn::PlayUsing, @@ -421,8 +437,6 @@ void MainWindow::streamMedia() } } -// Download media (to a file). - void MainWindow::downloadMedia() { QString fname = settings.value(nn::FilenameFormat).toString(); @@ -544,8 +558,6 @@ void MainWindow::downloadMedia() } } -// Change program icon. - void MainWindow::changeProgramIcon() { #ifdef _1 @@ -569,8 +581,6 @@ void MainWindow::changeProgramIcon() #endif // _1 } -// Parse JSON data returned by quvi. - bool MainWindow::parseOK(QString& errmsg) { if (_proc->failed()) @@ -652,8 +662,6 @@ void MainWindow::onSettings() } } -// Slot: About. - #define WWW "http://nomnom.sourceforge.net/" void MainWindow::onAbout() @@ -664,35 +672,13 @@ void MainWindow::onAbout() #undef WWW -// Slot: Recent. - void MainWindow::onRecent() { - const QStringList lst = recent.toStringList(); - - if (lst.size() == 0) - { - nn::info(this, tr("No record of recently visited URLs found.")); - return; - } - - bool ok = false; - const QString s = - QInputDialog::getItem(this, - tr("Recent URLs"), - tr("Select URL (most recent first):"), - lst, - 0, - false, - &ok); - if (!ok) - return; - - handleURL(s); + nn::NLogDialog *d = new nn::NLogDialog(this); + if (d->exec() == QDialog::Accepted) + handleURL(d->selected()); } -// Slot: Download. - void MainWindow::onAddress() { const QString url = @@ -704,8 +690,6 @@ void MainWindow::onAddress() handleURL(url); } -// Slot: on feed. - void MainWindow::onFeed() { const QString p = settings.eitherValue(nn::FeedUsing, @@ -735,15 +719,11 @@ void MainWindow::onFeed() handleURL(d->selected()); } -// Slot: quvi finished. - void MainWindow::onProcFinished(QString output) { _json = output; } -// Event: DragEnter. - void MainWindow::dragEnterEvent(QDragEnterEvent *e) { QUrl url(e->mimeData()->text()); @@ -751,8 +731,6 @@ void MainWindow::dragEnterEvent(QDragEnterEvent *e) e->acceptProposedAction(); } -// Event: Drop. - void MainWindow::dropEvent(QDropEvent *e) { handleURL(e->mimeData()->text().simplified()); diff --git a/src/log/nlogdialog.cpp b/src/log/nlogdialog.cpp new file mode 100644 index 0000000..9fca6d4 --- /dev/null +++ b/src/log/nlogdialog.cpp @@ -0,0 +1,119 @@ +/* NomNom + * Copyright (C) 2011 Toni Gundogdu <le...@gm...> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "config.h" + +#include <QCoreApplication> +#include <QDialogButtonBox> +#include <QMessageBox> +#include <QVBoxLayout> +#include <QToolBox> + +#include <NLogDialog> + +namespace nn +{ + +NLogDialog::NLogDialog(QWidget *parent/*=NULL*/) + : QDialog(parent), _toolbox(NULL) +{ + +// Toolbox + + _toolbox = new QToolBox; + + NLogRecent *recent = new NLogRecent; + connect(recent, SIGNAL(selected(QString)), this, SLOT(selected(QString))); + + _toolbox->addItem(recent, tr("&Recent")); + +// Button box + + QDialogButtonBox *bb = new QDialogButtonBox( + QDialogButtonBox::Ok | QDialogButtonBox::Cancel); + + connect(bb, SIGNAL(accepted()), this, SLOT(accept())); + connect(bb, SIGNAL(rejected()), this, SLOT(reject())); + +// Layout + + QVBoxLayout *box = new QVBoxLayout; + box->addWidget(_toolbox); + box->addWidget(bb); + setLayout(box); + +// Window + + setMinimumSize(QSize(500,400)); + setWindowTitle(tr("Log")); + + foreachWidget(); +} + +void NLogDialog::foreachWidget() +{ + const int c = _toolbox->count(); + for (int i=0; i<c; ++i) + { + NLogWidget *l = dynamic_cast<NLogWidget*>(_toolbox->widget(i)); +#ifdef _1 + l->read(); +#endif + l->init(); + } +} + +void NLogDialog::done(int n) +{ + if (n == QDialog::Accepted) + { + if (_selected.isEmpty()) + { + _toolbox->setCurrentIndex(0); + m_info(tr("Please select an item from the list")); + return; + } + } + QDialog::done(n); + close(); +} + +void NLogDialog::selected(QString s) +{ + _selected = s; +} + +QString NLogDialog::selected() const +{ + return _selected; +} + +void NLogDialog::m_info(const QString& msg) +{ + QMessageBox::information(this, QCoreApplication::applicationName(), msg); +} + +// NLogWidget + +NLogWidget::NLogWidget(QWidget *parent/*=NULL*/) + : QWidget(parent) +{ +} + +} // namespace nn + +/* vim: set ts=2 sw=2 tw=72 expandtab: */ diff --git a/src/log/nlogdialog.h b/src/log/nlogdialog.h new file mode 100644 index 0000000..5635794 --- /dev/null +++ b/src/log/nlogdialog.h @@ -0,0 +1,87 @@ +/* NomNom + * Copyright (C) 2011 Toni Gundogdu <le...@gm...> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef nlogdialog_h +#define nlogdialog_h + +#include <QDialog> + +class QTreeWidget; +class QToolBox; + +namespace nn +{ + +class NLogDialog : public QDialog +{ + Q_OBJECT +public: + NLogDialog(QWidget *parent=NULL); +public: + QString selected() const; +protected: + void done(int); +private: + void m_info(const QString& msg); + void foreachWidget(); +private slots: + void selected(QString); +private: + QToolBox *_toolbox; + QString _selected; +}; + +class NLogWidget : public QWidget +{ + Q_OBJECT +public: + NLogWidget(QWidget *parent); +protected: + virtual void init() = 0; +#ifdef _1 + virtual void read() = 0; +#endif +// Friends + friend class NLogDialog; +}; + +class NLogRecent : public NLogWidget +{ + Q_OBJECT +public: + NLogRecent(QWidget *parent=NULL); +signals: + void selected(QString); +private slots: + void selected(); + void reset(); +protected: + virtual void init(); +#ifdef _1 + virtual void read(); +#endif +private: + int confirmClear(); +private: + QTreeWidget *_treew; +}; + +} // namespace nn + +#endif + +/* vim: set ts=2 sw=2 tw=72 expandtab: */ diff --git a/src/log/nlogdialog_recent.cpp b/src/log/nlogdialog_recent.cpp new file mode 100644 index 0000000..775ff94 --- /dev/null +++ b/src/log/nlogdialog_recent.cpp @@ -0,0 +1,108 @@ +/* NomNom + * Copyright (C) 2011 Toni Gundogdu <le...@gm...> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "config.h" + +#include <QCoreApplication> +#include <QDialogButtonBox> +#include <QPushButton> +#include <QVBoxLayout> +#include <QTextStream> +#include <QTreeWidget> +#include <QMessageBox> + +#include <NRecentMutator> +#include <NRecentEntry> +#include <NLogDialog> + +extern nn::NRecentMutator recent; + +namespace nn +{ + +NLogRecent::NLogRecent(QWidget *parent/*=NULL*/) + : NLogWidget(parent), _treew(NULL) +{ + +// Widgets + + _treew = new QTreeWidget; + _treew->setHeaderLabels(QStringList() << tr("Title") << tr("Added")); + _treew->setColumnCount(2); + + connect(_treew, SIGNAL(itemSelectionChanged()), this, SLOT(selected())); + + QDialogButtonBox *bb = new QDialogButtonBox(QDialogButtonBox::Reset); + + connect(bb->button(QDialogButtonBox::Reset), SIGNAL(clicked()), + this, SLOT(reset())); + +// Layout + + QVBoxLayout *box = new QVBoxLayout; + box->addWidget(_treew); + box->addWidget(bb); + setLayout(box); +} + +#ifdef _1 +void NLogRecent::read() +{ + recent.read(); +} +#endif + +void NLogRecent::init() +{ + recent.populate(_treew); + _treew->resizeColumnToContents(1); + _treew->sortByColumn(1); + _treew->setSortingEnabled(true); +} + +void NLogRecent::selected() +{ + QTreeWidgetItem *i = _treew->selectedItems().first(); + i = (i->childCount() > 0) ? i->child(0) : i; + if (i) + emit selected(i->text(0)); +} + +int NLogRecent::confirmClear() +{ + return QMessageBox::question(this, + qApp->applicationName(), + tr("All records will be lost permanently. " + "Really clear?"), + QMessageBox::Yes|QMessageBox::No); +} + +void NLogRecent::reset() +{ + if (_treew->topLevelItemCount() == 0) + return; + + if (confirmClear() != QMessageBox::Yes) + return; + + _treew->clear(); + recent.clear(); +} + +} // namespace nn + +/* vim: set ts=2 sw=2 tw=72 expandtab: */ diff --git a/src/log/nrecententry.cpp b/src/log/nrecententry.cpp new file mode 100644 index 0000000..6827f22 --- /dev/null +++ b/src/log/nrecententry.cpp @@ -0,0 +1,85 @@ +/* NomNom + * Copyright (C) 2011 Toni Gundogdu <le...@gm...> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "config.h" + +#include <NRecentEntry> + +namespace nn +{ + +NRecentEntry::NRecentEntry(QObject *parent/*=NULL*/) + : QObject(parent), _added(QDateTime::currentDateTime()) +{ +} + +NRecentEntry::NRecentEntry(const NRecentEntry& e, QObject *parent/*=NULL*/) + : QObject(parent) +{ + _copy(e); +} + +NRecentEntry& NRecentEntry::operator=(const NRecentEntry& e) +{ + if (this != &e) _copy(e); + return *this; +} + +void NRecentEntry::_copy(const NRecentEntry& e) +{ + _added = e.added(); + _title = e.title(); + _url = e.url(); +} + +NRecentEntry::~NRecentEntry() +{ +} + +void NRecentEntry::setAdded(const QDateTime& d) +{ + _added = d; +} + +QDateTime NRecentEntry::added() const +{ + return _added; +} + +void NRecentEntry::setTitle(const QString& t) +{ + _title = t; +} + +QString NRecentEntry::title() const +{ + return _title; +} + +void NRecentEntry::setURL(const QString& u) +{ + _url = u; +} + +QString NRecentEntry::url() const +{ + return _url; +} + +} // namespace nn + +/* vim: set ts=2 sw=2 tw=72 expandtab: */ diff --git a/src/log/nrecententry.h b/src/log/nrecententry.h new file mode 100644 index 0000000..82dcf6f --- /dev/null +++ b/src/log/nrecententry.h @@ -0,0 +1,56 @@ +/* NomNom + * Copyright (C) 2011 Toni Gundogdu <le...@gm...> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef nrecententry_h +#define nrecententry_h + +#include <QDateTime> + +namespace nn +{ + +class NRecentEntry : public QObject +{ + Q_OBJECT + Q_PROPERTY(QDateTime added READ added WRITE setAdded) + Q_PROPERTY(QString title READ title WRITE setTitle) + Q_PROPERTY(QString url READ url WRITE setURL) +public: + NRecentEntry(QObject *parent=NULL); + NRecentEntry(const NRecentEntry&, QObject *parent=NULL); + NRecentEntry& operator=(const NRecentEntry&); + virtual ~NRecentEntry(); +public: + void setAdded(const QDateTime&); + void setTitle(const QString&); + void setURL(const QString&); + QDateTime added() const; + QString title() const; + QString url() const; +private: + void _copy(const NRecentEntry&); +private: + QDateTime _added; + QString _title; + QString _url; +}; + +} // namespace nn + +#endif + +/* vim: set ts=2 sw=2 tw=72 expandtab: */ diff --git a/src/log/nrecentmutator.cpp b/src/log/nrecentmutator.cpp new file mode 100644 index 0000000..b29ac7b --- /dev/null +++ b/src/log/nrecentmutator.cpp @@ -0,0 +1,156 @@ +/* NomNom + * Copyright (C) 2011 Toni Gundogdu <le...@gm...> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "config.h" + +#include <QCoreApplication> +#include <QTreeWidget> +#include <QSettings> + +#ifdef ENABLE_VERBOSE +#include <QDebug> +#endif + +#include <qjson/qobjecthelper.h> +#include <qjson/serializer.h> +#include <qjson/parser.h> + +#include <NRecentMutator> +#include <NRecentEntry> + +namespace nn +{ + +enum { MAX_ITEMS=10 }; + +NRecentMutator::NRecentMutator() + : _maxItems(MAX_ITEMS) +{ +} + +NRecentMutator& NRecentMutator::operator<<(const NRecentEntry& e) +{ + append(e); + return *this; +} + +void NRecentMutator::setMaxItems(const int n) +{ + _maxItems = n; +} + +void NRecentMutator::append(const NRecentEntry& e, + const bool ignoreLimit/*=false*/) +{ + foreach (const NRecentEntry *r, _entries) + { + if (r->url() == e.url()) + return; // Found duplicate. + } + + NRecentEntry *r = new NRecentEntry(e); + _entries.prepend(r); + + if (!ignoreLimit && _entries.size() > _maxItems) + _entries.takeLast(); + +#ifdef ENABLE_VERBOSE + qDebug() << __PRETTY_FUNCTION__ << __LINE__ << "size=" << _entries.size(); +#endif +} + +void NRecentMutator::update(const NRecentEntry& e) +{ + foreach (NRecentEntry *r, _entries) + { + if (r->url() == e.url()) + { + *r = e; // Update existing entry. + return; + } + } +} + +void NRecentMutator::clear() +{ + _entries.clear(); + write(); +} + +void NRecentMutator::write() +{ + QVariantList l; + foreach (const NRecentEntry *r, _entries) + { + l << QJson::QObjectHelper::qobject2qvariant(r); + } + QSettings s; + s.setValue("Recent/data", QJson::Serializer().serialize(l)); +} + +void NRecentMutator::read() +{ + _entries.clear(); + + QSettings s; + if (!s.contains("Recent/data")) + return; + + QJson::Parser p; + bool ok; + + QVariant d = p.parse(s.value("Recent/data").toByteArray(), &ok); + if (ok) + { + foreach (const QVariant v, d.toList()) + { + NRecentEntry e; + QJson::QObjectHelper::qvariant2qobject(v.toMap(), &e); + append(e, true); + } + } +} + +void NRecentMutator::for_each(foreach_callback fp) +{ + foreach (const NRecentEntry *r, _entries) + { + (fp)(*r); + } +} + +void NRecentMutator::populate(QTreeWidget *w) +{ + w->clear(); + foreach (const NRecentEntry *r, _entries) + { + const QString t = r->title(); + + QTreeWidgetItem *i = new QTreeWidgetItem(w); + i->setText(0, t.isEmpty() + ? qApp->translate("nn::NRecentMutator", "(no title)") + : t); + i->setText(1, r->added().toString(Qt::ISODate)); + + QTreeWidgetItem *j = new QTreeWidgetItem(i); + j->setText(0, r->url()); + } +} + +} // namespace nn + +/* vim: set ts=2 sw=2 tw=72 expandtab: */ diff --git a/src/Recent.h b/src/log/nrecentmutator.h similarity index 52% rename from src/Recent.h rename to src/log/nrecentmutator.h index 37f971f..1196f7c 100644 --- a/src/Recent.h +++ b/src/log/nrecentmutator.h @@ -1,6 +1,5 @@ -/* - * NomNom - * Copyright (C) 2010 Toni Gundogdu <le...@gm...> +/* NomNom + * Copyright (C) 2011 Toni Gundogdu <le...@gm...> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,32 +15,41 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef nomnom_recent_h -#define nomnom_recent_h +#ifndef nrecentmutator_h +#define nrecentmutator_h -#include <QStringList> +#include <QList> -class Recent +class QTreeWidget; + +namespace nn +{ + +class NRecentEntry; + +class NRecentMutator { public: - Recent (); - virtual ~Recent(); -public: - void setMaxItems(const int); -public: - void write () const; - void read (); - void append(const QString&); - void clear (); + NRecentMutator(); + NRecentMutator& operator<<(const NRecentEntry&); public: - QStringList toStringList () const; + typedef void (*foreach_callback)(const NRecentEntry&); public: - Recent& operator<< (const QString&); + void setMaxItems(const int); + void append(const NRecentEntry&, const bool ignoreLimit=false); + void update(const NRecentEntry&); + void for_each(foreach_callback); + void populate(QTreeWidget*); + void write(); + void clear(); + void read(); private: - QStringList drops; - int maxItems; + QList<NRecentEntry*> _entries; + int _maxItems; }; +} // namespace nn + #endif -// vim: set ts=2 sw=2 tw=72 expandtab: +/* vim: set ts=2 sw=2 tw=72 expandtab: */ diff --git a/src/main.cpp b/src/main.cpp index 0a2a8e2..c22bfa0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -30,25 +30,22 @@ #endif #include <NSettingsMutator> +#include <NRecentMutator> #include <NDetectDialog> #include <NSysTray> #include <NFeed> #include <NLang> -#include "Recent.h" -// UI: #include "MainWindow.h" -using namespace nn; - bool have_quvi_feature_query_formats = false; bool have_umph_feature_all = false; -NSettingsMutator settings; -feed::NFeedList feedItems; -NSysTray *systray = NULL; -Recent recent; +nn::NSettingsMutator settings; +nn::feed::NFeedList feedItems; +nn::NSysTray *systray = NULL; +nn::NRecentMutator recent; -static void set_value(const SettingKey k, const detect::NResult& r) +static void set_value(const nn::SettingKey k, const nn::detect::NResult& r) { settings.setValue(k, QString("%1%2%3") .arg(r.first) @@ -58,13 +55,13 @@ static void set_value(const SettingKey k, const detect::NResult& r) static void first_run(QSettings& s) { - NDetectDialog *d = new NDetectDialog; + nn::NDetectDialog *d = new nn::NDetectDialog; d->showModeComboBox(false); d->exec(); - set_value(DownloadUsing, d->downloader()); - set_value(ParseUsing, d->mediaParser()); - set_value(PlayUsing, d->mediaPlayer()); - set_value(FeedUsing, d->feedParser()); + set_value(nn::DownloadUsing, d->downloader()); + set_value(nn::ParseUsing, d->mediaParser()); + set_value(nn::PlayUsing, d->mediaPlayer()); + set_value(nn::FeedUsing, d->feedParser()); s.setValue("FirstRun", false); settings.write(); } @@ -96,10 +93,10 @@ static void print_nresults(const nn::DetectType n, const QString& s) static bool print_cmds() { std::clog << "Detect commands from $PATH..." << std::endl; - print_nresults(MediaParser, "Media parsers:"); - print_nresults(MediaPlayer, "Media players:"); - print_nresults(FeedParser, "Feed parsers:"); - print_nresults(Downloader, "Downloaders:"); + print_nresults(nn::MediaParser, "Media parsers:"); + print_nresults(nn::MediaPlayer, "Media players:"); + print_nresults(nn::FeedParser, "Feed parsers:"); + print_nresults(nn::Downloader, "Downloaders:"); } static bool print_locale() @@ -239,10 +236,10 @@ int main(int argc, char *argv[]) s.beginGroup("Settings"); // settings/nsettingsmutator.cpp if (s.contains("Language")) - r = lang::choose(s.value("Language").toString()); + r = nn::lang::choose(s.value("Language").toString()); if (!r) // Use system locale. - lang::choose(); + nn::lang::choose(); // Detect commands if this is a first run. @@ -259,7 +256,6 @@ int main(int argc, char *argv[]) // Window. MainWindow *w = new MainWindow; - recent.read(); return app.exec(); } ----------------------------------------------------------------------- Summary of changes: src/Makefile.am | 64 +++++--- src/NLogDialog | 1 + src/NRecentEntry | 1 + src/NRecentMutator | 1 + src/Recent.cpp | 72 --------- src/Recent.h | 47 ------ src/i/MainWindow.cpp | 94 +++++------- src/log/nlogdialog.cpp | 116 +++++++++++++++ src/{about/naboutdialog.h => log/nlogdialog.h} | 52 ++++++- src/log/nlogdialog_recent.cpp | 104 +++++++++++++ src/{feed/nfeed.cpp => log/nrecententry.cpp} | 79 +++++++---- .../nfeedprogressdialog.h => log/nrecententry.h} | 48 +++---- src/log/nrecentmutator.cpp | 156 ++++++++++++++++++++ .../nsettingsmutator.h => log/nrecentmutator.h} | 32 +++-- src/main.cpp | 38 ++--- 15 files changed, 610 insertions(+), 295 deletions(-) create mode 100644 src/NLogDialog create mode 100644 src/NRecentEntry create mode 100644 src/NRecentMutator delete mode 100644 src/Recent.cpp delete mode 100644 src/Recent.h create mode 100644 src/log/nlogdialog.cpp copy src/{about/naboutdialog.h => log/nlogdialog.h} (52%) create mode 100644 src/log/nlogdialog_recent.cpp copy src/{feed/nfeed.cpp => log/nrecententry.cpp} (50%) copy src/{feed/nfeedprogressdialog.h => log/nrecententry.h} (54%) create mode 100644 src/log/nrecentmutator.cpp copy src/{settings/nsettingsmutator.h => log/nrecentmutator.h} (62%) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-27 19:51:26
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via 2b9280145afba0e226448b5711ad499d2844982d (commit) from d7ab7b3359e5346fa56a2e268960365edeb2bf08 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/2b9280145afba0e226448b5711ad499d2844982d commit 2b9280145afba0e226448b5711ad499d2844982d Author: Toni Gundogdu <le...@gm...> Date: Thu Oct 27 22:51:33 2011 +0300 Add "Copy" button to NErrorWhileDialog * Make copying to clipboard easy diff --git a/src/errorwhile/nerrorwhiledialog.cpp b/src/errorwhile/nerrorwhiledialog.cpp index 62f20c6..7a999f9 100644 --- a/src/errorwhile/nerrorwhiledialog.cpp +++ b/src/errorwhile/nerrorwhiledialog.cpp @@ -17,7 +17,10 @@ #include <QDialogButtonBox> #include <QPlainTextEdit> +#include <QApplication> #include <QVBoxLayout> +#include <QPushButton> +#include <QClipboard> #include <QLabel> #include <NErrorWhileDialog> @@ -25,6 +28,35 @@ namespace nn { +typedef enum +{ + ErrorWhileRunning = 0x00, + ErrorMessageFollows, + ErrorCode, +} LabelType; + +static QString label(const LabelType t, const QString& arg1="") +{ + static const char *str[] = + { + QT_TRANSLATE_NOOP("nn::NErrorWhileDialog", + "Error while running command:"), + + QT_TRANSLATE_NOOP("nn::NErrorWhileDialog", + "Error message follows:"), + + QT_TRANSLATE_NOOP("nn::NErrorWhileDialog", + "[code #%1]") + }; + + QString s = NErrorWhileDialog::tr(str[t]); + + if (!arg1.isEmpty()) + s = NErrorWhileDialog::tr(str[t]).arg(arg1); + + return s; +} + NErrorWhileDialog::NErrorWhileDialog(const QStringList& args, const QString& errmsg, const int errcode, @@ -33,30 +65,66 @@ NErrorWhileDialog::NErrorWhileDialog(const QStringList& args, { QVBoxLayout *box = new QVBoxLayout; - QLabel *l = new QLabel(tr("Error while running command:")); +// Label + + QLabel *l = new QLabel(label(ErrorWhileRunning)); box->addWidget(l); +// Command args + QPlainTextEdit *t = new QPlainTextEdit(this); t->setPlainText(args.join(" ")); t->setReadOnly(true); box->addWidget(t); - l = new QLabel(tr("Error message follows:")); +// Label + + l = new QLabel(label(ErrorMessageFollows)); box->addWidget(l); +// Error message + t = new QPlainTextEdit(this); - t->setPlainText(tr("%1n[code #%2]").arg(errmsg).arg(errcode)); + const QString s = label(ErrorCode, QString("%1").arg(errcode)); + t->setPlainText(QString("%1n%2").arg(errmsg).arg(s)); t->setReadOnly(true); box->addWidget(t); +// Button box + QDialogButtonBox *bb = new QDialogButtonBox(QDialogButtonBox::Ok); + QPushButton *b = new QPushButton(tr("Co&py")); + b->setToolTip(tr("Copy to clipboard")); + + bb->addButton(b, QDialogButtonBox::ActionRole); + connect(bb, SIGNAL(accepted()), this, SLOT(accept())); + connect(b, SIGNAL(clicked()), this, SLOT(copy())); box->addWidget(bb); +// Window + setFixedSize(QSize(400,340)); setWindowTitle(tr("Error")); setLayout(box); show(); + +// Save + + _errcode = errcode; + _errmsg = errmsg; + _args = args; +} + +void NErrorWhileDialog::copy() +{ + QClipboard *c = QApplication::clipboard(); + c->setText(QString("%1n%2nn%3n%4n%5n") + .arg(label(ErrorWhileRunning)) + .arg(_args.join(" ")) + .arg(label(ErrorMessageFollows)) + .arg(_errmsg) + .arg(label(ErrorCode, QString("%1").arg(_errcode)))); } } // namespace nn diff --git a/src/errorwhile/nerrorwhiledialog.h b/src/errorwhile/nerrorwhiledialog.h index 9308743..40e9386 100644 --- a/src/errorwhile/nerrorwhiledialog.h +++ b/src/errorwhile/nerrorwhiledialog.h @@ -18,11 +18,9 @@ #ifndef nerrorwhiledialog_h #define nerrorwhiledialog_h +#include <QStringList> #include <QDialog> -class QStringList; -class QString; - namespace nn { @@ -34,6 +32,12 @@ public: const QString&, const int, QWidget *parent=NULL); +private slots: + void copy(); +private: + QStringList _args; + QString _errmsg; + int _errcode; }; } // namespace nn ----------------------------------------------------------------------- Summary of changes: src/errorwhile/nerrorwhiledialog.cpp | 74 ++++++++++++++++++++++++++++++++- src/errorwhile/nerrorwhiledialog.h | 10 +++- 2 files changed, 78 insertions(+), 6 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-27 19:04:46
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via d7ab7b3359e5346fa56a2e268960365edeb2bf08 (commit) via 20baadec5f8280944524e85b8c66da49306032a4 (commit) via a81db9b068eb38cd9083c3883ed03df9f17b0aeb (commit) via 6723f6614df04a99a1cdade99ecfecb466a33f5b (commit) via e60d055fc39d005ae9c6a29a2d3058ee90d64fb1 (commit) from 49ae0c95905f819a96a214b3278d28d4c439df38 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/d7ab7b3359e5346fa56a2e268960365edeb2bf08 commit d7ab7b3359e5346fa56a2e268960365edeb2bf08 Author: Toni Gundogdu <le...@gm...> Date: Thu Oct 27 22:02:22 2011 +0300 Remove QtScript prerequisite * QJson replaces QtScript diff --git a/configure.ac b/configure.ac index 3cbe660..cd44c58 100644 --- a/configure.ac +++ b/configure.ac @@ -27,7 +27,6 @@ AC_PROG_CXX AC_PROG_CC # Checks for libraries. -PKG_CHECK_MODULES([QtScript], [QtScript >= 4.6.0]) PKG_CHECK_MODULES([QtCore], [QtCore >= 4.6.0]) PKG_CHECK_MODULES([QtGui], [QtGui >= 4.6.0]) PKG_CHECK_MODULES([QJson], [QJson >= 0.7.1]) diff --git a/src/Makefile.am b/src/Makefile.am index 944ca08..cd97339 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -136,7 +136,6 @@ nomnom_SOURCES= $(src) $(hdr) AM_CPPFLAGS= -I$(top_srcdir)/src AM_CPPFLAGS+= -I$(top_srcdir)/src/i AM_CPPFLAGS+= -DDATADIR='"$(datadir)"' -AM_CPPFLAGS+= $(QtScript_CFLAGS) AM_CPPFLAGS+= $(QtCore_CFLAGS) AM_CPPFLAGS+= $(QtGui_CFLAGS) AM_CPPFLAGS+= $(QJson_CFLAGS) @@ -144,8 +143,7 @@ AM_CPPFLAGS+= $(QJson_CFLAGS) #AM_CPPFLAGS+= $(libproxy_CFLAGS) #endif -nomnom_LDADD= $(QtScript_LIBS) -nomnom_LDADD+= $(QtCore_LIBS) +nomnom_LDADD= $(QtCore_LIBS) nomnom_LDADD+= $(QtGui_LIBS) nomnom_LDADD+= $(QJson_LIBS) #if ENABLE_LIBPROXY http://repo.or.cz/w/nomnom.git/commit/20baadec5f8280944524e85b8c66da49306032a4 commit 20baadec5f8280944524e85b8c66da49306032a4 Author: Toni Gundogdu <le...@gm...> Date: Thu Oct 27 22:00:08 2011 +0300 Use QJson for parsing umph output diff --git a/src/feed/nfeedprogressdialog.cpp b/src/feed/nfeedprogressdialog.cpp index 2abcdff..303eabe 100644 --- a/src/feed/nfeedprogressdialog.cpp +++ b/src/feed/nfeedprogressdialog.cpp @@ -17,13 +17,15 @@ #include "config.h" -#include <QScriptValueIterator> -#include <QScriptEngine> +#include <QCoreApplication> +#include <QVariant> #ifdef ENABLE_VERBOSE #include <QDebug> #endif +#include <qjson/parser.h> + #include <NFeedProgressDialog> extern QString umph_path; @@ -71,46 +73,33 @@ bool NFeedProgressDialog::open(QStringList args) return _errmsg.isEmpty(); } -bool NFeedProgressDialog::results(feed::NFeedList& dst, QString& err) +bool NFeedProgressDialog::results(feed::NFeedList& dst, QString& errmsg) { const int n = _buffer.indexOf("{"); if (n == -1) { - err = tr("Unexpected data from umph"); + errmsg = tr("Unexpected data from umph"); return false; } - QScriptEngine e; - QScriptValue v = e.evaluate("("+_buffer.mid(n)+")"); - if (e.hasUncaughtException()) - { - err = tr("Uncaught exception at line %1: %2") - .arg(e.uncaughtExceptionLineNumber()) - .arg(v.toString()); - return false; - } + QJson::Parser p; + bool ok; - QScriptValueIterator i(v.property("video")); - if (!i.hasNext()) + QVariantMap r = p.parse(_buffer.mid(n).toLocal8Bit(), &ok).toMap(); + if (!ok) { - err = tr("umph did not return any video entries"); + errmsg = tr("An error occurred while parsing JSON"); return false; } + dst.clear(); - QString t,u; - while (i.hasNext()) - { - i.next(); - if (i.flags() & QScriptValue::SkipInEnumeration) - continue; - v = i.value(); - t = v.property("title").toString(); - u = v.property("url").toString(); - - feed::NFeedItem item(t,u); - dst.append(item); - } + foreach (const QVariant v, r["video"].toList()) + { + const QVariantMap m = v.toMap(); + feed::NFeedItem i(m["title"].toString(), m["url"].toString()); + dst.append(i); + } return true; } http://repo.or.cz/w/nomnom.git/commit/a81db9b068eb38cd9083c3883ed03df9f17b0aeb commit a81db9b068eb38cd9083c3883ed03df9f17b0aeb Author: Toni Gundogdu <le...@gm...> Date: Thu Oct 27 21:41:13 2011 +0300 Use QJson for parsing quvi output * Revise Media class diff --git a/src/Makefile.am b/src/Makefile.am index 2cfe6d0..944ca08 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -21,7 +21,6 @@ nodist_nomnom_SOURCES= moc_MainWindow.cpp moc_DownloadDiag.cpp moc_ProcProgDiag.cpp - moc_Media.cpp qrc_nomnom.cpp CLEANFILES= $(nodist_nomnom_SOURCES) $(BUILT_SOURCES) @@ -38,9 +37,6 @@ moc_DownloadDiag.cpp: moc_ProcProgDiag.cpp: $(MOC) -o $@ $(top_srcdir)/src/ProcProgDiag.h -moc_Media.cpp: - $(MOC) -o $@ $(top_srcdir)/src/Media.h - moc_nerrorwhiledialog.cpp: $(MOC) -o $@ $(top_srcdir)/src/errorwhile/nerrorwhiledialog.h diff --git a/src/Media.cpp b/src/Media.cpp index 2418ce0..3275d3d 100644 --- a/src/Media.cpp +++ b/src/Media.cpp @@ -18,172 +18,94 @@ #include "config.h" -#include <QScriptValueIterator> -#include <QScriptEngine> +#include <QCoreApplication> #include <QVariant> -#include <QString> -#include <QLabel> #ifdef ENABLE_VERBOSE #include <QDebug> #endif -#include "Media.h" +#include <qjson/parser.h> -// Ctor. +#include "Media.h" -Media::Media () - : QObject(), _length (0) -{ } +Media::Media() +{ +} -Media::Media (const Media& v) - : QObject(), _length(0) +Media::Media(const Media& v) { - _link = v._link; - _title = v._title; - _pageURL = v._pageURL; - _id = v._id; - _format = v._format; - _length = v._length; - _suffix = v._suffix; - _ctype = v._ctype; + _results = v._results; } -Media& -Media::operator=(const Media&) +Media& Media::operator=(const Media& m) { + if (this != &m) + _results = m._results; return *this; } -// Parse from JSON. - -bool -Media::fromJSON (const QString& data, QString& error) +bool Media::fromJSON(const QString& s, QString& errmsg) { - QScriptEngine e; - - QScriptValue v = e.evaluate ("(" +data+ ")"); + QJson::Parser p; + bool ok; - if (e.hasUncaughtException ()) + QVariantMap r = p.parse(s.toLocal8Bit(), &ok).toMap(); + if (!ok) { - error = tr ("Uncaught exception at line %1: %2") - .arg (e.uncaughtExceptionLineNumber ()) - .arg (v.toString ()); + errmsg = qApp->translate("Media", + "An error occurred while parsing JSON"); return false; } - _title = v.property ("page_title").toString ().simplified (); - _pageURL = v.property ("page_url").toString (); - _id = v.property ("id").toString (); - _host = v.property ("host").toString (); - - QScriptValueIterator i (v.property ("link")); - - if ( !i.hasNext () ) - { - error = tr("Expected at least one media link from quvi(1), got none."); - return false; - } + _results["page_title"] = r["page_title"]; + _results["page_url"] = r["page_url"]; + _results["host"] = r["host"]; + _results["media_id"] = r["id"]; - i.next (); - v = i.value (); + QVariantMap l = r["link"].toList().first().toMap(); - _length = v.property ("length_bytes").toVariant ().toLongLong (); - _ctype = v.property ("content_type").toString (); - _suffix = v.property ("file_suffix").toString (); - _link = v.property ("url").toString (); + _results["length_bytes"] = l["length_bytes"]; + _results["file_suffix"] = l["file_suffix"]; + _results["stream_url"] = l["url"]; #ifdef ENABLE_VERBOSE - qDebug () << __PRETTY_FUNCTION__ << __LINE__ << "media=" - << _length - << _ctype - << _suffix - << _link; + qDebug () << __PRETTY_FUNCTION__ << __LINE__ << "media=" << _results; #endif return true; } -// Get. - -QVariant -Media::get (Detail d) const +QVariant Media::get(Detail d) const { switch (d) { - case Link : - return QVariant (_link); - case Title : - return QVariant (_title); - case PageURL : - return QVariant (_pageURL); - case ID : - return QVariant (_id); - case Format : - return QVariant (_format); - case Length : - return QVariant (_length); - case Suffix : - return QVariant (_suffix); - case ContentType: - return QVariant (_ctype); - case Host : - return QVariant(_host); + case LengthBytes: + return _results["length_bytes"]; + case FileSuffix: + return _results["file_suffix"]; + case PageTitle: + return _results["page_title"]; + case StreamURL: + return _results["stream_url"]; + case PageURL: + return _results["page_url"]; + case MediaID: + return _results["media_id"]; + case Host: + return _results["host"]; } - return QVariant(); } -// Set. +// MediaException -void -Media::set (Detail d, const QString& s) +MediaException::MediaException(const QString& errmsg) + : errmsg(errmsg) { - bool ignored = false; - switch (d) - { - case Link : - _link = s; - break; - case Title : - _title = s; - break; - case PageURL : - _pageURL = s; - break; - case ID : - _id = s; - break; - case Format : - _format = s; - break; - case Length : - _length = s.toLongLong(&ignored); - break; - case Suffix : - _suffix = s; - break; - case ContentType: - _ctype = s; - break; - case Host : - _host = s; - break; - default : - break; - } } -// MediaException: ctor. - -MediaException::MediaException (const QString& errmsg) - : errmsg(errmsg) -{ } - -// MediaException: what. - -const QString& -MediaException::what() const +const QString& MediaException::what() const { return errmsg; } diff --git a/src/Media.h b/src/Media.h index 03e337c..3b23a22 100644 --- a/src/Media.h +++ b/src/Media.h @@ -19,37 +19,30 @@ #ifndef nomnom_media_h #define nomnom_media_h -#include <QPointer> -#include <QRegExp> -#include <QHash> +#include <QVariantMap> -class QLabel; - -class Media : public QObject +class Media { - Q_OBJECT public: - enum Detail - { Link=0, Title, PageURL, ID, Format, Length, Suffix, ContentType, Host }; + typedef enum + { + LengthBytes = 0x00, + FileSuffix, + PageTitle, + StreamURL, + PageURL, + MediaID, + Host + } Detail; public: - Media(); - Media(const Media&); Media& operator=(const Media&); + Media(const Media&); + Media(); public: - bool fromJSON (const QString&, QString&); - QVariant get (Detail) const; - void set (Detail, const QString&); + bool fromJSON(const QString&, QString&); + QVariant get(Detail) const; private: - // Details. - QString _id; - QString _title; - QString _pageURL; - QString _link; - QString _format; - qint64 _length; - QString _suffix; - QString _ctype; - QString _host; + QVariantMap _results; }; class MediaException http://repo.or.cz/w/nomnom.git/commit/6723f6614df04a99a1cdade99ecfecb466a33f5b commit 6723f6614df04a99a1cdade99ecfecb466a33f5b Author: Toni Gundogdu <le...@gm...> Date: Thu Oct 27 21:40:51 2011 +0300 Use "_" prefix with MainWindow member vars diff --git a/src/i/MainWindow.cpp b/src/i/MainWindow.cpp index c92aa2a..50c3dc1 100644 --- a/src/i/MainWindow.cpp +++ b/src/i/MainWindow.cpp @@ -41,7 +41,8 @@ #include <NUtil> #include "Recent.h" -// UI +#include "DownloadDiag.h" +#include "ProcProgDiag.h" #include "MainWindow.h" #define QSETTINGS_GROUP "MainWindow" @@ -59,20 +60,19 @@ extern Recent recent; enum { StreamMedia=0, DownloadMedia }; MainWindow::MainWindow() - : media(new Media) { setupUi(this); restore(); // Create Download dialog. - download = new DownloadDialog(this); + _download = new DownloadDialog(this); // Create Process Progress dialog for quvi. - proc = new ProcessProgressDialog(this); + _proc = new ProcessProgressDialog(this); - connect(proc, SIGNAL(finished(QString)), + connect(_proc, SIGNAL(finished(QString)), this, SLOT(onProcFinished(QString))); // Custom program icon. @@ -95,7 +95,7 @@ void MainWindow::createContextMenu() else connect(a, SIGNAL(triggered()), SLOT(f())); textBrowser->addAction(a); - actions[t] = a; + _actions[t] = a; } while (0) #define add_s @@ -120,7 +120,7 @@ void MainWindow::createContextMenu() // Add key shortcuts. #define _wrap(s,k) - do { actions[s]->setShortcut(QKeySequence(k)); } while (0) + do { _actions[s]->setShortcut(QKeySequence(k)); } while (0) _wrap(tr("Address..."), "Ctrl+A"); _wrap(tr("Feed..."), "Ctrl+F"); @@ -253,18 +253,18 @@ void MainWindow::handleURL(const QString& url) { nn::NErrorWhileDialog *d = new nn::NErrorWhileDialog(q_args, - proc->errmsg(), - proc->errcode(), + _proc->errmsg(), + _proc->errcode(), this); d->exec(); return; } - if (proc->canceled()) + if (_proc->canceled()) return; } - json.clear(); + _json.clear(); // Choose format. @@ -281,11 +281,11 @@ void MainWindow::handleURL(const QString& url) qDebug() << __PRETTY_FUNCTION__ << __LINE__ << "q_args=" << q_args; #endif - proc->setLabelText(tr("Checking...")); - proc->setMaximum(0); - proc->start(q_args); + _proc->setLabelText(tr("Checking...")); + _proc->setMaximum(0); + _proc->start(q_args); - if (proc->canceled()) + if (_proc->canceled()) return; // Download media or pass media stream URL to a media player. @@ -303,7 +303,7 @@ void MainWindow::handleURL(const QString& url) nn::NErrorWhileDialog *d = new nn::NErrorWhileDialog(q_args, errmsg, - proc->errcode(), + _proc->errcode(), this); d->exec(); } @@ -324,13 +324,13 @@ bool MainWindow::queryFormats(QStringList& formats, qDebug() << __PRETTY_FUNCTION__ << __LINE__ << "args=" << args; #endif - json.clear(); + _json.clear(); - proc->setLabelText(tr("Checking...")); - proc->setMaximum(0); - proc->start(args); + _proc->setLabelText(tr("Checking...")); + _proc->setMaximum(0); + _proc->start(args); - failed = proc->failed(); + failed = _proc->failed(); if (failed) return false; @@ -338,7 +338,7 @@ bool MainWindow::queryFormats(QStringList& formats, qDebug() << __PRETTY_FUNCTION__ << __LINE__ << "failed=" << failed; #endif - QStringList lns = json.split("n"); + QStringList lns = _json.split("n"); lns.removeDuplicates(); const QRegExp rx("^(.*)\s+:\s+"); @@ -405,7 +405,7 @@ void MainWindow::streamMedia() .simplified(); QStringList args = nn::to_cmd_args(p); - args.replaceInStrings("%m", media->get(Media::Link).toString()); + args.replaceInStrings("%m", _media.get(Media::StreamURL).toString()); const QString cmd = args.takeFirst(); @@ -428,13 +428,13 @@ void MainWindow::downloadMedia() QString fname = settings.value(nn::FilenameFormat).toString(); const QString suffix = - media->get(Media::Suffix).toString().simplified(); + _media.get(Media::FileSuffix).toString().simplified(); bool ok = nn::format_filename( settings.value(nn::FilenameRegExp).toString(), - media->get(Media::Title).toString().simplified(), - media->get(Media::ID).toString().simplified(), - media->get(Media::Host).toString().simplified(), + _media.get(Media::PageTitle).toString().simplified(), + _media.get(Media::MediaID).toString().simplified(), + _media.get(Media::Host).toString().simplified(), suffix, fname ); @@ -471,7 +471,7 @@ void MainWindow::downloadMedia() QDir().remove(fpath); const qint64 expected_bytes = - media->get(Media::Length).toLongLong(); + _media.get(Media::LengthBytes).toLongLong(); if (QFileInfo(fpath).size() < expected_bytes) { @@ -481,20 +481,20 @@ void MainWindow::downloadMedia() .simplified(); QStringList args = nn::to_cmd_args(p); - args.replaceInStrings("%u", media->get(Media::Link).toString()); + args.replaceInStrings("%u", _media.get(Media::StreamURL).toString()); args.replaceInStrings("%f", fpath); - download->start(args); + _download->start(args); - if (download->canceled()) + if (_download->canceled()) return; - if (download->failed()) + if (_download->failed()) { nn::NErrorWhileDialog *d = new nn::NErrorWhileDialog(args, - download->errmsg(), - download->errcode(), + _download->errmsg(), + _download->errcode(), this); d->exec(); return; @@ -573,20 +573,18 @@ void MainWindow::changeProgramIcon() bool MainWindow::parseOK(QString& errmsg) { - if (proc->failed()) + if (_proc->failed()) { - errmsg = proc->errmsg(); + errmsg = _proc->errmsg(); return false; } - - const int n = json.indexOf("{"); + const int n = _json.indexOf("{"); if (n == -1) { errmsg = tr("quvi returned unexpected data"); return false; } - - return media->fromJSON(json.mid(n), errmsg); + return _media.fromJSON(_json.mid(n), errmsg); } static void check_window_flags(QWidget *w) @@ -741,7 +739,7 @@ void MainWindow::onFeed() void MainWindow::onProcFinished(QString output) { - json = output; + _json = output; } // Event: DragEnter. diff --git a/src/i/MainWindow.h b/src/i/MainWindow.h index 7dbb135..aa1b8ff 100644 --- a/src/i/MainWindow.h +++ b/src/i/MainWindow.h @@ -20,15 +20,15 @@ #define nomnom_mainwindow_h #include <QSystemTrayIcon> -#include <QPointer> #include <QHash> #include "Media.h" -#include "DownloadDiag.h" -#include "ProcProgDiag.h" #include "ui_MainWindow.h" +class ProcessProgressDialog; +class DownloadDialog; + class MainWindow : public QMainWindow, private Ui::MainWindow { Q_OBJECT @@ -63,13 +63,13 @@ private slots: void onAbout(); void onFeed(); // quvi. - void onProcFinished (QString); + void onProcFinished(QString); private: - QPointer<ProcessProgressDialog> proc; - QPointer<DownloadDialog> download; - QHash<QString,QAction*> actions; - QPointer<Media> media; - QString json; + QHash<QString,QAction*> _actions; + ProcessProgressDialog *_proc; + DownloadDialog *_download; + QString _json; + Media _media; }; #endif http://repo.or.cz/w/nomnom.git/commit/e60d055fc39d005ae9c6a29a2d3058ee90d64fb1 commit e60d055fc39d005ae9c6a29a2d3058ee90d64fb1 Author: Toni Gundogdu <le...@gm...> Date: Thu Oct 27 20:01:45 2011 +0300 Add QJson prerequisite diff --git a/INSTALL b/INSTALL index 58408ca..5c125ca 100644 --- a/INSTALL +++ b/INSTALL @@ -3,10 +3,11 @@ Prerequisites ============= -* quvi (0.2.16.1+) <http://quvi.sourceforge.net/> -* umph (0.1.6+) <http://umph.googlecode.com/> -* curl (7.20.0+) <http://curl.haxx.se/> -* qt (4.6+) <http://qt.nokia.com/> +* quvi (0.2.16.1+) <http://quvi.sourceforge.net/> +* umph (0.1.6+) <http://umph.googlecode.com/> +* curl (7.20.0+) <http://curl.haxx.se/> +* qt (4.6+) <http://qt.nokia.com/> +* qjson (0.7.1+) <http://qjson.sourceforge.net> * media player that supports streaming (e.g. vlc, mplayer) diff --git a/configure.ac b/configure.ac index 343bb20..3cbe660 100644 --- a/configure.ac +++ b/configure.ac @@ -30,6 +30,7 @@ AC_PROG_CC PKG_CHECK_MODULES([QtScript], [QtScript >= 4.6.0]) PKG_CHECK_MODULES([QtCore], [QtCore >= 4.6.0]) PKG_CHECK_MODULES([QtGui], [QtGui >= 4.6.0]) +PKG_CHECK_MODULES([QJson], [QJson >= 0.7.1]) # --enable-libproxy #AC_ARG_ENABLE([libproxy], diff --git a/src/Makefile.am b/src/Makefile.am index 2ab4378..2cfe6d0 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -143,6 +143,7 @@ AM_CPPFLAGS+= -DDATADIR='"$(datadir)"' AM_CPPFLAGS+= $(QtScript_CFLAGS) AM_CPPFLAGS+= $(QtCore_CFLAGS) AM_CPPFLAGS+= $(QtGui_CFLAGS) +AM_CPPFLAGS+= $(QJson_CFLAGS) #if ENABLE_LIBPROXY #AM_CPPFLAGS+= $(libproxy_CFLAGS) #endif @@ -150,6 +151,7 @@ AM_CPPFLAGS+= $(QtGui_CFLAGS) nomnom_LDADD= $(QtScript_LIBS) nomnom_LDADD+= $(QtCore_LIBS) nomnom_LDADD+= $(QtGui_LIBS) +nomnom_LDADD+= $(QJson_LIBS) #if ENABLE_LIBPROXY #nomnom_LDADD+= $(libproxy_LIBS) #endif ----------------------------------------------------------------------- Summary of changes: INSTALL | 9 +- configure.ac | 2 +- src/Makefile.am | 10 +-- src/Media.cpp | 170 ++++++++++--------------------------- src/Media.h | 41 ++++------ src/feed/nfeedprogressdialog.cpp | 47 ++++------- src/i/MainWindow.cpp | 80 +++++++++--------- src/i/MainWindow.h | 18 ++-- 8 files changed, 138 insertions(+), 239 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-27 14:36:48
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via 49ae0c95905f819a96a214b3278d28d4c439df38 (commit) from d89b9cbf3e03965b17801196c7e81b5a8ee4b25d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/49ae0c95905f819a96a214b3278d28d4c439df38 commit 49ae0c95905f819a96a214b3278d28d4c439df38 Author: Toni Gundogdu <le...@gm...> Date: Thu Oct 27 17:36:53 2011 +0300 Use qApp instead, use NUtil info() instead diff --git a/src/feed/nfeeddialog.cpp b/src/feed/nfeeddialog.cpp index e287f58..e3f534c 100644 --- a/src/feed/nfeeddialog.cpp +++ b/src/feed/nfeeddialog.cpp @@ -26,6 +26,8 @@ #include <NFeedProgressDialog> #include <NErrorWhileDialog> #include <NFeedDialog> +#include <NSettings> +#include <NUtil> extern nn::feed::NFeedList feedItems; // main.cpp @@ -83,12 +85,12 @@ void NFeedDialog::done(int n) if (feedItems.count() == 0) { _toolbox->setCurrentIndex(0); - m_info(this, tr("Please read a feed")); + info(this, tr("Please read a feed")); } else { _toolbox->setCurrentIndex(1); - m_info(this, tr("Please select an item from the list")); + info(this, tr("Please select an item from the list")); } return; } @@ -97,11 +99,6 @@ void NFeedDialog::done(int n) close(); } -void NFeedDialog::m_info(QWidget *parent, const QString& msg) -{ - QMessageBox::information(parent, QCoreApplication::applicationName(), msg); -} - bool NFeedDialog::foreachWidget() { const int c = _toolbox->count(); diff --git a/src/feed/nfeeddialog.h b/src/feed/nfeeddialog.h index efd10f9..815f466 100644 --- a/src/feed/nfeeddialog.h +++ b/src/feed/nfeeddialog.h @@ -36,8 +36,6 @@ class NFeedDialog : public QDialog { Q_OBJECT public: - static void m_info(QWidget*, const QString&); -public: NFeedDialog(QWidget *parent, const QStringList&); public: QString selected() const; diff --git a/src/feed/nfeeddialog_properties.cpp b/src/feed/nfeeddialog_properties.cpp index 6faf7d7..a808935 100644 --- a/src/feed/nfeeddialog_properties.cpp +++ b/src/feed/nfeeddialog_properties.cpp @@ -31,7 +31,9 @@ #include <QLabel> #include <NFeedDialog> +#include <NSettings> #include <NFeed> +#include <NUtil> extern bool have_umph_feature_all; // main.cpp @@ -198,7 +200,7 @@ void NFeedProperties::parse() { // Potential translation hack-up. QString s = _identLabel->text().remove("&").split(" ").takeLast(); - NFeedDialog::m_info(this, tr("Please enter %1").arg(s)); + info(this, tr("Please enter %1").arg(s)); _identEdit->setFocus(); return; } diff --git a/src/lang/nlang.cpp b/src/lang/nlang.cpp index a546980..2b34368 100644 --- a/src/lang/nlang.cpp +++ b/src/lang/nlang.cpp @@ -68,7 +68,7 @@ static QFileInfoList scan_for_qm(const QString& scanDir, */ static QString filemask() { - return QString("%1_??_??.qm").arg(QCoreApplication::applicationName()); + return QString("%1_??_??.qm").arg(qApp->applicationName()); } /* diff --git a/src/settings/nsettingsdialog.cpp b/src/settings/nsettingsdialog.cpp index 10ab3a4..68cd439 100644 --- a/src/settings/nsettingsdialog.cpp +++ b/src/settings/nsettingsdialog.cpp @@ -25,6 +25,7 @@ #include <NSettingsMutator> #include <NSettingsDialog> +#include <NUtil> extern nn::NSettingsMutator settings; // main.cpp @@ -78,11 +79,6 @@ void NSettingsDialog::done(int n) close(); } -void NSettingsDialog::m_info(QWidget *parent, const QString& msg) -{ - QMessageBox::information(parent, QCoreApplication::applicationName(), msg); -} - bool NSettingsDialog::foreachWidget(Mode mode) { const int c = toolbox->count(); @@ -96,7 +92,7 @@ bool NSettingsDialog::foreachWidget(Mode mode) if (mode == To && !s->verify(msg)) { toolbox->setCurrentWidget(s); - NSettingsDialog::m_info(this, msg); + info(this, msg); return false; } diff --git a/src/settings/nsettingsdialog.h b/src/settings/nsettingsdialog.h index c7de4d3..40a30ea 100644 --- a/src/settings/nsettingsdialog.h +++ b/src/settings/nsettingsdialog.h @@ -44,8 +44,6 @@ class NSettingsDialog : public QDialog Q_OBJECT public: NSettingsDialog(QWidget *parent=NULL); -public: - static void m_info(QWidget*, const QString&); protected: void done(int); private: diff --git a/src/settings/nsettingsdialog_options.cpp b/src/settings/nsettingsdialog_options.cpp index 24bc01b..af780a2 100644 --- a/src/settings/nsettingsdialog_options.cpp +++ b/src/settings/nsettingsdialog_options.cpp @@ -22,6 +22,7 @@ #include <NSettingsMutator> #include <NSettingsDialog> +#include <NUtil> extern nn::NSettingsMutator settings; // main.cpp @@ -79,7 +80,7 @@ bool NSettingsOptions::foreachWidget(Mode mode) if (!o->verify(msg)) { tabWidget->setCurrentWidget(o); - NSettingsDialog::m_info(this, msg); + info(this, msg); return false; } diff --git a/src/util/nutil.cpp b/src/util/nutil.cpp index 4b0b1b7..31dbb5f 100644 --- a/src/util/nutil.cpp +++ b/src/util/nutil.cpp @@ -49,7 +49,7 @@ namespace nn int ask(QWidget *p, const QString& t) { const QMessageBox::StandardButtons b = QMessageBox::Yes|QMessageBox::No; - return QMessageBox::question(p, QCoreApplication::applicationName(), t, b); + return QMessageBox::question(p, qApp->applicationName(), t, b); } /* @@ -63,7 +63,7 @@ int ask(QWidget *p, const QString& t) */ void info(QWidget *p, const QString& t) { - QMessageBox::information(p, QCoreApplication::applicationName(), t); + QMessageBox::information(p, qApp->applicationName(), t); } /* ----------------------------------------------------------------------- Summary of changes: src/feed/nfeeddialog.cpp | 11 ++++------- src/feed/nfeeddialog.h | 2 -- src/feed/nfeeddialog_properties.cpp | 4 +++- src/lang/nlang.cpp | 2 +- src/settings/nsettingsdialog.cpp | 8 ++------ src/settings/nsettingsdialog.h | 2 -- src/settings/nsettingsdialog_options.cpp | 3 ++- src/util/nutil.cpp | 4 ++-- 8 files changed, 14 insertions(+), 22 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-24 18:17:04
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via d89b9cbf3e03965b17801196c7e81b5a8ee4b25d (commit) from 1f2afdc5c32bc92fd0e6e4d01f174355c8ab988f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/d89b9cbf3e03965b17801196c7e81b5a8ee4b25d commit d89b9cbf3e03965b17801196c7e81b5a8ee4b25d Author: Toni Gundogdu <le...@gm...> Date: Sun Oct 23 03:18:11 2011 +0300 Use NErrorWhileDialog instead diff --git a/src/DownloadDiag.cpp b/src/DownloadDiag.cpp index 2c948c4..3cd4436 100644 --- a/src/DownloadDiag.cpp +++ b/src/DownloadDiag.cpp @@ -27,7 +27,7 @@ #include "DownloadDiag.h" DownloadDialog::DownloadDialog(QWidget *parent/*=NULL*/) - : QProgressDialog(parent), _canceled(false) + : QProgressDialog(parent), _canceled(false), _errcode(-1) { _proc.setProcessChannelMode(QProcess::MergedChannels); @@ -61,6 +61,11 @@ QString DownloadDialog::errmsg() const return _errmsg; } +int DownloadDialog::errcode() const +{ + return _errcode; +} + void DownloadDialog::start(QStringList& args) { #ifdef ENABLE_VERBOSE @@ -92,11 +97,8 @@ void DownloadDialog::onCurlError(QProcess::ProcessError n) if (!_canceled) { hide(); - _errmsg = tr("Error while running command:<p>%1</p>" - "Qt error message follows (code #%2):<p>%3</p>") - .arg(_args.join(" ")) - .arg(n) - .arg(_proc.errorString()); + _errmsg = _proc.errorString(); + _errcode = n; emit error(); } cancel(); @@ -146,10 +148,8 @@ void DownloadDialog::onCurlReadyRead() if (rx_err.indexIn(ln) != -1) { - _errmsg = tr("Error while running command:<p>%1</p>" - "curl error message follows:<p>%3</p>") - .arg(_args.join(" ")) - .arg(rx_err.cap(1)); + _errmsg = rx_err.cap(1); + _errcode = -1; break; } update_label(this, ln); diff --git a/src/DownloadDiag.h b/src/DownloadDiag.h index c768aef..11eea6e 100644 --- a/src/DownloadDiag.h +++ b/src/DownloadDiag.h @@ -33,6 +33,7 @@ public: void start(QStringList&); QString errmsg() const; bool canceled() const; + int errcode() const; bool failed() const; signals: void finished(); @@ -48,6 +49,7 @@ private: QString _errmsg; QProcess _proc; bool _canceled; + int _errcode; }; #endif diff --git a/src/Makefile.am b/src/Makefile.am index e5b2f90..2ab4378 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -11,6 +11,7 @@ noinst_HEADERS= nodist_nomnom_SOURCES= moc_nfeedprogressdialog.cpp + moc_nerrorwhiledialog.cpp moc_nsettingsdialog.cpp moc_ndetectdialog.cpp moc_ntripwireedit.cpp @@ -40,6 +41,9 @@ moc_ProcProgDiag.cpp: moc_Media.cpp: $(MOC) -o $@ $(top_srcdir)/src/Media.h +moc_nerrorwhiledialog.cpp: + $(MOC) -o $@ $(top_srcdir)/src/errorwhile/nerrorwhiledialog.h + moc_nfeedprogressdialog.cpp: $(MOC) -o $@ $(top_srcdir)/src/feed/nfeedprogressdialog.h @@ -75,6 +79,7 @@ src= settings/nsettingsmutator.cpp settings/nsettingsdialog.cpp settings/nsettings.cpp + errorwhile/nerrorwhiledialog.cpp widgets/ntripwireedit.cpp detect/ndetectdialog.cpp detect/ndetect.cpp @@ -95,6 +100,8 @@ src= Media.cpp hdr=+ NErrorWhileDialog + errorwhile/nerrorwhiledialog.h NFeedProgressDialog NFeedDialog NFeed diff --git a/src/NErrorWhileDialog b/src/NErrorWhileDialog new file mode 100644 index 0000000..c6da8ae --- /dev/null +++ b/src/NErrorWhileDialog @@ -0,0 +1 @@ +#include "errorwhile/nerrorwhiledialog.h" diff --git a/src/ProcProgDiag.cpp b/src/ProcProgDiag.cpp index 21ab9d0..5943460 100644 --- a/src/ProcProgDiag.cpp +++ b/src/ProcProgDiag.cpp @@ -27,8 +27,7 @@ static QHash<QString,QRegExp> rx_labels; ProcessProgressDialog::ProcessProgressDialog(QWidget *parent/*=NULL*/) - : QProgressDialog(parent), - _canceled(false) + : QProgressDialog(parent), _canceled(false), _errcode(-1) { _proc.setProcessChannelMode(QProcess::MergedChannels); @@ -68,6 +67,11 @@ QString ProcessProgressDialog::errmsg() const return _errmsg; } +int ProcessProgressDialog::errcode() const +{ + return _errcode; +} + void ProcessProgressDialog::start(QStringList& args) { #ifdef ENABLE_VERBOSE @@ -102,11 +106,8 @@ void ProcessProgressDialog::onProcError(QProcess::ProcessError n) if (!_canceled) { hide(); - _errmsg = tr("Error while running command:<p>%1</p>" - "Qt error message follows (code #%2):<p>%3</p>") - .arg(_args.join(" ")) - .arg(n) - .arg(_proc.errorString()); + _errcode = static_cast<int>(n); + _errmsg = _proc.errorString(); emit error(); } cancel(); @@ -152,11 +153,8 @@ void ProcessProgressDialog::onProcFinished(int ec, QProcess::ExitStatus es) _errmsg = _buffer; if (rx_error.indexIn(_buffer) != -1) { - _errmsg = tr("Error while running command:<p>%1</p>" - "quvi error message follows (code #%2):<p>%3</p>") - .arg(_args.join(" ")) - .arg(ec) - .arg(rx_error.cap(1).simplified()); + _errmsg = rx_error.cap(1).simplified(); + _errcode = static_cast<int>(ec); } #ifdef ENABLE_VERBOSE qDebug() << __PRETTY_FUNCTION__ << __LINE__ << "errmsg=" << _errmsg; diff --git a/src/ProcProgDiag.h b/src/ProcProgDiag.h index 0cd1717..bb8f456 100644 --- a/src/ProcProgDiag.h +++ b/src/ProcProgDiag.h @@ -32,6 +32,7 @@ public: void start(QStringList&); QString errmsg() const; bool canceled() const; + int errcode() const; bool failed() const; private slots: void onProcFinished(int, QProcess::ExitStatus); @@ -45,9 +46,10 @@ signals: private: QStringList _args; QString _buffer; - QProcess _proc; QString _errmsg; + QProcess _proc; bool _canceled; + int _errcode; }; #endif diff --git a/src/errorwhile/nerrorwhiledialog.cpp b/src/errorwhile/nerrorwhiledialog.cpp new file mode 100644 index 0000000..62f20c6 --- /dev/null +++ b/src/errorwhile/nerrorwhiledialog.cpp @@ -0,0 +1,64 @@ +/* NomNom + * Copyright (C) 2011 Toni Gundogdu <le...@gm...> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <QDialogButtonBox> +#include <QPlainTextEdit> +#include <QVBoxLayout> +#include <QLabel> + +#include <NErrorWhileDialog> + +namespace nn +{ + +NErrorWhileDialog::NErrorWhileDialog(const QStringList& args, + const QString& errmsg, + const int errcode, + QWidget *parent) + : QDialog(parent) +{ + QVBoxLayout *box = new QVBoxLayout; + + QLabel *l = new QLabel(tr("Error while running command:")); + box->addWidget(l); + + QPlainTextEdit *t = new QPlainTextEdit(this); + t->setPlainText(args.join(" ")); + t->setReadOnly(true); + box->addWidget(t); + + l = new QLabel(tr("Error message follows:")); + box->addWidget(l); + + t = new QPlainTextEdit(this); + t->setPlainText(tr("%1n[code #%2]").arg(errmsg).arg(errcode)); + t->setReadOnly(true); + box->addWidget(t); + + QDialogButtonBox *bb = new QDialogButtonBox(QDialogButtonBox::Ok); + connect(bb, SIGNAL(accepted()), this, SLOT(accept())); + box->addWidget(bb); + + setFixedSize(QSize(400,340)); + setWindowTitle(tr("Error")); + setLayout(box); + show(); +} + +} // namespace nn + +/* vim: set ts=2 sw=2 tw=72 expandtab: */ diff --git a/src/feed/nfeedprogressdialog.h b/src/errorwhile/nerrorwhiledialog.h similarity index 59% copy from src/feed/nfeedprogressdialog.h copy to src/errorwhile/nerrorwhiledialog.h index bc4658f..9308743 100644 --- a/src/feed/nfeedprogressdialog.h +++ b/src/errorwhile/nerrorwhiledialog.h @@ -15,40 +15,25 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef nfeedprogressdialog_h -#define nfeedprogressdialog_h +#ifndef nerrorwhiledialog_h +#define nerrorwhiledialog_h -#include <QProgressDialog> -#include <QProcess> - -#include <NFeed> +#include <QDialog> class QStringList; +class QString; namespace nn { -class NFeedProgressDialog : public QProgressDialog +class NErrorWhileDialog : public QDialog { Q_OBJECT public: - NFeedProgressDialog(QWidget *parent=NULL); -public: - bool results(feed::NFeedList&, QString&); - bool open(QStringList&); - QString errmsg() const; - bool cancelled() const; -private slots: - void finished(int, QProcess::ExitStatus); - void error(QProcess::ProcessError); - void cleanup(); - void read(); -private: - QStringList _args; - QString _buffer; - QString _errmsg; - QProcess *_proc; - bool _cancelled; + NErrorWhileDialog(const QStringList&, + const QString&, + const int, + QWidget *parent=NULL); }; } // namespace nn diff --git a/src/feed/nfeeddialog.cpp b/src/feed/nfeeddialog.cpp index b518657..e287f58 100644 --- a/src/feed/nfeeddialog.cpp +++ b/src/feed/nfeeddialog.cpp @@ -24,6 +24,7 @@ #include <QToolBox> #include <NFeedProgressDialog> +#include <NErrorWhileDialog> #include <NFeedDialog> extern nn::feed::NFeedList feedItems; // main.cpp @@ -122,11 +123,19 @@ void NFeedDialog::parse(QStringList args) if (d->cancelled()) return; + NErrorWhileDialog *ewd = NULL; + if (r) { - QString msg; - if (!d->results(feedItems, msg)) - NFeedDialog::m_info(this, msg); + QString errmsg; + if (!d->results(feedItems, errmsg)) + { + ewd = new NErrorWhileDialog(args, + errmsg, + -1, + this); + ewd->exec(); + } else { _toolbox->setCurrentIndex(1); @@ -134,7 +143,13 @@ void NFeedDialog::parse(QStringList args) } } else - m_info(this, d->errmsg()); + { + ewd = new NErrorWhileDialog(args, + d->errmsg(), + d->errcode(), + this); + ewd->exec(); + } } void NFeedDialog::selected(QString s) diff --git a/src/feed/nfeedprogressdialog.cpp b/src/feed/nfeedprogressdialog.cpp index eca7269..2abcdff 100644 --- a/src/feed/nfeedprogressdialog.cpp +++ b/src/feed/nfeedprogressdialog.cpp @@ -32,7 +32,7 @@ namespace nn { NFeedProgressDialog::NFeedProgressDialog(QWidget *parent/*=NULL*/) - : QProgressDialog(parent), _proc(NULL), _cancelled(false) + : QProgressDialog(parent), _cancelled(false), _errcode(-1), _proc(NULL) { _proc = new QProcess; _proc->setProcessChannelMode(QProcess::MergedChannels); @@ -48,7 +48,7 @@ NFeedProgressDialog::NFeedProgressDialog(QWidget *parent/*=NULL*/) setAutoClose(false); } -bool NFeedProgressDialog::open(QStringList& args) +bool NFeedProgressDialog::open(QStringList args) { setLabelText(tr("Working...")); @@ -118,11 +118,8 @@ void NFeedProgressDialog::error(QProcess::ProcessError n) { if (!_cancelled) { - _errmsg = tr("Error while running command:<p>%1</p>" - "Qt error message follows (code #%2):<p>%3</p>") - .arg(_args.first()) - .arg(n) - .arg(_proc->errorString()); + _errmsg = _proc->errorString(); + _errcode = n; } cancel(); } @@ -144,11 +141,8 @@ void NFeedProgressDialog::finished(int ec, QProcess::ExitStatus es) QString m = (rx.indexIn(_buffer) != -1) ? rx.cap(1).simplified() : _buffer; - _errmsg = tr("Error while running command:<p>%1</p>" - "Error message follows (code #%2):<p>%3</p>") - .arg(_args.join(" ")) - .arg(ec) - .arg(m); + _errcode = ec; + _errmsg = m; } } cancel(); @@ -167,6 +161,11 @@ QString NFeedProgressDialog::errmsg() const return _errmsg; } +int NFeedProgressDialog::errcode() const +{ + return _errcode; +} + bool NFeedProgressDialog::cancelled() const { return _cancelled; diff --git a/src/feed/nfeedprogressdialog.h b/src/feed/nfeedprogressdialog.h index bc4658f..4a468bd 100644 --- a/src/feed/nfeedprogressdialog.h +++ b/src/feed/nfeedprogressdialog.h @@ -35,9 +35,10 @@ public: NFeedProgressDialog(QWidget *parent=NULL); public: bool results(feed::NFeedList&, QString&); - bool open(QStringList&); + bool open(QStringList); QString errmsg() const; bool cancelled() const; + int errcode() const; private slots: void finished(int, QProcess::ExitStatus); void error(QProcess::ProcessError); @@ -49,6 +50,7 @@ private: QString _errmsg; QProcess *_proc; bool _cancelled; + int _errcode; }; } // namespace nn diff --git a/src/i/MainWindow.cpp b/src/i/MainWindow.cpp index 14aafb5..c92aa2a 100644 --- a/src/i/MainWindow.cpp +++ b/src/i/MainWindow.cpp @@ -30,6 +30,7 @@ #include <QDebug> #endif +#include <NErrorWhileDialog> #include <NSettingsMutator> #include <NSettingsDialog> #include <NAboutDialog> @@ -250,7 +251,12 @@ void MainWindow::handleURL(const QString& url) if (failed) { - nn::info(this, proc->errmsg()); + nn::NErrorWhileDialog *d = + new nn::NErrorWhileDialog(q_args, + proc->errmsg(), + proc->errcode(), + this); + d->exec(); return; } @@ -293,7 +299,14 @@ void MainWindow::handleURL(const QString& url) downloadMedia(); } else - nn::info(this, errmsg); + { + nn::NErrorWhileDialog *d = + new nn::NErrorWhileDialog(q_args, + errmsg, + proc->errcode(), + this); + d->exec(); + } } // Query formats to an URL. @@ -397,7 +410,15 @@ void MainWindow::streamMedia() const QString cmd = args.takeFirst(); if (!QProcess::startDetached(cmd, args)) - nn::info(this, tr("Error while running command:<p>%1</p>").arg(cmd)); + { + nn::NErrorWhileDialog *d = + new nn::NErrorWhileDialog(QStringList() << cmd << args, + tr("Unknown error while attempting to " + "start a detached process"), + -1, + this); + d->exec(); + } } // Download media (to a file). @@ -470,7 +491,12 @@ void MainWindow::downloadMedia() if (download->failed()) { - nn::info(this, download->errmsg()); + nn::NErrorWhileDialog *d = + new nn::NErrorWhileDialog(args, + download->errmsg(), + download->errcode(), + this); + d->exec(); return; } } @@ -507,8 +533,13 @@ void MainWindow::downloadMedia() if (!QProcess::startDetached(cmd, args)) { - nn::info(this, - tr("Error while running command:<p>%1</p>").arg(cmd)); + nn::NErrorWhileDialog *d = + new nn::NErrorWhileDialog(QStringList() << cmd << args, + tr("Unknown error while attempting to " + "start a detached process"), + -1, + this); + d->exec(); } } } ----------------------------------------------------------------------- Summary of changes: src/DownloadDiag.cpp | 20 +++--- src/DownloadDiag.h | 2 + src/Makefile.am | 7 ++ src/NErrorWhileDialog | 1 + src/ProcProgDiag.cpp | 22 +++---- src/ProcProgDiag.h | 4 +- src/errorwhile/nerrorwhiledialog.cpp | 64 ++++++++++++++++++++ .../nerrorwhiledialog.h} | 23 +++---- src/feed/nfeeddialog.cpp | 23 ++++++- src/feed/nfeedprogressdialog.cpp | 23 ++++---- src/feed/nfeedprogressdialog.h | 4 +- src/i/MainWindow.cpp | 43 +++++++++++-- 12 files changed, 177 insertions(+), 59 deletions(-) create mode 100644 src/NErrorWhileDialog create mode 100644 src/errorwhile/nerrorwhiledialog.cpp copy src/{about/naboutdialog.h => errorwhile/nerrorwhiledialog.h} (75%) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-22 09:48:44
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via 1f2afdc5c32bc92fd0e6e4d01f174355c8ab988f (commit) from c808a1aea94ca131ee78eddb1ff76d1a47127f19 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/1f2afdc5c32bc92fd0e6e4d01f174355c8ab988f commit 1f2afdc5c32bc92fd0e6e4d01f174355c8ab988f Author: Toni Gundogdu <le...@gm...> Date: Sat Oct 22 12:30:39 2011 +0300 qDebug media player args diff --git a/src/i/MainWindow.cpp b/src/i/MainWindow.cpp index bff7733..14aafb5 100644 --- a/src/i/MainWindow.cpp +++ b/src/i/MainWindow.cpp @@ -499,6 +499,10 @@ void MainWindow::downloadMedia() QStringList args = nn::to_cmd_args(p); args.replaceInStrings("%m", fpath); +#ifdef ENABLE_VERBOSE + qDebug() << __PRETTY_FUNCTION__ << __LINE__ << "args=" << args; +#endif + const QString cmd = args.takeFirst(); if (!QProcess::startDetached(cmd, args)) ----------------------------------------------------------------------- Summary of changes: src/i/MainWindow.cpp | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-22 08:45:48
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via c808a1aea94ca131ee78eddb1ff76d1a47127f19 (commit) via e274497c7211c7c7d10e587c389cb50770ee58dd (commit) from 587399e1d3bbee37e0ec72644d2186aabadca5e2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/c808a1aea94ca131ee78eddb1ff76d1a47127f19 commit c808a1aea94ca131ee78eddb1ff76d1a47127f19 Author: Toni Gundogdu <le...@gm...> Date: Sat Oct 22 11:29:07 2011 +0300 Revise manual * Add user-agent to "known issues" diff --git a/doc/man1/nomnom.1.pod b/doc/man1/nomnom.1.pod index 8561efb..1a15303 100644 --- a/doc/man1/nomnom.1.pod +++ b/doc/man1/nomnom.1.pod @@ -1,6 +1,3 @@ - -=pod - =head1 NAME NomNom - The graphical media download tool @@ -122,24 +119,40 @@ The YouTube C<fmtNN> string IDs are documented at: =head2 Resuming partially transferred files may fail Some websites are known to refuse to work with the HTTP requests to -resume a file transfer. Either check "Always overwrite existing media -files" in the settings or remove the existing file manually. +resume a file transfer. + +=head3 Workaround + +Either check "Always overwrite existing media files" in the settings +or remove the existing file manually. + +=head2 HTTP user-agent + +Some websites refuse to play nice with renegade user-agent strings. -=head2 Using of HTTP proxies +=head3 Recommendations -If you use an HTTP proxy, please make sure you have configured all of -the commands that NomNom uses (see C<settings> and open C<commands>) to -use the same proxy. Some websites refuse to work with requests coming -from different sources (IP addresses) trying to access the same -media stream URL which is may be unique to an IP address. +Make sure both C<quvi(1)> and C<curl(1)> use the same user-agent string. +Note that C<quvi(1)> uses "Mozilla/5.0" by default. + +=head2 HTTP proxy + +Generally OK, although some proxies may have been configured to +C<cook up> the HTTP headers before they are sent back to the server. +This may sometimes lead to issues with the servers. + +=head3 Recommendations + +If you use an HTTP proxy, make sure you have configured all of the commands +that NomNom uses (e.g. C<quvi(1)>, C<curl(1)>, etc.) to use the same proxy. =head1 TIPS =head2 Use configuration files Although it is possible to configure custom commands for NomNom to use -(via C<settings> and C<commands>), another way is to add appropriate -configuration files for the commands that NomNom uses. +(via C<settings> and C<commands>), another way is to add/edit the appropriate +configuration files for these commands. =head3 Examples @@ -147,15 +160,15 @@ configuration files for the commands that NomNom uses. ~/.umphrc ;# refer to the umph(1) documentation ~/.curlrc ;# refer to the curl(1) documentation -Same goes for whatever media player you choose to use. +Same goes for whatever media player you choose to use with NomNom. =head1 FILES =head2 Configuration file The location of this file may vary and depends on how Qt was configured. -You can use the C<--config-path> program option to print it, if you are -not sure. See also L</COMMAND LINE>. +You can use the C<--config-path> program option to print it. See also +L</COMMAND LINE>. =head1 LICENSE @@ -168,4 +181,7 @@ NomNom is free software, licensed under the GPLv3+. =head1 AUTHOR -Toni Gundogdu <legatvs at sign gmail com> +Toni Gundogdu E<lt>legatvs at sign gmail comE<gt> + +Thanks to all those who have contributed to the project by sending +patches, reporting bugs and writing feedback. You know who you are. http://repo.or.cz/w/nomnom.git/commit/e274497c7211c7c7d10e587c389cb50770ee58dd commit e274497c7211c7c7d10e587c389cb50770ee58dd Author: Toni Gundogdu <le...@gm...> Date: Sat Oct 22 11:41:17 2011 +0300 Add user-agent to curl args Use the same (default) user-agent string with quvi(1) and curl(1). Some websites refuse to work with renegade strings. diff --git a/src/detect/ndetect.cpp b/src/detect/ndetect.cpp index 58eeab7..5dbbf86 100644 --- a/src/detect/ndetect.cpp +++ b/src/detect/ndetect.cpp @@ -105,7 +105,7 @@ static const struct _lookup_s lookup_feed_parsers[] = static const struct _lookup_s lookup_downloaders[] = { - {"curl", "-L -C - -o %f %u"}, + {"curl", "-L -C - -o %f %u --user-agent Mozilla/5.0"}, {NULL, NULL} }; diff --git a/src/settings/nsettingsdialog_commands.cpp b/src/settings/nsettingsdialog_commands.cpp index edd4be5..9523d6c 100644 --- a/src/settings/nsettingsdialog_commands.cpp +++ b/src/settings/nsettingsdialog_commands.cpp @@ -156,7 +156,8 @@ NSettingsCommands::NSettingsCommands(QWidget *parent/*=NULL*/) &downloadUsingCombo, &downloadUsingEdit, SLOT(downloadUsingChanged(QString)), - tooltip(SpecU|SpecF, "curl -L -C - -o %f %u") + tooltip(SpecU|SpecF, + "curl -L -C - -o %f %u --user-agent Mozilla/5.0") ); detect_type(Downloader, downloadUsingCombo); ----------------------------------------------------------------------- Summary of changes: doc/man1/nomnom.1.pod | 50 +++++++++++++++++++---------- src/detect/ndetect.cpp | 2 +- src/settings/nsettingsdialog_commands.cpp | 3 +- 3 files changed, 36 insertions(+), 19 deletions(-) repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |
From: <nom...@li...> - 2011-10-21 19:11:19
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project nomnom.git. The branch, next has been updated via 587399e1d3bbee37e0ec72644d2186aabadca5e2 (commit) via 366924d88ba3fbd04c6ed27fa1e63a03208f0a9b (commit) from d9050e2badf01d3aa3d768148aa70a19b771c350 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://repo.or.cz/w/nomnom.git/commit/587399e1d3bbee37e0ec72644d2186aabadca5e2 commit 587399e1d3bbee37e0ec72644d2186aabadca5e2 Author: Toni Gundogdu <le...@gm...> Date: Fri Oct 21 22:10:52 2011 +0300 Use VN instead of (PACKAGE_)VERSION diff --git a/src/i/MainWindow.cpp b/src/i/MainWindow.cpp index 652e2af..bff7733 100644 --- a/src/i/MainWindow.cpp +++ b/src/i/MainWindow.cpp @@ -139,7 +139,7 @@ void MainWindow::createContextMenu() void MainWindow::createTrayIcon() { - systray = new nn::NSysTray(this, QString("<b>NomNom</b> %1").arg(VERSION)); + systray = new nn::NSysTray(this, QString("<b>NomNom</b> %1").arg(VN)); connect(systray, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(activated(QSystemTrayIcon::ActivationReason))); @@ -625,7 +625,7 @@ void MainWindow::onSettings() void MainWindow::onAbout() { - nn::NAboutDialog *d = new nn::NAboutDialog(VERSION, WWW, this); + nn::NAboutDialog *d = new nn::NAboutDialog(VN, WWW, this); d->exec(); } diff --git a/src/main.cpp b/src/main.cpp index 88d9360..0a2a8e2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -114,7 +114,7 @@ static bool print_locale() static bool print_version() { - std::clog << PACKAGE_VERSION << std::endl; + std::clog << VN << std::endl; } static bool print_help() @@ -205,7 +205,7 @@ int main(int argc, char *argv[]) QCoreApplication::setOrganizationName (APPNAME); QCoreApplication::setOrganizationDomain(APPDOMAIN); QCoreApplication::setApplicationName (APPNAME); - QCoreApplication::setApplicationVersion(PACKAGE_VERSION); + QCoreApplication::setApplicationVersion(VN); #undef APPNAME #undef APPDOMAIN http://repo.or.cz/w/nomnom.git/commit/366924d88ba3fbd04c6ed27fa1e63a03208f0a9b commit 366924d88ba3fbd04c6ed27fa1e63a03208f0a9b Author: Toni Gundogdu <le...@gm...> Date: Fri Oct 21 22:07:04 2011 +0300 Remove outdated examples/NomNom.conf diff --git a/Makefile.am b/Makefile.am index 4c6c9cd..6e004c0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,6 @@ ACLOCAL_AMFLAGS=-I m4 EXTRA_DIST=- examples/NomNom.conf nomnom.desktop.in README.packagers nomnom.xpm diff --git a/examples/NomNom.conf b/examples/NomNom.conf deleted file mode 100644 index 6ca24bc..0000000 --- a/examples/NomNom.conf +++ /dev/null @@ -1,7 +0,0 @@ -[SharedPreferences] -quviPath=/usr/bin/quvi --category-http %u -curlPath=/usr/bin/curl -L -C - -o %f %u -playerPath=/usr/bin/xdg-open %u -umphPath=/usr/bin/umph -filenameFormat=%t.%s -regexp=/(\w|\s)/g ----------------------------------------------------------------------- Summary of changes: Makefile.am | 1 - examples/NomNom.conf | 7 ------- src/i/MainWindow.cpp | 4 ++-- src/main.cpp | 4 ++-- 4 files changed, 4 insertions(+), 12 deletions(-) delete mode 100644 examples/NomNom.conf repo.or.cz automatic notification. Contact project admin le...@gm... if you want to unsubscribe, or site admin ad...@re... if you receive no reply. -- nomnom.git ("The graphical media download tool") |