diff --git a/swisssurfer/src/browser.hxx b/swisssurfer/src/browser.hxx index e8bf46c..c620c64 100644 --- a/swisssurfer/src/browser.hxx +++ b/swisssurfer/src/browser.hxx @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -84,6 +85,7 @@ class Browser: public QMainWindow, protected Ui::Browser { _zoom->setTickPosition(QSlider::TicksAbove); assert(connect(_zoom, SIGNAL(valueChanged(int)), SLOT(zoom(int)))); _url = new QComboBox(_toolbar); + _url->setLineEdit(new ButtonLineEdit(_url)); _url->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred)); _url->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLength); @@ -118,12 +120,15 @@ class Browser: public QMainWindow, protected Ui::Browser { SLOT(load()))); assert(connect(_url->lineEdit(), SIGNAL(textChanged(QString)), SLOT(goodUrl()))); - _toolbar->addAction(actionClearLocation); + + dynamic_cast(_url->lineEdit())->add(actionAddBookmark); + + dynamic_cast(_url->lineEdit())->add + (actionClearLocation); assert(connect(actionClearLocation, SIGNAL(triggered()), _url, SLOT(clearEditText()))); assert(connect(actionClearLocation, SIGNAL(triggered()), _url, SLOT(setFocus()))); - _toolbar->addAction(actionAddBookmark); } if (!_kiosk && _settings.flag("SaveWindowState") && _settings()) loadWin(urls.size()); @@ -1186,14 +1191,14 @@ class Browser: public QMainWindow, protected Ui::Browser { void badUrl() { if (_url && _url->lineEdit()) - _url->lineEdit() - ->setStyleSheet(tr("background-color: #F77", "invalid url")); + dynamic_cast(_url->lineEdit()) + ->changeStyleSheet(tr("background-color: #F77", "invalid url")); } void goodUrl() { if (_url && _url->lineEdit()) - _url->lineEdit() - ->setStyleSheet(tr("background-color: white", "valid url")); + dynamic_cast(_url->lineEdit()) + ->changeStyleSheet(tr("background-color: white", "valid url")); } void downloadError(QString error) { @@ -1273,6 +1278,51 @@ class Browser: public QMainWindow, protected Ui::Browser { } } + private: + + class ButtonLineEdit: public QLineEdit { + public: + ButtonLineEdit(QWidget* p): QLineEdit(p) {} + QToolButton* add(QAction* a) { + QToolButton* b(new QToolButton(this)); + b->setDefaultAction(a); + add(b); + return b; + } + ButtonLineEdit& add(QToolButton* b) { + b->setParent(this); + b->setStyleSheet("QToolButton { border: none; padding: 0; }"); + b->setCursor(Qt::ArrowCursor); + _buttons.push_back(b); + resizeEvent(0); + return *this; + } + ButtonLineEdit& changeStyleSheet(QString s) { + _style = s; + resizeEvent(0); + return *this; + } + protected: + void resizeEvent(QResizeEvent*) { + QSize sz; + int frameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth); + for (Buttons::iterator it(_buttons.begin()); + it!=_buttons.end(); ++it) { + if (sz.isEmpty()) sz = (*it)->sizeHint(); + else sz.setWidth(sz.width()+(*it)->sizeHint().width()); + (*it)->move(rect().right() - frameWidth - sz.width(), + (rect().bottom() + 1 - (*it)->sizeHint().height())/2); + } + setStyleSheet(QString("QLineEdit { padding-right: %1px; %2 }") + .arg(sz.width() + frameWidth + 1) + .arg(_style)); + } + private: + typedef QList Buttons; + Buttons _buttons; + QString _style; + }; + private: QComboBox* _url; diff --git a/swisssurfer/src/resources/icons/about.png b/swisssurfer/src/resources/icons/about.png index ed5fdd7..87baf76 100644 Binary files a/swisssurfer/src/resources/icons/about.png and b/swisssurfer/src/resources/icons/about.png differ diff --git a/swisssurfer/src/resources/icons/addbookmark.png b/swisssurfer/src/resources/icons/addbookmark.png index b3dfd6c..5bb80b2 100644 Binary files a/swisssurfer/src/resources/icons/addbookmark.png and b/swisssurfer/src/resources/icons/addbookmark.png differ diff --git a/swisssurfer/src/resources/icons/clearlocation.png b/swisssurfer/src/resources/icons/clearlocation.png index d89368a..06f4fa9 100644 Binary files a/swisssurfer/src/resources/icons/clearlocation.png and b/swisssurfer/src/resources/icons/clearlocation.png differ diff --git a/swisssurfer/src/resources/icons/close.png b/swisssurfer/src/resources/icons/close.png index 5845ba6..c935cd8 100644 Binary files a/swisssurfer/src/resources/icons/close.png and b/swisssurfer/src/resources/icons/close.png differ diff --git a/swisssurfer/src/resources/icons/error.png b/swisssurfer/src/resources/icons/error.png index 5c38a8f..e3ea764 100644 Binary files a/swisssurfer/src/resources/icons/error.png and b/swisssurfer/src/resources/icons/error.png differ diff --git a/swisssurfer/src/resources/icons/find.png b/swisssurfer/src/resources/icons/find.png index 106aaf5..8e71884 100644 Binary files a/swisssurfer/src/resources/icons/find.png and b/swisssurfer/src/resources/icons/find.png differ diff --git a/swisssurfer/src/resources/icons/newtab.png b/swisssurfer/src/resources/icons/newtab.png index 8565086..4d4f661 100644 Binary files a/swisssurfer/src/resources/icons/newtab.png and b/swisssurfer/src/resources/icons/newtab.png differ diff --git a/swisssurfer/src/resources/icons/newwindow.png b/swisssurfer/src/resources/icons/newwindow.png index aad8684..39b8559 100644 Binary files a/swisssurfer/src/resources/icons/newwindow.png and b/swisssurfer/src/resources/icons/newwindow.png differ diff --git a/swisssurfer/src/resources/icons/print.png b/swisssurfer/src/resources/icons/print.png index 6402f12..559bfad 100644 Binary files a/swisssurfer/src/resources/icons/print.png and b/swisssurfer/src/resources/icons/print.png differ diff --git a/swisssurfer/src/resources/icons/printpreview.png b/swisssurfer/src/resources/icons/printpreview.png index 3a42d0f..080645b 100644 Binary files a/swisssurfer/src/resources/icons/printpreview.png and b/swisssurfer/src/resources/icons/printpreview.png differ diff --git a/swisssurfer/src/resources/icons/settings.png b/swisssurfer/src/resources/icons/settings.png index 694c257..79a5ce4 100644 Binary files a/swisssurfer/src/resources/icons/settings.png and b/swisssurfer/src/resources/icons/settings.png differ diff --git a/swisssurfer/src/resources/icons/usercert.png b/swisssurfer/src/resources/icons/usercert.png index 18f72c3..24718b2 100644 Binary files a/swisssurfer/src/resources/icons/usercert.png and b/swisssurfer/src/resources/icons/usercert.png differ diff --git a/swisssurfer/src/swisssurfer_de.ts b/swisssurfer/src/swisssurfer_de.ts index 0d9de10..7e2362e 100644 --- a/swisssurfer/src/swisssurfer_de.ts +++ b/swisssurfer/src/swisssurfer_de.ts @@ -271,117 +271,117 @@ - + Checking: %1 Opening: %1 - + Reading: %1 Reading: %1% - + Zoom: %1% - + Illegal URL: %1 - + Print Document - + %1 - %2 Back to %1 - %2 statusbar actionBack_hovered %1=url %2=title - + Info: %1 - + done. - + %1 statusbar for hovered link %1=url - + Forbidden: %1 - + SSL Not Supported - + SSL is not supported on your system - + Access Denied - + <p>Access denied due to security considerations.</p><p>You are not allowed to connect to %1. - + %1 - %2 statusbar actionForward_hovered %1=url %2=title - - - + + + background-color: white neutral find - - + + background-color: #ADA background-color: #7F7 text found - - + + background-color: #F77 background-color: lightred text not found - + About - + %8 Version: %1 Builddate: %2 @@ -401,41 +401,40 @@ openssl-%7 - + %1 - + Save File As ... - + errors show error log - + background-color: #F77 - background-color: lightred invalid url - + background-color: white valid url - + authentication required - + ssl error diff --git a/swisssurfer/src/swisssurfer_en.ts b/swisssurfer/src/swisssurfer_en.ts index 3cf721a..c1199db 100644 --- a/swisssurfer/src/swisssurfer_en.ts +++ b/swisssurfer/src/swisssurfer_en.ts @@ -269,98 +269,98 @@ - + Checking: %1 - + SSL Not Supported - + SSL is not supported on your system - + Forbidden: %1 - + Access Denied - + <p>Access denied due to security considerations.</p><p>You are not allowed to connect to %1. - + Reading: %1 - + Illegal URL: %1 - + Zoom: %1% - + Print Document - + %1 - %2 statusbar actionBack_hovered %1=url %2=title - + %1 - %2 statusbar actionForward_hovered %1=url %2=title - - - + + + background-color: white neutral find - - + + background-color: #ADA background-color: #7F7 text found - - + + background-color: #F77 background-color: lightred text not found - + About - + %8 Version: %1 Builddate: %2 @@ -380,57 +380,56 @@ openssl-%7 - + %1 - + Info: %1 - + done. - + %1 statusbar for hovered link %1=url - + Save File As ... - + errors show error log - + background-color: #F77 - background-color: lightred invalid url - + background-color: white valid url - + authentication required - + ssl error diff --git a/swisssurfer/src/swisssurfer_fr.ts b/swisssurfer/src/swisssurfer_fr.ts index 0d9de10..7e2362e 100644 --- a/swisssurfer/src/swisssurfer_fr.ts +++ b/swisssurfer/src/swisssurfer_fr.ts @@ -271,117 +271,117 @@ - + Checking: %1 Opening: %1 - + Reading: %1 Reading: %1% - + Zoom: %1% - + Illegal URL: %1 - + Print Document - + %1 - %2 Back to %1 - %2 statusbar actionBack_hovered %1=url %2=title - + Info: %1 - + done. - + %1 statusbar for hovered link %1=url - + Forbidden: %1 - + SSL Not Supported - + SSL is not supported on your system - + Access Denied - + <p>Access denied due to security considerations.</p><p>You are not allowed to connect to %1. - + %1 - %2 statusbar actionForward_hovered %1=url %2=title - - - + + + background-color: white neutral find - - + + background-color: #ADA background-color: #7F7 text found - - + + background-color: #F77 background-color: lightred text not found - + About - + %8 Version: %1 Builddate: %2 @@ -401,41 +401,40 @@ openssl-%7 - + %1 - + Save File As ... - + errors show error log - + background-color: #F77 - background-color: lightred invalid url - + background-color: white valid url - + authentication required - + ssl error diff --git a/swisssurfer/src/swisssurfer_it.ts b/swisssurfer/src/swisssurfer_it.ts index 0d9de10..7e2362e 100644 --- a/swisssurfer/src/swisssurfer_it.ts +++ b/swisssurfer/src/swisssurfer_it.ts @@ -271,117 +271,117 @@ - + Checking: %1 Opening: %1 - + Reading: %1 Reading: %1% - + Zoom: %1% - + Illegal URL: %1 - + Print Document - + %1 - %2 Back to %1 - %2 statusbar actionBack_hovered %1=url %2=title - + Info: %1 - + done. - + %1 statusbar for hovered link %1=url - + Forbidden: %1 - + SSL Not Supported - + SSL is not supported on your system - + Access Denied - + <p>Access denied due to security considerations.</p><p>You are not allowed to connect to %1. - + %1 - %2 statusbar actionForward_hovered %1=url %2=title - - - + + + background-color: white neutral find - - + + background-color: #ADA background-color: #7F7 text found - - + + background-color: #F77 background-color: lightred text not found - + About - + %8 Version: %1 Builddate: %2 @@ -401,41 +401,40 @@ openssl-%7 - + %1 - + Save File As ... - + errors show error log - + background-color: #F77 - background-color: lightred invalid url - + background-color: white valid url - + authentication required - + ssl error