summaryrefslogtreecommitdiff
path: root/src/urlbar
diff options
context:
space:
mode:
authorAndrea Diamantini <adjam7@gmail.com>2010-03-30 11:26:07 +0200
committerAndrea Diamantini <adjam7@gmail.com>2010-03-30 11:26:07 +0200
commit80b37fa28d6c4e148ac0c69e91e07c1679866c54 (patch)
tree53f3ba9d14e2da053fd01c2dfa4dd7fc54aa5c31 /src/urlbar
parentfixing crash on manual rules saving (diff)
downloadrekonq-80b37fa28d6c4e148ac0c69e91e07c1679866c54.tar.xz
Cleaning urlbar API and improving animation
WARNING: This is the best animation I could provide with the KComboBox class. In the KLineEdit derived it works perfectly. In the Combos there are some shadows on top :( Squashed commit of the following: commit 01e72a1996161028f8dbdc4e355daf00f954eace commit 8bc032d98a4987d3b01566ac520f5e8a1a095dd0 commit bc5cfd9f7d1b34f5af06dd7af6de8d3b2edb277b commit 73b4deac84d91fece407b9c700dcc61e36a34327 commit c55b753913b2619607c6aa11cabbf77ca3c84e3e commit b901fbe71b7539f65260c4fa9bbfb22f4ea997b9 commit 1de363d9614c1309ac1ac4a8eea7e70be7f2f3ed commit 76d6373f8b6c41f5c27b8404db2074f9bfc309c9 commit d741aa7109db016abc292d49fb45d15bb09e6c01
Diffstat (limited to 'src/urlbar')
-rw-r--r--src/urlbar/lineedit.cpp2
-rw-r--r--src/urlbar/urlbar.cpp109
-rw-r--r--src/urlbar/urlbar.h17
3 files changed, 50 insertions, 78 deletions
diff --git a/src/urlbar/lineedit.cpp b/src/urlbar/lineedit.cpp
index f3c93e8e..ac92b858 100644
--- a/src/urlbar/lineedit.cpp
+++ b/src/urlbar/lineedit.cpp
@@ -42,7 +42,7 @@ LineEdit::LineEdit(QWidget* parent)
setMinimumWidth(200);
setFocusPolicy(Qt::WheelFocus);
setHandleSignals(true);
- setClearButtonShown(true);
+ setClearButtonShown(false);
}
diff --git a/src/urlbar/urlbar.cpp b/src/urlbar/urlbar.cpp
index 57108d29..a04d6534 100644
--- a/src/urlbar/urlbar.cpp
+++ b/src/urlbar/urlbar.cpp
@@ -50,14 +50,13 @@
#include <QTimer>
#include <QVBoxLayout>
-QColor UrlBar::s_defaultBaseColor;
-
UrlBar::UrlBar(QWidget *parent)
: KComboBox(true, parent)
, m_lineEdit(new LineEdit)
- , m_progress(0)
, m_box(new CompletionWidget(this))
+ , _tab(0)
+ , _privateMode(false)
{
//cosmetic
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
@@ -72,11 +71,6 @@ UrlBar::UrlBar(QWidget *parent)
p.setColor(QPalette::Base, Qt::transparent);
m_lineEdit->setPalette(p);
- if (!s_defaultBaseColor.isValid())
- {
- s_defaultBaseColor = palette().color(QPalette::Base);
- }
-
setLineEdit(m_lineEdit);
// clear the URL bar
@@ -123,13 +117,6 @@ void UrlBar::setUrl(const QUrl& url)
}
-void UrlBar::setProgress(int progress)
-{
- m_progress = progress;
- update();
-}
-
-
void UrlBar::updateUrl()
{
// Don't change my typed url...
@@ -184,26 +171,21 @@ void UrlBar::activated(const QString& urlString, Rekonq::OpenType type)
}
-void UrlBar::loadFinished(bool)
-{
- // reset progress bar after small delay
- m_progress = 0;
- QTimer::singleShot(200, this, SLOT(update()));
-}
-
-
-void UrlBar::updateProgress(int progress)
-{
- m_progress = progress;
- update();
-}
-
-
void UrlBar::paintEvent(QPaintEvent *event)
{
+ QColor backgroundColor;
+ if( _privateMode )
+ {
+ backgroundColor = QColor(192, 192, 192); // gray
+ }
+ else
+ {
+ backgroundColor = Application::palette().color(QPalette::Base);
+ }
+
// set background color of UrlBar
QPalette p = palette();
- p.setColor(QPalette::Base, s_defaultBaseColor);
+ p.setColor(QPalette::Base, backgroundColor);
setPalette(p);
KComboBox::paintEvent(event);
@@ -221,11 +203,20 @@ void UrlBar::paintEvent(QPaintEvent *event)
{
loadingColor = QColor(116, 192, 250);
}
- painter.setBrush(generateGradient(loadingColor, height()));
+ int progr = _tab->progress();
+
+ backgroundColor.setAlpha(0);
+ backgroundColor.setAlpha(200);
+ QLinearGradient gradient(0, 0, width(), height() );
+ gradient.setColorAt(0, loadingColor);
+ gradient.setColorAt(((double)progr)/100, backgroundColor);
+
+ painter.setBrush( gradient );
painter.setPen(Qt::transparent);
+
QRect backgroundRect = m_lineEdit->frameGeometry();
- int mid = backgroundRect.width() * m_progress / 100;
+ int mid = backgroundRect.width() * progr / 100;
QRect progressRect(backgroundRect.x(), backgroundRect.y(), mid, backgroundRect.height());
painter.drawRect(progressRect);
painter.end();
@@ -239,41 +230,8 @@ QSize UrlBar::sizeHint() const
}
-QLinearGradient UrlBar::generateGradient(const QColor &color, int height)
-{
- QColor base = s_defaultBaseColor;
- base.setAlpha(0);
- QColor barColor = color;
- barColor.setAlpha(200);
- QLinearGradient gradient(0, 0, 0, height);
- gradient.setColorAt(0, base);
- gradient.setColorAt(0.25, barColor.lighter(120));
- gradient.setColorAt(0.5, barColor);
- gradient.setColorAt(0.75, barColor.lighter(120));
- gradient.setColorAt(1, base);
- return gradient;
-}
-
-
-void UrlBar::setBackgroundColor(QColor c)
-{
- s_defaultBaseColor = c;
- update();
-}
-
-
-bool UrlBar::isLoading()
-{
- if(m_progress == 0)
- {
- return false;
- }
- return true;
-}
-
void UrlBar::keyPressEvent(QKeyEvent *event)
{
-
// this handles the Modifiers + Return key combinations
QString currentText = m_lineEdit->text().trimmed();
if ((event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return)
@@ -338,3 +296,22 @@ void UrlBar::focusInEvent(QFocusEvent *event)
KComboBox::focusInEvent(event);
}
+
+
+void UrlBar::setCurrentTab(WebTab *tab)
+{
+ if(_tab)
+ disconnect(_tab->view(), SIGNAL(urlChanged(const QUrl &)), this, SLOT(setUrl(const QUrl &)));
+ _tab = tab;
+ connect(_tab->view(), SIGNAL(urlChanged(const QUrl &)), this, SLOT(setUrl(const QUrl &)));
+
+ // update it now (the first time)
+ setUrl( _tab->url() );
+ update();
+}
+
+
+void UrlBar::setPrivateMode(bool on)
+{
+ _privateMode = on;
+}
diff --git a/src/urlbar/urlbar.h b/src/urlbar/urlbar.h
index 552d1ee0..991b9038 100644
--- a/src/urlbar/urlbar.h
+++ b/src/urlbar/urlbar.h
@@ -34,6 +34,7 @@
// Local Includes
#include "lineedit.h"
#include "completionwidget.h"
+#include "webtab.h"
// KDE Includes
#include <KUrl>
@@ -59,18 +60,16 @@ public:
void selectAll() const;
KUrl url() const;
QSize sizeHint() const;
- void setBackgroundColor(QColor);
- bool isLoading();
- void setProgress(int progress);
+ void setCurrentTab(WebTab *);
+ void setPrivateMode(bool on);
+
public slots:
void setUrl(const QUrl &url);
- void updateProgress(int progress);
void updateUrl();
private slots:
void activated(const QString& url, Rekonq::OpenType = Rekonq::CurrentTab);
- void loadFinished(bool);
void suggestUrls(const QString &editedText);
protected:
@@ -79,17 +78,13 @@ protected:
virtual void focusInEvent(QFocusEvent *event);
private:
- static QLinearGradient generateGradient(const QColor &color, int height);
-
- static QColor s_defaultBaseColor;
-
LineEdit *m_lineEdit;
KUrl m_currentUrl;
- int m_progress;
CompletionWidget *m_box;
- KUrl m_suggestedUrl;
+ WebTab *_tab;
+ bool _privateMode;
};
#endif