1
mirror of https://invent.kde.org/network/falkon.git synced 2024-12-20 18:56:34 +01:00

History now emits historyEdited signal

This commit is contained in:
nowrep 2011-07-31 13:33:44 +02:00
parent 0279018f17
commit a959d148d3
14 changed files with 101 additions and 12 deletions

Binary file not shown.

View File

@ -126,7 +126,8 @@ SOURCES += main.cpp\
navigation/locationbarsettings.cpp \ navigation/locationbarsettings.cpp \
other/browsinglibrary.cpp \ other/browsinglibrary.cpp \
3rdparty/stylehelper.cpp \ 3rdparty/stylehelper.cpp \
3rdparty/fancytabwidget.cpp 3rdparty/fancytabwidget.cpp \
history/webhistoryinterface.cpp
HEADERS += \ HEADERS += \
3rdparty/qtwin.h \ 3rdparty/qtwin.h \
@ -213,7 +214,8 @@ HEADERS += \
navigation/locationbarsettings.h \ navigation/locationbarsettings.h \
other/browsinglibrary.h \ other/browsinglibrary.h \
3rdparty/stylehelper.h \ 3rdparty/stylehelper.h \
3rdparty/fancytabwidget.h 3rdparty/fancytabwidget.h \
history/webhistoryinterface.h
FORMS += \ FORMS += \
preferences/autofillmanager.ui \ preferences/autofillmanager.ui \

View File

