1
mirror of https://invent.kde.org/network/falkon.git synced 2024-12-20 10:46:35 +01:00

LocationCompleter: Remove all originalText handling

Instead move the original text (original text from locationbar)
directly into model item.
This commit is contained in:
David Rosca 2018-03-16 20:45:31 +01:00
parent 6d26d67db4
commit 49c028740e
No known key found for this signature in database
GPG Key ID: EBC3FC294452C6D8
6 changed files with 29 additions and 42 deletions

View File

@ -99,25 +99,29 @@ void LocationCompleter::complete(const QString &string)
m_oldSuggestions.clear(); m_oldSuggestions.clear();
} }
// Add search/visit item // Add/update search/visit item
if (!trimmedStr.isEmpty()) { QTimer::singleShot(0, this, [=]() {
const QModelIndex index = s_model->index(0, 0);
if (index.data(LocationCompleterModel::VisitSearchItemRole).toBool()) {
s_model->setData(index, trimmedStr, Qt::DisplayRole);
s_model->setData(index, trimmedStr, LocationCompleterModel::UrlRole);
s_model->setData(index, m_locationBar->text(), LocationCompleterModel::SearchStringRole);
} else {
QStandardItem *item = new QStandardItem(); QStandardItem *item = new QStandardItem();
item->setText(trimmedStr); item->setText(trimmedStr);
item->setData(trimmedStr, LocationCompleterModel::UrlRole); item->setData(trimmedStr, LocationCompleterModel::UrlRole);
item->setData(trimmedStr, LocationCompleterModel::SearchStringRole); item->setData(m_locationBar->text(), LocationCompleterModel::SearchStringRole);
item->setData(true, LocationCompleterModel::VisitSearchItemRole); item->setData(true, LocationCompleterModel::VisitSearchItemRole);
s_model->setCompletions({item}); s_model->setCompletions({item});
addSuggestions(m_oldSuggestions); addSuggestions(m_oldSuggestions);
}
showPopup(); showPopup();
if (!s_view->currentIndex().isValid()) { if (!s_view->currentIndex().isValid()) {
m_ignoreCurrentChanged = true; m_ignoreCurrentChanged = true;
s_view->setCurrentIndex(s_model->index(0, 0)); s_view->setCurrentIndex(s_model->index(0, 0));
m_ignoreCurrentChanged = false; m_ignoreCurrentChanged = false;
} }
} });
m_originalText = m_locationBar->text();
s_view->setOriginalText(m_originalText);
} }
void LocationCompleter::showMostVisited() void LocationCompleter::showMostVisited()
@ -149,6 +153,8 @@ void LocationCompleter::refreshJobFinished()
if (qzSettings->useInlineCompletion) { if (qzSettings->useInlineCompletion) {
emit showDomainCompletion(job->domainCompletion()); emit showDomainCompletion(job->domainCompletion());
} }
s_model->setData(s_model->index(0, 0), m_locationBar->text(), LocationCompleterModel::SearchStringRole);
} }
job->deleteLater(); job->deleteLater();
@ -211,14 +217,16 @@ void LocationCompleter::currentChanged(const QModelIndex &index)
bool completeDomain = index.data(LocationCompleterModel::VisitSearchItemRole).toBool(); bool completeDomain = index.data(LocationCompleterModel::VisitSearchItemRole).toBool();
const QString originalText = s_model->index(0, 0).data(LocationCompleterModel::SearchStringRole).toString();
// Domain completion was dismissed // Domain completion was dismissed
if (completeDomain && completion == m_originalText) { if (completeDomain && completion == originalText) {
completeDomain = false; completeDomain = false;
} }
if (completion.isEmpty()) { if (completion.isEmpty()) {
completeDomain = true; completeDomain = true;
completion = m_originalText; completion = originalText;
} }
emit showCompletion(completion, completeDomain); emit showCompletion(completion, completeDomain);
@ -272,7 +280,7 @@ void LocationCompleter::indexShiftActivated(const QModelIndex &index)
// Load request // Load request
if (index.data(LocationCompleterModel::VisitSearchItemRole).toBool()) { if (index.data(LocationCompleterModel::VisitSearchItemRole).toBool()) {
loadRequest(LoadRequest(QUrl(m_originalText))); loadRequest(LoadRequest(index.data(LocationCompleterModel::SearchStringRole).toUrl()));
} else { } else {
loadRequest(createLoadRequest(index)); loadRequest(createLoadRequest(index));
} }
@ -314,7 +322,7 @@ LoadRequest LocationCompleter::createLoadRequest(const QModelIndex &index)
const QString text = index.data(LocationCompleterModel::TitleRole).toString(); const QString text = index.data(LocationCompleterModel::TitleRole).toString();
request = mApp->searchEnginesManager()->searchResult(LocationBar::searchEngine(), text); request = mApp->searchEnginesManager()->searchResult(LocationBar::searchEngine(), text);
} else if (index.data(LocationCompleterModel::VisitSearchItemRole).toBool()) { } else if (index.data(LocationCompleterModel::VisitSearchItemRole).toBool()) {
const auto action = LocationBar::loadAction(m_originalText); const auto action = LocationBar::loadAction(index.data(LocationCompleterModel::SearchStringRole).toString());
switch (action.type) { switch (action.type) {
case LocationBar::LoadAction::Url: case LocationBar::LoadAction::Url:
case LocationBar::LoadAction::Search: case LocationBar::LoadAction::Search:
@ -413,11 +421,6 @@ void LocationCompleter::showPopup()
void LocationCompleter::adjustPopupSize() void LocationCompleter::adjustPopupSize()
{ {
if (s_view->currentIndex().row() == 0) {
m_originalText = m_locationBar->text();
s_view->setOriginalText(m_originalText);
}
s_view->adjustSize(); s_view->adjustSize();
s_view->show(); s_view->show();
} }

View File

@ -79,7 +79,6 @@ private:
BrowserWindow* m_window; BrowserWindow* m_window;
LocationBar* m_locationBar; LocationBar* m_locationBar;
qint64 m_lastRefreshTimestamp; qint64 m_lastRefreshTimestamp;
QString m_originalText;
bool m_popupClosed; bool m_popupClosed;
bool m_ignoreCurrentChanged = false; bool m_ignoreCurrentChanged = false;
OpenSearchEngine* m_openSearchEngine = nullptr; OpenSearchEngine* m_openSearchEngine = nullptr;

View File

@ -84,7 +84,7 @@ void LocationCompleterDelegate::paint(QPainter* painter, const QStyleOptionViewI
BookmarkItem *bookmark = static_cast<BookmarkItem*>(index.data(LocationCompleterModel::BookmarkItemRole).value<void*>()); BookmarkItem *bookmark = static_cast<BookmarkItem*>(index.data(LocationCompleterModel::BookmarkItemRole).value<void*>());
if (isVisitSearchItem) { if (isVisitSearchItem) {
loadAction = LocationBar::loadAction(m_originalText); loadAction = LocationBar::loadAction(index.data(LocationCompleterModel::SearchStringRole).toString());
isWebSearch = loadAction.type == LocationBar::LoadAction::Search; isWebSearch = loadAction.type == LocationBar::LoadAction::Search;
if (!m_forceVisitItem) { if (!m_forceVisitItem) {
bookmark = loadAction.bookmark; bookmark = loadAction.bookmark;
@ -132,7 +132,7 @@ void LocationCompleterDelegate::paint(QPainter* painter, const QStyleOptionViewI
if (bookmark) { if (bookmark) {
title = bookmark->title(); title = bookmark->title();
} else { } else {
title = m_originalText.trimmed(); title = index.data(LocationCompleterModel::SearchStringRole).toString();
searchText.clear(); searchText.clear();
} }
} }
@ -232,11 +232,6 @@ void LocationCompleterDelegate::setForceVisitItem(bool enable)
m_forceVisitItem = enable; m_forceVisitItem = enable;
} }
void LocationCompleterDelegate::setOriginalText(const QString &originalText)
{
m_originalText = originalText;
}
static bool sizeBiggerThan(const QString &s1, const QString &s2) static bool sizeBiggerThan(const QString &s1, const QString &s2)
{ {
return s1.size() > s2.size(); return s1.size() > s2.size();

View File

@ -31,7 +31,6 @@ public:
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const; QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
void setForceVisitItem(bool enable); void setForceVisitItem(bool enable);
void setOriginalText(const QString &originalText);
private: private:
int viewItemDrawText(QPainter *p, const QStyleOptionViewItem *option, const QRect &rect, int viewItemDrawText(QPainter *p, const QStyleOptionViewItem *option, const QRect &rect,
@ -41,7 +40,6 @@ private:
mutable int m_rowHeight; mutable int m_rowHeight;
mutable int m_padding; mutable int m_padding;
bool m_forceVisitItem = false; bool m_forceVisitItem = false;
QString m_originalText;
}; };
#endif // LOCATIONCOMPLETERDELEGATE_H #endif // LOCATIONCOMPLETERDELEGATE_H

View File

@ -114,12 +114,6 @@ QItemSelectionModel *LocationCompleterView::selectionModel() const
return m_view->selectionModel(); return m_view->selectionModel();
} }
void LocationCompleterView::setOriginalText(const QString &originalText)
{
m_originalText = originalText;
m_delegate->setOriginalText(originalText);
}
void LocationCompleterView::adjustSize() void LocationCompleterView::adjustSize()
{ {
const int maxItemsCount = 12; const int maxItemsCount = 12;
@ -395,7 +389,8 @@ void LocationCompleterView::setupSearchEngines()
button->setAutoRaise(true); button->setAutoRaise(true);
button->setIconSize(QSize(16, 16)); button->setIconSize(QSize(16, 16));
connect(button, &ToolButton::clicked, this, [=]() { connect(button, &ToolButton::clicked, this, [=]() {
emit loadRequested(mApp->searchEnginesManager()->searchResult(engine, m_originalText)); const QString text = model()->index(0, 0).data(LocationCompleterModel::SearchStringRole).toString();
emit loadRequested(mApp->searchEnginesManager()->searchResult(engine, text));
}); });
m_searchEnginesLayout->addWidget(button); m_searchEnginesLayout->addWidget(button);
} }

View File

@ -42,8 +42,6 @@ public:
QModelIndex currentIndex() const; QModelIndex currentIndex() const;
void setCurrentIndex(const QModelIndex &index); void setCurrentIndex(const QModelIndex &index);
void setOriginalText(const QString &originalText);
void adjustSize(); void adjustSize();
bool eventFilter(QObject* object, QEvent* event); bool eventFilter(QObject* object, QEvent* event);
@ -68,7 +66,6 @@ private:
QListView *m_view; QListView *m_view;
LocationCompleterDelegate *m_delegate; LocationCompleterDelegate *m_delegate;
QHBoxLayout *m_searchEnginesLayout; QHBoxLayout *m_searchEnginesLayout;
QString m_originalText;
int m_resizeHeight = -1; int m_resizeHeight = -1;
QTimer *m_resizeTimer = nullptr; QTimer *m_resizeTimer = nullptr;
bool m_forceResize = true; bool m_forceResize = true;