summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorunknown <Roopesh Chander@.(none)>2009-11-12 23:09:12 +0530
committerunknown <Roopesh Chander@.(none)>2009-11-12 23:09:24 +0530
commita3bc0247873b2bbb1053a59230001090a458a42f (patch)
tree12273094e0f1947ded27e4bfa947254b2ea77c19
parent2aa351a1c73e589b4d123d1cbc35346da1858b0e (diff)
a less weird progress indicator, please
(code flicked from Arora browser)
-rw-r--r--WebScraps.pro6
-rw-r--r--addressbar.cpp36
-rw-r--r--addressbar.h21
-rw-r--r--mainwindow.cpp5
-rw-r--r--mainwindow.h3
5 files changed, 65 insertions, 6 deletions
diff --git a/WebScraps.pro b/WebScraps.pro
index 411d839..d2ff47f 100644
--- a/WebScraps.pro
+++ b/WebScraps.pro
@@ -11,13 +11,15 @@ SOURCES += main.cpp \
graphicsview.cpp \
graphicstoolbar.cpp \
resizeuihelper.cpp \
- searchlineedit.cpp
+ searchlineedit.cpp \
+ addressbar.cpp
HEADERS += mainwindow.h \
webview.h \
webscrap.h \
graphicsview.h \
graphicstoolbar.h \
resizeuihelper.h \
- searchlineedit.h
+ searchlineedit.h \
+ addressbar.h
FORMS += mainwindow.ui
RESOURCES += webscraps.qrc
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);
+}
diff --git a/addressbar.h b/addressbar.h
new file mode 100644
index 0000000..b20781f
--- /dev/null
+++ b/addressbar.h
@@ -0,0 +1,21 @@
+#ifndef ADDRESSBAR_H
+#define ADDRESSBAR_H
+
+#include <QLineEdit>
+
+class AddressBar : public QLineEdit
+{
+ Q_OBJECT
+public:
+ AddressBar(QWidget *parent = 0);
+ int progress() const;
+ void paintEvent(QPaintEvent *event);
+
+public slots:
+ void setProgress(int progress);
+
+private:
+ int m_progress;
+};
+
+#endif // ADDRESSBAR_H
diff --git a/mainwindow.cpp b/mainwindow.cpp
index 593c756..a253e96 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -31,7 +31,7 @@ MainWindow::MainWindow(QWidget *parent)
initBrowser(); // create the browser
createBrowserToolbar(scene());
- connect(m_webView->page(), SIGNAL(loadProgress(int)), m_browserToolbar, SLOT(setFillLevel(int)));
+ connect(m_webView->page(), SIGNAL(loadProgress(int)), m_addressBar, SLOT(setProgress(int)));
createAnimations();
createScrapsToolbar(scene());
@@ -125,7 +125,7 @@ void MainWindow::createScrapsToolbar(QGraphicsScene *scene) {
void MainWindow::createBrowserToolbar(QGraphicsScene *scene) {
m_browserToolbar = new GraphicsToolBar(scene);
m_browserToolbar->hide();
- m_addressBar = new QLineEdit;
+ m_addressBar = new AddressBar;
m_selectScrapsButton = new QToolButton;
m_selectScrapsButton->setIcon(QIcon(":/icons/cutscrap.png"));
m_selectScrapsButton->setText(tr("Add a scrap"));
@@ -156,7 +156,6 @@ void MainWindow::createBrowserToolbar(QGraphicsScene *scene) {
m_browserToolbar->setZValue(10000);
m_browserToolbar->setBackgroundBrush(palette().background());
- m_browserToolbar->setFillLevelBrush(QColor(50, 50, 200).lighter(200));
connect(m_selectScrapsButton, SIGNAL(toggled(bool)), m_webView, SLOT(setScrapSelectionEnabled(bool)));
connect(m_addressBar, SIGNAL(returnPressed()), SLOT(changeLocation()));
diff --git a/mainwindow.h b/mainwindow.h
index e1188d8..1f2ee4c 100644
--- a/mainwindow.h
+++ b/mainwindow.h
@@ -15,6 +15,7 @@
#include "graphicsview.h"
#include "graphicstoolbar.h"
#include "webscrap.h"
+#include "addressbar.h"
namespace Ui {
class MainWindow;
@@ -85,7 +86,7 @@ private:
// browser view
WebView *m_webView;
- QLineEdit *m_addressBar;
+ AddressBar *m_addressBar;
QToolButton *m_selectScrapsButton, *m_addScrapButton, *m_gotoScrapsButton;
GraphicsToolBar *m_browserToolbar;