@ -35,6 +35,8 @@
#include "desktopnotificationsfactory.h" #include "desktopnotificationsfactory.h"
#include "iconprovider.h" #include "iconprovider.h"
#include "qtwin.h" #include "qtwin.h"
#include "mainapplication.h"
#include "webhistoryinterface.h"
MainApplication::MainApplication(const QList<CommandLineOptions::ActionPair> &cmdActions, int &argc, char **argv) MainApplication::MainApplication(const QList<CommandLineOptions::ActionPair> &cmdActions, int &argc, char **argv)
: QtSingleApplication("QupZillaWebBrowser", argc, argv) : QtSingleApplication("QupZillaWebBrowser", argc, argv)
@ -139,6 +141,7 @@ MainApplication::MainApplication(const QList<CommandLineOptions::ActionPair> &cm
translateApp(); translateApp();
connectDatabase(); connectDatabase();
QWebHistoryInterface::setDefaultInterface(new WebHistoryInterface(this));
QupZilla* qupzilla = new QupZilla(true, startUrl); QupZilla* qupzilla = new QupZilla(true, startUrl);
m_mainWindows.append(qupzilla); m_mainWindows.append(qupzilla);
@ -150,8 +153,8 @@ MainApplication::MainApplication(const QList<CommandLineOptions::ActionPair> &cm
m_updater = new Updater(qupzilla); m_updater = new Updater(qupzilla);
if (noAddons) { if (noAddons) {
settings2.setValue("Plugin-Settings/AllowedPlugins",QStringList()); settings2.setValue("Plugin-Settings/AllowedPlugins", QStringList());
settings2.setValue("Plugin-Settings/EnablePlugins",false); settings2.setValue("Plugin-Settings/EnablePlugins", false);
} }
networkManager()->loadCertExceptions(); networkManager()->loadCertExceptions();

View File

@ -43,6 +43,7 @@ HistoryManager::HistoryManager(QupZilla* mainClass, QWidget* parent) :
connect(m_historyModel, SIGNAL(historyEntryAdded(HistoryModel::HistoryEntry)), this, SLOT(historyEntryAdded(HistoryModel::HistoryEntry))); connect(m_historyModel, SIGNAL(historyEntryAdded(HistoryModel::HistoryEntry)), this, SLOT(historyEntryAdded(HistoryModel::HistoryEntry)));
connect(m_historyModel, SIGNAL(historyEntryDeleted(HistoryModel::HistoryEntry)), this, SLOT(historyEntryDeleted(HistoryModel::HistoryEntry))); connect(m_historyModel, SIGNAL(historyEntryDeleted(HistoryModel::HistoryEntry)), this, SLOT(historyEntryDeleted(HistoryModel::HistoryEntry)));
connect(m_historyModel, SIGNAL(historyEntryEdited(HistoryModel::HistoryEntry,HistoryModel::HistoryEntry)), this, SLOT(historyEntryEdited(HistoryModel::HistoryEntry,HistoryModel::HistoryEntry)));
connect(m_historyModel, SIGNAL(historyClear()), ui->historyTree, SLOT(clear())); connect(m_historyModel, SIGNAL(historyClear()), ui->historyTree, SLOT(clear()));
connect(ui->optimizeDb, SIGNAL(clicked(QPoint)), this, SLOT(optimizeDb())); connect(ui->optimizeDb, SIGNAL(clicked(QPoint)), this, SLOT(optimizeDb()));
@ -174,6 +175,12 @@ void HistoryManager::historyEntryDeleted(const HistoryModel::HistoryEntry &entry
} }
} }
void HistoryManager::historyEntryEdited(const HistoryModel::HistoryEntry &before, const HistoryModel::HistoryEntry &after)
{
historyEntryDeleted(before);
historyEntryAdded(after);
}
void HistoryManager::clearHistory() void HistoryManager::clearHistory()
{ {
QMessageBox::StandardButton button = QMessageBox::warning(this, tr("Confirmation"), QMessageBox::StandardButton button = QMessageBox::warning(this, tr("Confirmation"),

View File

@ -53,6 +53,7 @@ private slots:
void historyEntryAdded(const HistoryModel::HistoryEntry &entry); void historyEntryAdded(const HistoryModel::HistoryEntry &entry);
void historyEntryDeleted(const HistoryModel::HistoryEntry &entry); void historyEntryDeleted(const HistoryModel::HistoryEntry &entry);
void historyEntryEdited(const HistoryModel::HistoryEntry &before, const HistoryModel::HistoryEntry &after);
private: private:
QupZilla* getQupZilla(); QupZilla* getQupZilla();

View File

@ -65,11 +65,22 @@ int HistoryModel::addHistoryEntry(const QString &url, QString &title)
entry.title = title; entry.title = title;
emit historyEntryAdded(entry); emit historyEntryAdded(entry);
} else { } else {
int id = query.value(0).toInt();
query.prepare("UPDATE history SET count = count + 1, date=?, title=? WHERE url=?"); query.prepare("UPDATE history SET count = count + 1, date=?, title=? WHERE url=?");
query.bindValue(0, QDateTime::currentMSecsSinceEpoch()); query.bindValue(0, QDateTime::currentMSecsSinceEpoch());
query.bindValue(1, title); query.bindValue(1, title);
query.bindValue(2, url); query.bindValue(2, url);
query.exec(); query.exec();
HistoryEntry before;
before.id = id;
HistoryEntry after;
after.id = id;
after.date = QDateTime::currentDateTime();
after.url = url;
after.title = title;
emit historyEntryEdited(before, after);
} }
return query.lastInsertId().toInt(); return query.lastInsertId().toInt();
} }
@ -101,7 +112,11 @@ bool HistoryModel::deleteHistoryEntry(int index)
query.prepare("DELETE FROM history WHERE id=?"); query.prepare("DELETE FROM history WHERE id=?");
query.bindValue(0, index); query.bindValue(0, index);
if (query.exec()) { bool removeHistorySuccess = query.exec();
query.prepare("DELETE FROM icons WHERE url=?");
query.bindValue(0, entry.url.toEncoded(QUrl::RemoveFragment));
query.exec();
if (removeHistorySuccess) {
emit historyEntryDeleted(entry); emit historyEntryDeleted(entry);
return true; return true;
} }
@ -122,6 +137,15 @@ bool HistoryModel::deleteHistoryEntry(const QString &url, const QString &title)
return false; return false;
} }
bool HistoryModel::urlIsStored(const QString &url)
{
QSqlQuery query;
query.prepare("SELECT id FROM history WHERE url=?");
query.bindValue(0, url);
query.exec();
return query.next();
}
QList<HistoryModel::HistoryEntry> HistoryModel::mostVisited(int count) QList<HistoryModel::HistoryEntry> HistoryModel::mostVisited(int count)
{ {
QList<HistoryEntry> list; QList<HistoryEntry> list;

View File

@ -48,6 +48,7 @@ public:
int addHistoryEntry(const QString &url, QString &title); int addHistoryEntry(const QString &url, QString &title);
bool deleteHistoryEntry(int index); bool deleteHistoryEntry(int index);
bool deleteHistoryEntry(const QString &url, const QString &title); bool deleteHistoryEntry(const QString &url, const QString &title);
bool urlIsStored(const QString &url);
QList<HistoryModel::HistoryEntry> mostVisited(int count); QList<HistoryModel::HistoryEntry> mostVisited(int count);
@ -61,6 +62,8 @@ public:
signals: signals:
void historyEntryAdded(HistoryModel::HistoryEntry entry); void historyEntryAdded(HistoryModel::HistoryEntry entry);
void historyEntryDeleted(HistoryModel::HistoryEntry entry); void historyEntryDeleted(HistoryModel::HistoryEntry entry);
void historyEntryEdited(HistoryModel::HistoryEntry before, HistoryModel::HistoryEntry after);
//WARNING: Incomplete HistoryEntry structs are passed to historyEntryEdited!
void historyClear(); void historyClear();
private: private:

View File

@ -0,0 +1,18 @@
#include "webhistoryinterface.h"
#include "mainapplication.h"
#include "historymodel.h"
WebHistoryInterface::WebHistoryInterface(QObject *parent) :
QWebHistoryInterface(parent)
{
}
void WebHistoryInterface::addHistoryEntry(const QString &url)
{
m_clickedLinks.append(url);
}
bool WebHistoryInterface::historyContains(const QString &url) const
{
return m_clickedLinks.contains(url);
}

View File

@ -0,0 +1,24 @@
#ifndef WEBHISTORYINTERFACE_H
#define WEBHISTORYINTERFACE_H
#include <QWebHistoryInterface>
class WebHistoryInterface : public QWebHistoryInterface
{
Q_OBJECT
public:
explicit WebHistoryInterface(QObject *parent = 0);
void addHistoryEntry(const QString &url);
bool historyContains(const QString &url) const;
signals:
public slots:
private:
QList<QString> m_clickedLinks;
};
#endif // WEBHISTORYINTERFACE_H

View File

@ -126,7 +126,7 @@ void BookmarksSideBar::addBookmark(const BookmarksModel::Bookmark &bookmark)
item->setText(0, bookmark.title); item->setText(0, bookmark.title);
item->setText(1, bookmark.url.toEncoded()); item->setText(1, bookmark.url.toEncoded());
item->setWhatsThis(0, QString::number(bookmark.id)); item->setWhatsThis(0, QString::number(bookmark.id));
item->setIcon(0, _iconForUrl(bookmark.url)); item->setIcon(0, bookmark.icon);
item->setToolTip(0, bookmark.url.toEncoded()); item->setToolTip(0, bookmark.url.toEncoded());
if (bookmark.folder != "unsorted") if (bookmark.folder != "unsorted")
@ -211,12 +211,13 @@ void BookmarksSideBar::refreshTable()
ui->bookmarksTree->addTopLevelItem(newItem); ui->bookmarksTree->addTopLevelItem(newItem);
} }
query.exec("SELECT title, url, id, folder FROM bookmarks"); query.exec("SELECT title, url, id, folder, icon FROM bookmarks");
while(query.next()) { while(query.next()) {
QString title = query.value(0).toString(); QString title = query.value(0).toString();
QUrl url = query.value(1).toUrl(); QUrl url = query.value(1).toUrl();
int id = query.value(2).toInt(); int id = query.value(2).toInt();
QString folder = query.value(3).toString(); QString folder = query.value(3).toString();
QIcon icon = IconProvider::iconFromBase64(query.value(4).toByteArray());
QTreeWidgetItem* item; QTreeWidgetItem* item;
if (folder == "bookmarksMenu") if (folder == "bookmarksMenu")
folder = tr("Bookmarks In Menu"); folder = tr("Bookmarks In Menu");
@ -243,7 +244,7 @@ void BookmarksSideBar::refreshTable()
// item->setToolTip(1, url.toEncoded()); // item->setToolTip(1, url.toEncoded());
item->setWhatsThis(0, QString::number(id)); item->setWhatsThis(0, QString::number(id));
item->setIcon(0, _iconForUrl(url)); item->setIcon(0, icon);
ui->bookmarksTree->addTopLevelItem(item); ui->bookmarksTree->addTopLevelItem(item);
} }
ui->bookmarksTree->expandAll(); ui->bookmarksTree->expandAll();

