1
mirror of https://invent.kde.org/network/falkon.git synced 2024-11-11 01:22:10 +01:00

LocationCompleter: Improved sorting bookmarks by visit count.

- it sorts by visit counts of bookmark's url from history
- count column in bookmarks is not needed after all :-)

Patch by Franz Fellner <alpine.art.de@gmail.com>
This commit is contained in:
nowrep 2012-09-08 22:52:32 +02:00
parent c2100127e0
commit 7189ff58b4
13 changed files with 18 additions and 81 deletions

View File

@ -21,6 +21,7 @@ Version 1.3.5
* new option to hide close button on tabs * new option to hide close button on tabs
* new option to start new instance with --no-remote option * new option to start new instance with --no-remote option
* X11: restore windows on correct virtual desktops * X11: restore windows on correct virtual desktops
* MouseGestures: added 2 new gestures for switching tabs
* fixed visibility of navigation bar in fullscreen * fixed visibility of navigation bar in fullscreen
* fixed bad position of add tab button when there is a lot of tabs * fixed bad position of add tab button when there is a lot of tabs
* fixed gui with RTL languages * fixed gui with RTL languages

View File

@ -29,8 +29,6 @@
ProfileUpdater::ProfileUpdater(const QString &profilePath) ProfileUpdater::ProfileUpdater(const QString &profilePath)
: m_profilePath(profilePath) : m_profilePath(profilePath)
{ {
// FIXME: Remove this line when releasing new version
update131();
} }
void ProfileUpdater::checkProfile() void ProfileUpdater::checkProfile()
@ -84,9 +82,9 @@ void ProfileUpdater::updateProfile(const QString &current, const QString &profil
return; return;
} }
if (profileVersion == Updater::parseVersionFromString("1.1.0") || if (profileVersion == Updater::parseVersionFromString("1.1.0")
profileVersion == Updater::parseVersionFromString("1.1.5") || || profileVersion == Updater::parseVersionFromString("1.1.5")
profileVersion == Updater::parseVersionFromString("1.1.8")) { || profileVersion == Updater::parseVersionFromString("1.1.8")) {
update118(); update118();
return; return;
} }
@ -96,16 +94,12 @@ void ProfileUpdater::updateProfile(const QString &current, const QString &profil
return; return;
} }
if (profileVersion == Updater::parseVersionFromString("1.3.0")) { if (profileVersion == Updater::parseVersionFromString("1.3.0")
|| profileVersion == Updater::parseVersionFromString("1.3.1")) {
update130(); update130();
return; return;
} }
if (profileVersion == Updater::parseVersionFromString("1.3.1")) {
update131();
return;
}
std::cout << "QupZilla: Incompatible profile version detected, overwriting profile data..." << std::endl; std::cout << "QupZilla: Incompatible profile version detected, overwriting profile data..." << std::endl;
copyDataToProfile(); copyDataToProfile();
@ -212,16 +206,4 @@ void ProfileUpdater::update130()
QSqlQuery query; QSqlQuery query;
query.exec("ALTER TABLE bookmarks ADD COLUMN keyword TEXT"); query.exec("ALTER TABLE bookmarks ADD COLUMN keyword TEXT");
update131();
}
void ProfileUpdater::update131()
{
std::cout << "QupZilla: Upgrading profile version from 1.3.1..." << std::endl;
mApp->connectDatabase();
QSqlQuery query;
query.exec("ALTER TABLE bookmarks ADD COLUMN count NUMERIC");
query.exec("UPDATE bookmarks SET count=0");
} }

View File

@ -38,7 +38,6 @@ private:
void update118(); void update118();
void update120(); void update120();
void update130(); void update130();
void update131();
QString m_profilePath; QString m_profilePath;
}; };

View File

