From 6181e316ce8cfc1bef05c466a2470427ceb2deac Mon Sep 17 00:00:00 2001 From: Pierre Rossi Date: Wed, 15 Sep 2010 21:21:33 +0200 Subject: Prompt user before restoring session after a crash. Shows the about:closedTabs page in the background. Task: https://bugs.kde.org/show_bug.cgi?id=249228 --- src/urlbar/urlbar.cpp | 1 - src/urlbar/urlbar.h | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'src/urlbar') diff --git a/src/urlbar/urlbar.cpp b/src/urlbar/urlbar.cpp index 61c44907..4746ed1d 100644 --- a/src/urlbar/urlbar.cpp +++ b/src/urlbar/urlbar.cpp @@ -148,7 +148,6 @@ void UrlBar::setQUrl(const QUrl& url) void UrlBar::activated(const KUrl& url, Rekonq::OpenType type) { activateSuggestions(false); - clearFocus(); setUrl(url); Application::instance()->loadUrl(url, type); diff --git a/src/urlbar/urlbar.h b/src/urlbar/urlbar.h index 6e05ea7e..dcd0ba5b 100644 --- a/src/urlbar/urlbar.h +++ b/src/urlbar/urlbar.h @@ -90,6 +90,7 @@ public: ~UrlBar(); void setPrivateMode(bool on); + void activateSuggestions(bool); public slots: void setQUrl(const QUrl &url); @@ -120,7 +121,6 @@ protected: private: IconButton *addRightIcon(UrlBar::icon); - void activateSuggestions(bool); QWeakPointer _box; WebTab *_tab; -- cgit v1.2.1 From 79b98452cb17a595cbe04f166a95c7ac38594e2b Mon Sep 17 00:00:00 2001 From: Pierre Rossi Date: Fri, 17 Sep 2010 17:14:04 +0200 Subject: Fix multiple word highlighting. This time it works even with 'b' coming after some or have been inserted and with substrings, which would cause the following: String_containing_substring --- src/urlbar/listitem.cpp | 44 ++++++++++++++++++++++++++++++++++++++------ src/urlbar/listitem.h | 2 +- 2 files changed, 39 insertions(+), 7 deletions(-) (limited to 'src/urlbar') diff --git a/src/urlbar/listitem.cpp b/src/urlbar/listitem.cpp index c60e69a8..8b908149 100644 --- a/src/urlbar/listitem.cpp +++ b/src/urlbar/listitem.cpp @@ -204,22 +204,52 @@ IconLabel::IconLabel(const KIcon &icon, QWidget *parent) // --------------------------------------------------------------- +static QString highlightWordsInText(const QString &text, const QStringList &words) +{ + QString ret = text; + QBitArray boldSections(ret.size()); + foreach (const QString &wordToPointOut, words) { + int index = ret.indexOf(wordToPointOut, 0, Qt::CaseInsensitive); + while(index > -1) { + boldSections.fill(true,index + 1, index + wordToPointOut.size() + 1); + index = ret.indexOf(wordToPointOut, index + wordToPointOut.size(), Qt::CaseInsensitive); + } + } + int numSections = 0; + bool bold = false; + for(int i=0; i < boldSections.size() - 1; ++i ) { + if (boldSections.testBit(i) && (i == boldSections.size() || !boldSections.testBit(i+1))) + numSections++; + } + const int tagLength = 7; // length of "" and "" we're going to add for each bold section. + ret.reserve(ret.size() + numSections * tagLength); + bold = false; + for (int i = boldSections.size() - 1; i >= 0; --i) { + if (!bold && boldSections.testBit(i)) { + ret.insert(i, QL1S("")); + bold = true; + } else if (bold && !boldSections.testBit(i)) { + ret.insert(i, QL1S("")); + bold = false; + } + } + return ret; +} TextLabel::TextLabel(const QString &text, const QString &textToPointOut, QWidget *parent) : QLabel(parent) { + setTextFormat(Qt::RichText); + setMouseTracking(false); QString t = text; const bool wasItalic = t.startsWith(QL1S("")); if (wasItalic) - t.remove(QRegExp("<[/ib]*>")); - + t.remove(QRegExp(QL1S("<[/ib]*>"))); t = Qt::escape(t); - QString ss = Qt::escape(textToPointOut); - t.replace(QRegExp('(' + ss + ')', Qt::CaseInsensitive), "\\1"); - + QStringList words = Qt::escape(textToPointOut.simplified()).split(QL1C(' ')); + t = highlightWordsInText(t, words); if (wasItalic) t = QL1S("") + t + QL1S(""); - setText(t); setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum); } @@ -228,6 +258,8 @@ TextLabel::TextLabel(const QString &text, const QString &textToPointOut, QWidget TextLabel::TextLabel(QWidget *parent) : QLabel(parent) { + setTextFormat(Qt::RichText); + setMouseTracking(false); setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum); } diff --git a/src/urlbar/listitem.h b/src/urlbar/listitem.h index be5a2569..975c3724 100644 --- a/src/urlbar/listitem.h +++ b/src/urlbar/listitem.h @@ -115,7 +115,7 @@ public: // ------------------------------------------------------------------------- -class TextLabel : public QLabel +class REKONQ_TESTS_EXPORT TextLabel : public QLabel { Q_OBJECT -- cgit v1.2.1