View File

@ -36,6 +36,7 @@ HistorySideBar::HistorySideBar(QupZilla* mainClass, QWidget* parent) :
connect(m_historyModel, SIGNAL(historyEntryAdded(HistoryModel::HistoryEntry)), this, SLOT(historyEntryAdded(HistoryModel::HistoryEntry))); connect(m_historyModel, SIGNAL(historyEntryAdded(HistoryModel::HistoryEntry)), this, SLOT(historyEntryAdded(HistoryModel::HistoryEntry)));
connect(m_historyModel, SIGNAL(historyEntryDeleted(HistoryModel::HistoryEntry)), this, SLOT(historyEntryDeleted(HistoryModel::HistoryEntry))); connect(m_historyModel, SIGNAL(historyEntryDeleted(HistoryModel::HistoryEntry)), this, SLOT(historyEntryDeleted(HistoryModel::HistoryEntry)));
connect(m_historyModel, SIGNAL(historyEntryEdited(HistoryModel::HistoryEntry,HistoryModel::HistoryEntry)), this, SLOT(historyEntryEdited(HistoryModel::HistoryEntry,HistoryModel::HistoryEntry)));
connect(m_historyModel, SIGNAL(historyClear()), ui->historyTree, SLOT(clear())); connect(m_historyModel, SIGNAL(historyClear()), ui->historyTree, SLOT(clear()));
QTimer::singleShot(0, this, SLOT(refreshTable())); QTimer::singleShot(0, this, SLOT(refreshTable()));
@ -130,6 +131,12 @@ void HistorySideBar::historyEntryDeleted(const HistoryModel::HistoryEntry &entry
} }
} }
void HistorySideBar::historyEntryEdited(const HistoryModel::HistoryEntry &before, const HistoryModel::HistoryEntry &after)
{
historyEntryDeleted(before);
historyEntryAdded(after);
}
void HistorySideBar::search() void HistorySideBar::search()
{ {
QString searchText = ui->search->text(); QString searchText = ui->search->text();

View File

@ -50,6 +50,7 @@ private slots:
void historyEntryAdded(const HistoryModel::HistoryEntry &entry); void historyEntryAdded(const HistoryModel::HistoryEntry &entry);
void historyEntryDeleted(const HistoryModel::HistoryEntry &entry); void historyEntryDeleted(const HistoryModel::HistoryEntry &entry);
void historyEntryEdited(const HistoryModel::HistoryEntry &before, const HistoryModel::HistoryEntry &after);
private: private:
Ui::HistorySideBar* ui; Ui::HistorySideBar* ui;

View File

@ -127,9 +127,7 @@ void WebView::urlChanged(const QUrl &url)
void WebView::linkClicked(const QUrl &url) void WebView::linkClicked(const QUrl &url)
{ {
qDebug() << __FUNCTION__ << "called"; load(url);
if (isCurrent())
emit showUrl(url);
} }
void WebView::setProgress(int prog) void WebView::setProgress(int prog)

View File

@ -612,7 +612,7 @@ p, li { white-space: pre-wrap; }
<message> <message>
<location filename="../src/other/browsinglibrary.cpp" line="141"/> <location filename="../src/other/browsinglibrary.cpp" line="141"/>
<source>Database successfuly optimized.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Database Size Before: &lt;/b&gt;%1&lt;br/&gt;&lt;b&gt;Databse Size After: &lt;/b&gt;%2</source> <source>Database successfuly optimized.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Database Size Before: &lt;/b&gt;%1&lt;br/&gt;&lt;b&gt;Databse Size After: &lt;/b&gt;%2</source>
<translation>Databáze byla úspěšně optimalizována.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Velikost databáze před: &lt;/b&gt;%1&lt;br/&gt;&lt;b&gt;Velikost databáze po: &lt;/b&gt;%2</translation> <translation type="unfinished">Databáze byla úspěšně optimalizována.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Velikost databáze před: &lt;/b&gt;%1&lt;br/&gt;&lt;b&gt;Velikost databáze po: &lt;/b&gt;%2</translation>
</message> </message>
</context> </context>
<context> <context>