From 325cc445a78b6b28eb58326d5a156c2a80d77493 Mon Sep 17 00:00:00 2001 From: nowrep Date: Fri, 18 Mar 2011 18:35:09 +0100 Subject: [PATCH] Enahnced clear recent history dialog, it now allows to delete today/week/month/all history --- bin/locale/cs_CZ.qm | Bin 51569 -> 51936 bytes src/history/historymodel.cpp | 6 +- src/other/clearprivatedata.cpp | 77 ++++++++++++------------ src/other/clearprivatedata.h | 17 ++---- src/other/clearprivatedata.ui | 14 ++++- translations/cs_CZ.ts | 104 ++++++++++++++++++++------------- translations/sk_SK.ts | 104 ++++++++++++++++++++------------- 7 files changed, 184 insertions(+), 138 deletions(-) diff --git a/bin/locale/cs_CZ.qm b/bin/locale/cs_CZ.qm index 6288692ebe0f9fd7a6cfa04d0d24101ba34fd8a9..17191da426c520d12883b83c20ad1a267570b088 100644 GIT binary patch delta 4428 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 I_nUeD2XU&>2><{9 diff --git a/src/history/historymodel.cpp b/src/history/historymodel.cpp index 6a09c0ad9..4f5408b01 100644 --- a/src/history/historymodel.cpp +++ b/src/history/historymodel.cpp @@ -48,16 +48,14 @@ int HistoryModel::addHistoryEntry(const QString &url, QString &title) query.bindValue(0, url); query.exec(); if (!query.next()) { - QDateTime now = QDateTime::currentDateTime(); query.prepare("INSERT INTO history (count, date, url, title) VALUES (1,?,?,?)"); - query.bindValue(0, now.toMSecsSinceEpoch()); + query.bindValue(0, QDateTime::currentMSecsSinceEpoch()); query.bindValue(1, url); query.bindValue(2, title); query.exec(); }else{ - QDateTime now = QDateTime::currentDateTime(); query.prepare("UPDATE history SET count = count + 1, date=?, title=? WHERE url=?"); - query.bindValue(0, now.toMSecsSinceEpoch()); + query.bindValue(0, QDateTime::currentMSecsSinceEpoch()); query.bindValue(1, title); query.bindValue(2, url); query.exec(); diff --git a/src/other/clearprivatedata.cpp b/src/other/clearprivatedata.cpp index 6ad00ead5..5acd240c8 100644 --- a/src/other/clearprivatedata.cpp +++ b/src/other/clearprivatedata.cpp @@ -26,66 +26,61 @@ ClearPrivateData::ClearPrivateData(QupZilla* mainClass, QWidget* parent) : QDialog(parent) ,p_QupZilla(mainClass) + ,ui(new Ui::ClearPrivateData) { - setWindowTitle(tr("Clear Recent History")); - setWindowIcon(QIcon(":/icons/qupzilla.png")); - m_layout = new QBoxLayout(QBoxLayout::TopToBottom, this); - m_label = new QLabel(this); - m_buttonBox = new QDialogButtonBox(this); - m_buttonBox->addButton(QDialogButtonBox::Ok); - m_buttonBox->addButton(QDialogButtonBox::Cancel); - connect(m_buttonBox, SIGNAL(accepted()), this, SLOT(dialogAccepted())); - connect(m_buttonBox, SIGNAL(rejected()), this, SLOT(close())); - m_layout->addWidget(m_label); - m_label->setText(tr("Choose what you want to delete:")); - m_layout->addWidget(m_buttonBox); + ui->setupUi(this); + ui->buttonBox->setFocus(); + connect(ui->clearAdobeCookies, SIGNAL(clicked(QPoint)), this, SLOT(clearFlash())); + connect(ui->history, SIGNAL(clicked(bool)), this, SLOT(historyClicked(bool))); + connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(dialogAccepted())); +} - m_clearHistory = new QCheckBox(tr("Clear history"), this); - m_clearCookies = new QCheckBox(tr("Clear cookies"), this); - m_clearCache = new QCheckBox(tr("Clear cache"), this); - m_clearIcons = new QCheckBox(tr("Clear icons"), this); - m_clearFlashCookies = new ClickableLabel(this); - m_clearFlashCookies->setText(tr("Clear cookies from Adobe Flash Player")); - - m_clearHistory->setChecked(true); - m_clearCookies->setChecked(true); - m_clearCache->setChecked(true); - m_clearIcons->setChecked(true); - m_clearFlashCookies->setStyleSheet("color: blue; text-decoration: underline;"); - m_clearFlashCookies->setCursor(Qt::PointingHandCursor); - - m_layout->addWidget(m_clearHistory); - m_layout->addWidget(m_clearCookies); - m_layout->addWidget(m_clearCache); - m_layout->addWidget(m_clearIcons); - m_layout->addWidget(m_clearFlashCookies); - - m_layout->addWidget(m_buttonBox); - - connect(m_clearFlashCookies, SIGNAL(clicked(QPoint)), this, SLOT(clearFlash())); +void ClearPrivateData::historyClicked(bool state) +{ + ui->historyLength->setEnabled(state); } void ClearPrivateData::clearFlash() { - p_QupZilla->loadAddress(QUrl("http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager07.html")); + p_QupZilla->tabWidget()->addView(QUrl("http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager07.html")); } void ClearPrivateData::dialogAccepted() { - if (m_clearHistory->isChecked()) { + if (ui->history->isChecked()) { + QDateTime dateTime = QDateTime::currentDateTime(); + qint64 nowMS = QDateTime::currentMSecsSinceEpoch(); + qint64 date; + + switch (ui->historyLength->currentIndex()) { + case 0: //Later Today + dateTime.setTime(QTime(0,0)); + date = dateTime.toMSecsSinceEpoch(); + break; + case 1: //Week + date = nowMS - 60u * 60u * 24u * 7u * 1000u; + break; + case 2: //Month + date = nowMS - 60u * 60u * 24u * 30u * 1000u; + break; + case 3: //All + date = 0; + break; + } + QSqlQuery query; - query.exec("DELETE FROM history"); + query.exec("DELETE FROM history WHERE date > "+QString::number(date)); query.exec("VACUUM"); } - if (m_clearCookies->isChecked()) { + if (ui->cookies->isChecked()) { QList cookies; mApp->cookieJar()->setAllCookies(cookies); } - if (m_clearCache->isChecked()) { + if (ui->cache->isChecked()) { mApp->webSettings()->clearMemoryCaches(); mApp->networkManager()->cache()->clear(); } - if (m_clearIcons->isChecked()) { + if (ui->icons->isChecked()) { mApp->webSettings()->clearIconDatabase(); } close(); diff --git a/src/other/clearprivatedata.h b/src/other/clearprivatedata.h index 14544fdd3..fffe634be 100644 --- a/src/other/clearprivatedata.h +++ b/src/other/clearprivatedata.h @@ -24,7 +24,10 @@ #include #include -class ClickableLabel; +namespace Ui { + class ClearPrivateData; +} + class QupZilla; class ClearPrivateData : public QDialog { @@ -37,22 +40,14 @@ signals: public slots: private slots: + void historyClicked(bool state); void dialogAccepted(); void clearFlash(); private: QupZilla* p_QupZilla; + Ui::ClearPrivateData* ui; - QBoxLayout* m_layout; - QLabel* m_label; - QDialogButtonBox* m_buttonBox; - - QCheckBox* m_clearHistory; - QCheckBox* m_clearCookies; - QCheckBox* m_clearCache; - QCheckBox* m_clearIcons; - - ClickableLabel* m_clearFlashCookies; }; #endif // CLEARPRIVATEDATA_H diff --git a/src/other/clearprivatedata.ui b/src/other/clearprivatedata.ui index e16b4a0f6..898e7b318 100644 --- a/src/other/clearprivatedata.ui +++ b/src/other/clearprivatedata.ui @@ -63,7 +63,10 @@ - + + + PointingHandCursor + color: blue; text-decoration: underline; @@ -109,7 +112,7 @@ - Today + Later Today @@ -144,6 +147,13 @@ + + + ClickableLabel + QLabel +
clickablelabel.h
+
+
diff --git a/translations/cs_CZ.ts b/translations/cs_CZ.ts index a8597d645..7f26741a0 100644 --- a/translations/cs_CZ.ts +++ b/translations/cs_CZ.ts @@ -387,40 +387,65 @@ p, li { white-space: pre-wrap; } ClearPrivateData - + Clear Recent History Vymazat nedávnou historii - + Choose what you want to delete: Vyberte co chcete smazat: - + Clear history Smazat historii - + Clear cookies Smazat cookies - + Clear cache Vyprázdnit vyrovnávací paměť - + Clear icons Smazat ikony - + Clear cookies from Adobe Flash Player Smazat cookies z Adobe Flash Playeru + + + <b>Clear Recent History</b> + <b>Vymazat nedávnou historii</b> + + + + Today + Dnes + + + + Week + Týden + + + + Month + Měsíc + + + + All + Vše + ClickToFlash @@ -1905,7 +1930,7 @@ neexistuje! Prázdný - + New tab Nový panel @@ -2518,7 +2543,7 @@ Prosím přidejte si nějaký kliknutím na RSS ikonku v navigačním řádku.Dohromady máte otevřeno %1 panelů - + New tab Nový panel @@ -2649,146 +2674,145 @@ Prosím přidejte si nějaký kliknutím na RSS ikonku v navigačním řádku.WebView - + Loading... Načítám... - - + No Named Page Bezejmenná stránka - + Done Hotovo - - - + + + New tab Nový panel - + Open link in new window Otevřít odkaz v novém okně - + Open link in new tab Otevřít odkaz v novém panelu - + Bookmark link Přidat odkaz do záložek - + Save link as... Uložit odkaz jako... - + Send link... Odeslat odkaz... - + Copy link address Kopírovat adresu odkazu - + Show image Zobrazit obrázek - + Copy image Kopírovat obrázek - + Copy image address Coyp image address Kopírovat adresu obrázku - + Save image as... Uložit obrázek jako... - + Send image... Odeslat obrázek... - + Back Zpět - + Forward Vpřed - + Reload Obnovit - + Stop Zastavit - + Bookmark page Přidat stránku do záložek - + Save page as... Uložit stránku jako... - + Send page... Odeslat stránku... - + Select all Vybrat vše - + Show source code Zobrazit zdrojový kód - + Show info about site Zobrazit informace o stránce - + Show Web Inspector Zobrazit Web Inspektor - + Search Hledat - + ... on Google ... na Googlu diff --git a/translations/sk_SK.ts b/translations/sk_SK.ts index 8f8953c50..2139adfdf 100644 --- a/translations/sk_SK.ts +++ b/translations/sk_SK.ts @@ -391,40 +391,65 @@ p, li { white-space: pre-wrap; } ClearPrivateData - + Clear Recent History Vymazať nedávnu históriu - + Choose what you want to delete: Vyberte, čo chcete zmazať: - + Clear history Zmazať históriu - + Clear cookies Zmazať cookies - + Clear cache Zmazať vyrovnávaciu pamäť - + Clear icons Zmazať ikony - + Clear cookies from Adobe Flash Player Zmazať cookies z Adobe Flash Playeru + + + <b>Clear Recent History</b> + + + + + Today + + + + + Week + + + + + Month + + + + + All + + ClickToFlash @@ -1906,7 +1931,7 @@ neexistuje! Prázdny - + New tab Nový panel @@ -2518,7 +2543,7 @@ Prosím pridajte si nejaký kliknutím na RSS ikonku v navigačnom riadku.Momentálne otvorených %1 panelov - + New tab Nový panel @@ -2649,145 +2674,144 @@ Prosím pridajte si nejaký kliknutím na RSS ikonku v navigačnom riadku.WebView - + Loading... Načítavam... - - + No Named Page Stránka bez mena - + Done Hotovo - - - + + + New tab Nový panel - + Open link in new window Otvoriť odkaz v novom okne - + Open link in new tab Otvoriť odkaz na novom panely - + Bookmark link Pridať odkaz do záložiek - + Save link as... Odoslať odkaz... - + Send link... Odoslať odkaz... - + Copy link address Kopírovať adresu odkazu - + Show image Zobraziť obrázok - + Copy image Kopírovať obrázok - + Copy image address Kopírovať adresu obrázku - + Save image as... Uložiť obrázok ako... - + Send image... Odoslať obrázok... - + Back Späť - + Forward Dopredu - + Reload Obnoviť - + Stop Zastaviť - + Bookmark page Pridať stránku do záložiek - + Save page as... Uložiť stránku ako... - + Send page... Odoslať stránku... - + Select all Vybrať všetko - + Show source code Zobraziť zdrojový kód - + Show info about site Zobraziť informácie o stránke - + Show Web Inspector Zobraziť Web inšpektora - + Search Hľadať - + ... on Google ... na Googlu