summaryrefslogtreecommitdiff
path: root/src/urlbar/listitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/urlbar/listitem.cpp')
-rw-r--r--src/urlbar/listitem.cpp73
1 files changed, 30 insertions, 43 deletions
diff --git a/src/urlbar/listitem.cpp b/src/urlbar/listitem.cpp
index 6c09f9a5..5ff90056 100644
--- a/src/urlbar/listitem.cpp
+++ b/src/urlbar/listitem.cpp
@@ -212,12 +212,11 @@ TextLabel::TextLabel(const QString &text, const QString &textToPointOut, QWidget
const bool wasItalic = t.startsWith("<i>");
if (wasItalic)
t.remove(QRegExp("<[/ib]*>"));
+
t = Qt::escape(t);
- QStringList words = textToPointOut.split(" ");
- foreach (const QString &wordToPointOut, words) {
- if (!wordToPointOut.isEmpty())
- t.replace(QRegExp('(' + wordToPointOut + ')', Qt::CaseInsensitive), "<b>\\1</b>");
- }
+ QString ss = Qt::escape(textToPointOut);
+ t.replace(QRegExp('(' + ss + ')', Qt::CaseInsensitive), "<b>\\1</b>");
+
if (wasItalic)
t = QL1S("<i>") + t + QL1S("</i>");
@@ -226,6 +225,19 @@ TextLabel::TextLabel(const QString &text, const QString &textToPointOut, QWidget
}
+TextLabel::TextLabel(QWidget *parent)
+ : QLabel(parent)
+{
+ setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum);
+}
+
+
+void TextLabel::setEngineText(const QString &engine, const QString &text)
+{
+ setText( i18nc("%1=search engine, e.g. Google, Wikipedia %2=text to search for", "Search %1 for <b>%2</b>", engine, Qt::escape(text) ) );
+}
+
+
//--------------------------------------------------------------------------------------------
@@ -290,23 +302,11 @@ SearchListItem::SearchListItem(const UrlSearchItem &item, const QString &text, Q
: ListItem(item, parent)
, m_text(text)
{
- QString query = text;
- KService::Ptr engine = SearchEngine::fromString(text);
- if (engine)
- {
- query = query.remove(0, text.indexOf(SearchEngine::delimiter()) + 1);
- }
- else
- {
- engine = qobject_cast<CompletionWidget *>(parent)->searchEngine();
- }
-
- m_url = SearchEngine::buildQuery(engine, query);
-
- KIcon icon = Application::iconManager()->iconForUrl( SearchEngine::defaultEngine()->property("Query").toUrl() );
- m_iconLabel = new IconLabel(icon, this); //TODO: get the default engine icon (will be easy in KDE SC 4.5)
- m_titleLabel = new TextLabel(searchItemTitle(engine->name(), query), query, this);
- m_engineBar = new EngineBar(engine, parent);
+ m_iconLabel = new IconLabel(SearchEngine::buildQuery(UrlResolver::searchEngine(), ""), this);
+ QString query = SearchEngine::extractQuery(text);
+ m_titleLabel = new TextLabel(this);
+ m_titleLabel->setEngineText(item.title, query);
+ m_engineBar = new EngineBar(UrlResolver::searchEngine(), parent);
QHBoxLayout *hLayout = new QHBoxLayout;
hLayout->setSpacing(4);
@@ -329,18 +329,18 @@ QString SearchListItem::text()
}
-QString SearchListItem::searchItemTitle(QString engine, QString text)
-{
- return QString(i18nc("%1=search engine, e.g. Google, Wikipedia %2=text to search for", "Search %1 for %2", engine, Qt::escape(text)));
-}
+// QString SearchListItem::searchItemTitle(QString engine, QString text)
+// {
+// return QString(i18nc("%1=search engine, e.g. Google, Wikipedia %2=text to search for", "Search %1 for %2", engine, text));
+// }
void SearchListItem::changeSearchEngine(KService::Ptr engine)
{
- m_titleLabel->setText(searchItemTitle(engine->name(), m_text));
+ m_titleLabel->setEngineText(engine->name(), m_text);
m_iconLabel->setPixmap( Application::iconManager()->iconForUrl(KUrl(engine->property("Query").toString())).pixmap(16) );
m_url = SearchEngine::buildQuery(engine, m_text);
- qobject_cast<CompletionWidget *>(parent())->setSearchEngine(engine);
+ UrlResolver::setSearchEngine(engine);
}
@@ -429,21 +429,8 @@ SuggestionListItem::SuggestionListItem(const UrlSearchItem &item, const QString
QHBoxLayout *hLayout = new QHBoxLayout;
hLayout->setSpacing(4);
- QString query = item.title;
- KService::Ptr engine = SearchEngine::fromString(query);
- if (engine)
- {
- query = query.remove(0, text.indexOf(SearchEngine::delimiter()) + 1);
- }
- else
- {
- engine = qobject_cast<CompletionWidget *>(parent)->searchEngine();
- }
-
- m_url = SearchEngine::buildQuery(engine, query);
-
- hLayout->addWidget(new IconLabel(SearchEngine::buildQuery(engine, ""), this));
- hLayout->addWidget(new TextLabel(item.title, text, this));
+ hLayout->addWidget(new IconLabel(SearchEngine::buildQuery(UrlResolver::searchEngine(), ""), this));
+ hLayout->addWidget(new TextLabel(item.title, SearchEngine::extractQuery(text), this));
hLayout->addWidget(new TypeIconLabel(item.type, this));
setLayout(hLayout);