@ -196,9 +196,6 @@ void BookmarksManager::itemControlClicked(QTreeWidgetItem* item)
return; return;
} }
int id = item->data(0, Qt::UserRole + 10).toInt();
mApp->bookmarksModel()->countUpBookmark(id);
const QUrl &url = QUrl::fromEncoded(item->text(1).toUtf8()); const QUrl &url = QUrl::fromEncoded(item->text(1).toUtf8());
getQupZilla()->tabWidget()->addView(url, item->text(0)); getQupZilla()->tabWidget()->addView(url, item->text(0));
} }
@ -212,9 +209,6 @@ void BookmarksManager::loadInNewTab()
return; return;
} }
int id = item->data(0, Qt::UserRole + 10).toInt();
mApp->bookmarksModel()->countUpBookmark(id);
getQupZilla()->tabWidget()->addView(action->data().toUrl(), item->text(0), qzSettings->newTabPosition); getQupZilla()->tabWidget()->addView(action->data().toUrl(), item->text(0), qzSettings->newTabPosition);
} }

View File

@ -369,14 +369,6 @@ bool BookmarksModel::changeIcon(int id, const QIcon &icon)
return true; return true;
} }
void BookmarksModel::countUpBookmark(int id)
{
QSqlQuery query;
query.prepare("UPDATE bookmarks SET count = count + 1 WHERE id=?");
query.addBindValue(id);
query.exec();
}
bool BookmarksModel::createFolder(const QString &name) bool BookmarksModel::createFolder(const QString &name)
{ {
if (isFolder(name)) { if (isFolder(name)) {

View File

@ -88,8 +88,6 @@ public:
bool editBookmark(int id, const QString &title = QString(), const QUrl &url = QUrl(), const QString &folder = QString()); bool editBookmark(int id, const QString &title = QString(), const QUrl &url = QUrl(), const QString &folder = QString());
bool changeIcon(int id, const QIcon &icon); bool changeIcon(int id, const QIcon &icon);
void countUpBookmark(int id);
bool createFolder(const QString &name); bool createFolder(const QString &name);
void removeFolder(const QString &name); void removeFolder(const QString &name);

Binary file not shown.

View File

@ -63,23 +63,13 @@ void LocationCompleter::showMostVisited()
void LocationCompleter::currentChanged(const QModelIndex &index) void LocationCompleter::currentChanged(const QModelIndex &index)
{ {
int bookmarkId = -1;
QString completion = index.data().toString(); QString completion = index.data().toString();
if (completion.isEmpty()) { if (completion.isEmpty()) {
completion = m_originalText; completion = m_originalText;
} }
if (index.data(LocationCompleterModel::BookmarkRole).toBool()) { emit showCompletion(completion);
bool ok = false;
int id = index.data(LocationCompleterModel::IdRole).toInt(&ok);
if (ok) {
bookmarkId = id;
}
}
emit showCompletion(completion, bookmarkId);
} }
void LocationCompleter::popupClosed() void LocationCompleter::popupClosed()

View File

@ -38,7 +38,7 @@ public:
void closePopup(); void closePopup();
signals: signals:
void showCompletion(const QString &, int bookmarkId); void showCompletion(const QString &);
void completionActivated(); void completionActivated();
public slots: public slots:

View File

@ -56,7 +56,7 @@ void LocationCompleterModel::refreshCompletions(const QString &string)
QList<QStandardItem*> itemList; QList<QStandardItem*> itemList;
if (showType == HistoryAndBookmarks || showType == Bookmarks) { if (showType == HistoryAndBookmarks || showType == Bookmarks) {
QSqlQuery query = createQuery(string, "bookmarks.count DESC", urlList, limit, true); QSqlQuery query = createQuery(string, "history.count DESC", urlList, limit, true);
query.exec(); query.exec();
while (query.next()) { while (query.next()) {
@ -67,7 +67,7 @@ void LocationCompleterModel::refreshCompletions(const QString &string)
item->setText(url.toEncoded()); item->setText(url.toEncoded());
item->setData(query.value(0), IdRole); item->setData(query.value(0), IdRole);
item->setData(query.value(2), TitleRole); item->setData(query.value(2), TitleRole);
item->setData(query.value(3).toInt() + 10, CountRole); // Give +10 count bonus to bookmarks item->setData(query.value(3), CountRole);
item->setData(QVariant(true), BookmarkRole); item->setData(QVariant(true), BookmarkRole);
item->setData(string, SearchStringRole); item->setData(string, SearchStringRole);
@ -129,7 +129,7 @@ QSqlQuery LocationCompleterModel::createQuery(const QString &searchString, const
const QList<QUrl> &alreadyFound, int limit, bool bookmarks, bool exactMatch) const QList<QUrl> &alreadyFound, int limit, bool bookmarks, bool exactMatch)
{ {
QString table = bookmarks ? "bookmarks" : "history"; QString table = bookmarks ? "bookmarks" : "history";
QString query = QString("SELECT %1.id, %1.url, %1.title, %1.count").arg(table); QString query = QString("SELECT %1.id, %1.url, %1.title, history.count").arg(table);
QStringList searchList; QStringList searchList;
if (bookmarks) { if (bookmarks) {

View File

@ -50,7 +50,6 @@ LocationBar::LocationBar(QupZilla* mainClass)
, m_pasteAndGoAction(0) , m_pasteAndGoAction(0)
, m_clearAction(0) , m_clearAction(0)
, m_holdingAlt(false) , m_holdingAlt(false)
, m_completerBookmarkId(-1)
, m_loadProgress(0) , m_loadProgress(0)
, m_loadFinished(true) , m_loadFinished(true)
{ {
@ -77,7 +76,7 @@ LocationBar::LocationBar(QupZilla* mainClass)
addWidget(down, LineEdit::RightSide); addWidget(down, LineEdit::RightSide);
m_completer.setLocationBar(this); m_completer.setLocationBar(this);
connect(&m_completer, SIGNAL(showCompletion(QString, int)), this, SLOT(showCompletion(QString, int))); connect(&m_completer, SIGNAL(showCompletion(QString)), this, SLOT(showCompletion(QString)));
connect(&m_completer, SIGNAL(completionActivated()), this, SLOT(urlEnter())); connect(&m_completer, SIGNAL(completionActivated()), this, SLOT(urlEnter()));
connect(this, SIGNAL(textEdited(QString)), this, SLOT(textEdit())); connect(this, SIGNAL(textEdited(QString)), this, SLOT(textEdit()));
@ -110,10 +109,8 @@ void LocationBar::updatePlaceHolderText()
setPlaceholderText(tr("Enter URL address or search on %1").arg(mApp->searchEnginesManager()->activeEngine().name)); setPlaceholderText(tr("Enter URL address or search on %1").arg(mApp->searchEnginesManager()->activeEngine().name));
} }
void LocationBar::showCompletion(const QString &newText, int bookmarkId) void LocationBar::showCompletion(const QString &newText)
{ {
m_completerBookmarkId = bookmarkId;
LineEdit::setText(newText); LineEdit::setText(newText);
// Move cursor to the end // Move cursor to the end
@ -162,12 +159,6 @@ QString LocationBar::convertUrlToText(const QUrl &url) const
void LocationBar::urlEnter() void LocationBar::urlEnter()
{ {
if (m_completerBookmarkId != -1) {
mApp->bookmarksModel()->countUpBookmark(m_completerBookmarkId);
m_completerBookmarkId = -1;
}
m_completer.closePopup(); m_completer.closePopup();
m_webView->setFocus(); m_webView->setFocus();
@ -183,8 +174,6 @@ void LocationBar::textEdit()
m_completer.closePopup(); m_completer.closePopup();
} }
m_completerBookmarkId = -1;
showGoButton(); showGoButton();
} }

View File

@ -71,7 +71,7 @@ private slots:
void pasteAndGo(); void pasteAndGo();
void updatePlaceHolderText(); void updatePlaceHolderText();
void showCompletion(const QString &newText, int bookmarkId); void showCompletion(const QString &newText);
void onLoadProgress(int progress); void onLoadProgress(int progress);
void onLoadFinished(); void onLoadFinished();
@ -109,7 +109,6 @@ private:
bool m_rssIconVisible; bool m_rssIconVisible;
bool m_holdingAlt; bool m_holdingAlt;
int m_completerBookmarkId;
int m_loadProgress; int m_loadProgress;
bool m_loadFinished; bool m_loadFinished;

View File

@ -54,12 +54,14 @@ BookmarksSideBar::BookmarksSideBar(QupZilla* mainClass, QWidget* parent)
connect(m_bookmarksModel, SIGNAL(bookmarkAdded(BookmarksModel::Bookmark)), this, SLOT(addBookmark(BookmarksModel::Bookmark))); connect(m_bookmarksModel, SIGNAL(bookmarkAdded(BookmarksModel::Bookmark)), this, SLOT(addBookmark(BookmarksModel::Bookmark)));
connect(m_bookmarksModel, SIGNAL(bookmarkDeleted(BookmarksModel::Bookmark)), this, SLOT(removeBookmark(BookmarksModel::Bookmark))); connect(m_bookmarksModel, SIGNAL(bookmarkDeleted(BookmarksModel::Bookmark)), this, SLOT(removeBookmark(BookmarksModel::Bookmark)));
connect(m_bookmarksModel, SIGNAL(bookmarkEdited(BookmarksModel::Bookmark, BookmarksModel::Bookmark)), this, SLOT(bookmarkEdited(BookmarksModel::Bookmark, BookmarksModel::Bookmark))); connect(m_bookmarksModel, SIGNAL(bookmarkEdited(BookmarksModel::Bookmark, BookmarksModel::Bookmark)),
this, SLOT(bookmarkEdited(BookmarksModel::Bookmark, BookmarksModel::Bookmark)));
connect(m_bookmarksModel, SIGNAL(folderAdded(QString)), this, SLOT(addFolder(QString))); connect(m_bookmarksModel, SIGNAL(folderAdded(QString)), this, SLOT(addFolder(QString)));
connect(m_bookmarksModel, SIGNAL(folderDeleted(QString)), this, SLOT(removeFolder(QString))); connect(m_bookmarksModel, SIGNAL(folderDeleted(QString)), this, SLOT(removeFolder(QString)));
connect(m_bookmarksModel, SIGNAL(folderRenamed(QString, QString)), this, SLOT(renameFolder(QString, QString))); connect(m_bookmarksModel, SIGNAL(folderRenamed(QString, QString)), this, SLOT(renameFolder(QString, QString)));
connect(m_bookmarksModel, SIGNAL(folderParentChanged(QString, bool)), this, SLOT(changeFolderParent(QString, bool))); connect(m_bookmarksModel, SIGNAL(folderParentChanged(QString, bool)), this, SLOT(changeFolderParent(QString, bool)));
connect(m_bookmarksModel, SIGNAL(bookmarkParentChanged(QString, QByteArray, int, QUrl, QString, QString)), this, SLOT(changeBookmarkParent(QString, QByteArray, int, QUrl, QString, QString))); connect(m_bookmarksModel, SIGNAL(bookmarkParentChanged(QString, QByteArray, int, QUrl, QString, QString)),
this, SLOT(changeBookmarkParent(QString, QByteArray, int, QUrl, QString, QString)));
QTimer::singleShot(0, this, SLOT(refreshTable())); QTimer::singleShot(0, this, SLOT(refreshTable()));
} }
@ -70,9 +72,6 @@ void BookmarksSideBar::itemControlClicked(QTreeWidgetItem* item)
return; return;
} }
int id = item->data(0, Qt::UserRole + 10).toInt();
mApp->bookmarksModel()->countUpBookmark(id);
const QUrl &url = QUrl::fromEncoded(item->text(1).toUtf8()); const QUrl &url = QUrl::fromEncoded(item->text(1).toUtf8());
p_QupZilla->tabWidget()->addView(url, item->text(0)); p_QupZilla->tabWidget()->addView(url, item->text(0));
} }
@ -83,9 +82,6 @@ void BookmarksSideBar::itemDoubleClicked(QTreeWidgetItem* item)
return; return;
} }
int id = item->data(0, Qt::UserRole + 10).toInt();
mApp->bookmarksModel()->countUpBookmark(id);
const QUrl &url = QUrl::fromEncoded(item->text(1).toUtf8()); const QUrl &url = QUrl::fromEncoded(item->text(1).toUtf8());
p_QupZilla->loadAddress(url); p_QupZilla->loadAddress(url);
} }
@ -99,9 +95,6 @@ void BookmarksSideBar::loadInNewTab()
return; return;
} }
int id = item->data(0, Qt::UserRole + 10).toInt();
mApp->bookmarksModel()->countUpBookmark(id);
p_QupZilla->tabWidget()->addView(action->data().toUrl(), item->text(0), qzSettings->newTabPosition); p_QupZilla->tabWidget()->addView(action->data().toUrl(), item->text(0), qzSettings->newTabPosition);
} }