summaryrefslogtreecommitdiffstats
path: root/addressbar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'addressbar.cpp')
-rw-r--r--addressbar.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/addressbar.cpp b/addressbar.cpp
new file mode 100644
index 0000000..979e0e6
--- /dev/null
+++ b/addressbar.cpp
@@ -0,0 +1,36 @@
+#include <QPainter>
+#include <QPaintEvent>
+#include <QPalette>
+#include <QDebug>
+#include "addressbar.h"
+
+AddressBar::AddressBar(QWidget *parent)
+ : QLineEdit(parent)
+ , m_progress(100)
+{
+ QPalette p = palette();
+ p.setColor(QPalette::Base, QColor(255, 255, 255, 100));
+ setPalette(p);
+}
+
+void AddressBar::setProgress(int progress) {
+ m_progress = progress;
+}
+
+int AddressBar::progress() const {
+ return m_progress;
+}
+
+void AddressBar::paintEvent(QPaintEvent *event) {
+ QPainter painter(this);
+ int progressWidth = width() * (progress() / 100.0);
+ painter.setPen(Qt::NoPen);
+ painter.setBrush(Qt::white);
+ painter.drawRect(rect());
+ if (progress() < 100 && !hasFocus()) {
+ painter.setBrush(QColor(50, 50, 200).lighter(200));
+ painter.drawRect(0, 0, progressWidth, height());
+ }
+ painter.end();
+ QLineEdit::paintEvent(event);
+}