Hi,

I don't know if its already obsolete due to the heavy changes in the whole 
urlbar section, but I've attached a patch that merges the LineEdit and UrlBar 
classes, since it doesn't seem to make sense for splitting those atm in my 
opinion.

Cheers,
Johannes
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 2ab308d..119b7f3 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -49,7 +49,6 @@ SET( rekonq_KDEINIT_SRCS
     adblock/adblockrule.cpp
     #----------------------------------------
     urlbar/urlbar.cpp
-    urlbar/lineedit.cpp
     urlbar/completionwidget.cpp
     urlbar/urlresolver.cpp
     urlbar/listitem.cpp
diff --git a/src/urlbar/lineedit.cpp b/src/urlbar/lineedit.cpp
deleted file mode 100644
index 09c158f..0000000
--- a/src/urlbar/lineedit.cpp
+++ /dev/null
@@ -1,193 +0,0 @@
-/* ============================================================
-*
-* This file is a part of the rekonq project
-*
-* Copyright (C) 2009 by Andrea Diamantini <adjam7 at gmail dot com>
-* Copyright (C) 2009 by Paweł Prażak <pawelprazak at gmail dot com>
-* Copyright (C) 2009 by Lionel Chauvin <[email protected]>
-*
-*
-* This program is free software; you can redistribute it and/or
-* modify it under the terms of the GNU General Public License as
-* published by the Free Software Foundation; either version 2 of
-* the License or (at your option) version 3 or any later version
-* accepted by the membership of KDE e.V. (or its successor approved
-* by the membership of KDE e.V.), which shall act as a proxy 
-* defined in Section 14 of version 3 of the license.
-* 
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*
-* ============================================================ */
-
-
-// Self Includes
-#include "lineedit.h"
-#include "lineedit.moc"
-
-// KDE Includes
-#include <klocalizedstring.h>
-#include <KDebug>
-#include <KStandardDirs>
-#include <KIconLoader>
-
-// Qt Includes
-#include <QtGui/QContextMenuEvent>
-#include <QtGui/QFocusEvent>
-#include <QtGui/QKeyEvent>
-#include <QStyleOptionFrameV2>
-#include <QPainter>
-
-
-IconButton::IconButton(QWidget *parent)
-    : QToolButton(parent)
-{
-    setToolButtonStyle(Qt::ToolButtonIconOnly);
-    setStyleSheet("IconButton { background-color:transparent; border: none; padding: 0px}");
-    setCursor(Qt::ArrowCursor);
-}
-
-
-// -----------------------------------------------------------------------------------------------------------
-
-
-LineEdit::LineEdit(QWidget* parent)
-    : KLineEdit(parent)
-    , _icon( new IconButton(this) )
-{
-    // cosmetic
-    setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
-    setMinimumWidth(200);
-    setMinimumHeight(26);
-
-    // initial style
-    setStyleSheet( QString("LineEdit { padding: 0 0 0 %1px;} ").arg(_icon->sizeHint().width()) );
-    
-    // doesn't show the clear button
-    setClearButtonShown(false);
-    
-    // trap Key_Enter & Key_Return events, while emitting the returnPressed signal
-    setTrapReturnKey(true);
-    
-    // insert decoded URLs
-    setUrlDropsEnabled(true);
-
-    // accept focus, via tabbing, clicking & wheeling
-    setFocusPolicy(Qt::WheelFocus);
-    
-    // disable completion object (we have our own :) )
-    setCompletionObject(0);
-}
-
-
-LineEdit::~LineEdit()
-{
-    delete _icon;
-}
-
-
-void LineEdit::keyPressEvent(QKeyEvent *event)
-{
-    if (event->key() == Qt::Key_Escape)
-    {
-        clearFocus();
-        event->accept();
-    }
-
-    KLineEdit::keyPressEvent(event);
-}
-
-
-void LineEdit::mouseDoubleClickEvent(QMouseEvent *)
-{
-    selectAll();
-}
-
-
-IconButton *LineEdit::iconButton() const
-{
-    return _icon;
-}
-
-
-void LineEdit::paintEvent(QPaintEvent *event)
-{
-    // you need this before our code to draw inside the line edit..
-    KLineEdit::paintEvent(event);
-    
-    if (text().isEmpty()) 
-    {       
-        QStyleOptionFrame option;
-        initStyleOption(&option);
-        QRect textRect = style()->subElementRect(QStyle::SE_LineEditContents, &option, this);
-        QPainter painter(this);
-        painter.setPen(Qt::gray);
-        painter.drawText( textRect, 
-                          Qt::AlignCenter, 
-                          i18n("Search Bookmarks, History, Google.. just start typing here!")
-                        );
-    }
-}
-
-
-IconButton *LineEdit::addRightIcon(LineEdit::icon ic)
-{
-    IconButton *rightIcon = new IconButton(this);
-    
-    switch(ic)
-    {
-    case LineEdit::KGet:
-        rightIcon->setIcon( KIcon("download") );
-        rightIcon->setToolTip( i18n("List all links with KGet") );
-        break;
-    case LineEdit::RSS:
-        rightIcon->setIcon( KIcon("application-rss+xml") );
-        rightIcon->setToolTip( i18n("List all available RSS feeds") );
-        break;
-    case LineEdit::SSL:
-        rightIcon->setIcon( KIcon("object-locked") );
-        rightIcon->setToolTip( i18n("Show SSL Infos") );
-        break;
-    default:
-        kDebug() << "ERROR.. default non extant case!!";
-        break;
-    }
-    
-    _rightIconsList << rightIcon;
-    int iconsCount = _rightIconsList.count();
-    rightIcon->move( width() - 23*iconsCount, 6);
-    rightIcon->show();
-    
-    return rightIcon;
-}
-
-
-void LineEdit::clearRightIcons()
-{
-    qDeleteAll(_rightIconsList);
-    _rightIconsList.clear();
-}
-
-
-void LineEdit::resizeEvent(QResizeEvent *event)
-{
-    int newHeight = ( height() - 19 )/2;
-    _icon->move(4, newHeight );
-    
-    int iconsCount = _rightIconsList.count();
-    int w = width();
-    
-    for(int i = 0; i < iconsCount; ++i)
-    {
-        IconButton *bt = _rightIconsList.at(i);
-        bt->move( w - 25*(i+1), newHeight );
-    }
-
-    KLineEdit::resizeEvent(event);
-
-}
diff --git a/src/urlbar/lineedit.h b/src/urlbar/lineedit.h
deleted file mode 100644
index 68cdc7d..0000000
--- a/src/urlbar/lineedit.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/* ============================================================
-*
-* This file is a part of the rekonq project
-*
-* Copyright (C) 2009 by Andrea Diamantini <adjam7 at gmail dot com>
-* Copyright (C) 2009 by Paweł Prażak <pawelprazak at gmail dot com>
-* Copyright (C) 2009 by Lionel Chauvin <[email protected]>
-*
-*
-* This program is free software; you can redistribute it and/or
-* modify it under the terms of the GNU General Public License as
-* published by the Free Software Foundation; either version 2 of
-* the License or (at your option) version 3 or any later version
-* accepted by the membership of KDE e.V. (or its successor approved
-* by the membership of KDE e.V.), which shall act as a proxy 
-* defined in Section 14 of version 3 of the license.
-* 
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*
-* ============================================================ */
-
-
-#ifndef LINEEDIT_H
-#define LINEEDIT_H
-
-
-// KDE Includes
-#include <KLineEdit>
-#include <KIcon>
-
-// Qt Includes
-#include <QToolButton>
-
-// Forward Declarations
-class QContextMenuEvent;
-class QFocusEvent;
-class QKeyEvent;
-class QStyleOptionFrameV2;
-
-
-class IconButton : public QToolButton
-{
-    Q_OBJECT
-
-public:
-    IconButton(QWidget *parent = 0);
-};
-
-
-// ------------------------------------------------------------------------------------
-
-
-// Definitions
-typedef QList<IconButton *> IconButtonPointerList;
-
-
-class LineEdit : public KLineEdit
-{
-    Q_OBJECT
-
-public:
-    
-    enum icon
-    { 
-        KGet    = 0x00000001,
-        RSS     = 0x00000010,
-        SSL     = 0x00000100,
-    };   
-
-    explicit LineEdit(QWidget *parent = 0);
-    virtual ~LineEdit();
-    
-    IconButton *iconButton() const;
-
-protected:
-    virtual void keyPressEvent(QKeyEvent *);
-    virtual void mouseDoubleClickEvent(QMouseEvent *);
-    virtual void paintEvent(QPaintEvent *);
-    virtual void resizeEvent(QResizeEvent *);
-    
-    IconButton *addRightIcon(LineEdit::icon );
-
-private slots:
-    void clearRightIcons();
-
-private:    
-    IconButton *_icon;
-    IconButtonPointerList _rightIconsList;
-};
-
-#endif // LINEEDIT_H
diff --git a/src/urlbar/urlbar.cpp b/src/urlbar/urlbar.cpp
index 8c6c074..6dfc1cc 100644
--- a/src/urlbar/urlbar.cpp
+++ b/src/urlbar/urlbar.cpp
@@ -36,7 +36,6 @@
 
 // Local Includes
 #include "application.h"
-#include "lineedit.h"
 #include "mainwindow.h"
 #include "webtab.h"
 #include "webview.h"
@@ -46,6 +45,10 @@
 #include <KDebug>
 #include <KCompletionBox>
 #include <KUrl>
+#include <klocalizedstring.h>
+#include <KDebug>
+#include <KStandardDirs>
+#include <KIconLoader>
 
 // Qt Includes
 #include <QPainter>
@@ -53,18 +56,57 @@
 #include <QPalette>
 #include <QTimer>
 #include <QVBoxLayout>
+#include <QtGui/QContextMenuEvent>
+#include <QtGui/QFocusEvent>
+#include <QtGui/QKeyEvent>
+#include <QStyleOptionFrameV2>
 
 // Defines
 #define QL1S(x)  QLatin1String(x)
 
+IconButton::IconButton(QWidget *parent)
+    : QToolButton(parent)
+{
+    setToolButtonStyle(Qt::ToolButtonIconOnly);
+    setStyleSheet("IconButton { background-color:transparent; border: none; padding: 0px}");
+    setCursor(Qt::ArrowCursor);
+}
+
+
+// -----------------------------------------------------------------------------------------------------------
+
 
 UrlBar::UrlBar(QWidget *parent)
-    : LineEdit(parent)
+    : KLineEdit(parent)
     , _box(new CompletionWidget(this))
     , _tab(0)
     , _privateMode(false)
+    , _icon( new IconButton(this) )
 {
     _tab = qobject_cast<WebTab *>(parent);
+
+    // cosmetic
+    setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+    setMinimumWidth(200);
+    setMinimumHeight(26);
+
+    // initial style
+    setStyleSheet( QString("UrlBar { padding: 0 0 0 %1px;} ").arg(_icon->sizeHint().width()) );
+
+    // doesn't show the clear button
+    setClearButtonShown(false);
+
+    // trap Key_Enter & Key_Return events, while emitting the returnPressed signal
+    setTrapReturnKey(true);
+
+    // insert decoded URLs
+    setUrlDropsEnabled(true);
+
+    // accept focus, via tabbing, clicking & wheeling
+    setFocusPolicy(Qt::WheelFocus);
+
+    // disable completion object (we have our own :) )
+    setCompletionObject(0);
     
     connect(_tab->view(), SIGNAL(urlChanged(const QUrl &)), this, SLOT(setQUrl(const QUrl &)));
     connect(_tab->view(), SIGNAL(loadFinished(bool)), this, SLOT(loadFinished()));
@@ -82,6 +124,7 @@ UrlBar::UrlBar(QWidget *parent)
 UrlBar::~UrlBar()
 {
     delete _box;
+    delete _icon;
 }
 
 
@@ -89,16 +132,16 @@ void UrlBar::setQUrl(const QUrl& url)
 {
     if(url.scheme() == QL1S("about") )
     {
-        iconButton()->setIcon( KIcon("arrow-right") );
+        _icon->setIcon( KIcon("arrow-right") );
         clear();
         setFocus();
     }
     else
     {
         clearFocus();
-        LineEdit::setUrl(url);
+        KLineEdit::setUrl(url);
         setCursorPosition(0);
-        iconButton()->setIcon( Application::icon(url) );
+        _icon->setIcon( Application::icon(url) );
     }
 }
 
@@ -148,7 +191,21 @@ void UrlBar::paintEvent(QPaintEvent *event)
     }
     setPalette(p);
     
-    LineEdit::paintEvent(event);
+    // you need this before our code to draw inside the line edit..
+    KLineEdit::paintEvent(event);
+
+    if (text().isEmpty())
+    {
+        QStyleOptionFrame option;
+        initStyleOption(&option);
+        QRect textRect = style()->subElementRect(QStyle::SE_LineEditContents, &option, this);
+        QPainter painter(this);
+        painter.setPen(Qt::gray);
+        painter.drawText( textRect,
+                          Qt::AlignCenter,
+                          i18n("Search Bookmarks, History, Google.. just start typing here!")
+                        );
+    }
 }
 
 
@@ -183,16 +240,81 @@ void UrlBar::keyPressEvent(QKeyEvent *event)
         }
     }
     
-    LineEdit::keyPressEvent(event);
+    if (event->key() == Qt::Key_Escape)
+    {
+        clearFocus();
+        event->accept();
+    }
+
+    KLineEdit::keyPressEvent(event);
 }
 
+void UrlBar::mouseDoubleClickEvent(QMouseEvent *)
+{
+    selectAll();
+}
 
 void UrlBar::focusInEvent(QFocusEvent *event)
 {
     // activate suggestions on edit text
     connect(this, SIGNAL(textChanged(const QString &)), _box, SLOT(suggestUrls(const QString &)));
     
-    LineEdit::focusInEvent(event);
+    KLineEdit::focusInEvent(event);
+}
+
+void UrlBar::resizeEvent(QResizeEvent *event)
+{
+    int newHeight = ( height() - 19 )/2;
+    _icon->move(4, newHeight );
+
+    int iconsCount = _rightIconsList.count();
+    int w = width();
+
+    for(int i = 0; i < iconsCount; ++i)
+    {
+        IconButton *bt = _rightIconsList.at(i);
+        bt->move( w - 25*(i+1), newHeight );
+    }
+
+    KLineEdit::resizeEvent(event);
+
+}
+
+IconButton *UrlBar::addRightIcon(UrlBar::icon ic)
+{
+    IconButton *rightIcon = new IconButton(this);
+
+    switch(ic)
+    {
+    case UrlBar::KGet:
+        rightIcon->setIcon( KIcon("download") );
+        rightIcon->setToolTip( i18n("List all links with KGet") );
+        break;
+    case UrlBar::RSS:
+        rightIcon->setIcon( KIcon("application-rss+xml") );
+        rightIcon->setToolTip( i18n("List all available RSS feeds") );
+        break;
+    case UrlBar::SSL:
+        rightIcon->setIcon( KIcon("object-locked") );
+        rightIcon->setToolTip( i18n("Show SSL Infos") );
+        break;
+    default:
+        kDebug() << "ERROR.. default non extant case!!";
+        break;
+    }
+
+    _rightIconsList << rightIcon;
+    int iconsCount = _rightIconsList.count();
+    rightIcon->move( width() - 23*iconsCount, 6);
+    rightIcon->show();
+
+    return rightIcon;
+}
+
+void UrlBar::clearRightIcons()
+{
+    qDeleteAll(_rightIconsList);
+    _rightIconsList.clear();
 }
 
 
@@ -204,7 +326,7 @@ void UrlBar::setPrivateMode(bool on)
 
 void UrlBar::dropEvent(QDropEvent *event)
 {
-    LineEdit::dropEvent(event);
+    KLineEdit::dropEvent(event);
     activated(text());
 }
 
@@ -223,21 +345,21 @@ void UrlBar::loadFinished()
     // show KGet downloads??
     if(ReKonfig::kgetList())
     {
-        IconButton *bt = addRightIcon(LineEdit::KGet);
+        IconButton *bt = addRightIcon(UrlBar::KGet);
         connect(bt, SIGNAL(clicked()), _tab->page(), SLOT(downloadAllContentsWithKGet()));
     }
     
     // show RSS
     if(_tab->hasRSSInfo())
     {
-        IconButton *bt = addRightIcon(LineEdit::RSS);
+        IconButton *bt = addRightIcon(UrlBar::RSS);
         connect(bt, SIGNAL(clicked()), _tab, SLOT(showRSSInfo()));
     }
     
     // show SSL
     if(_tab->url().scheme() == QL1S("https") )
     {
-        IconButton *bt = addRightIcon(LineEdit::SSL);
+        IconButton *bt = addRightIcon(UrlBar::SSL);
         connect(bt, SIGNAL(clicked()), _tab->page(), SLOT(showSSLInfo()));
     }
     
diff --git a/src/urlbar/urlbar.h b/src/urlbar/urlbar.h
index 3ecd914..83e0412 100644
--- a/src/urlbar/urlbar.h
+++ b/src/urlbar/urlbar.h
@@ -32,24 +32,49 @@
 
 
 // Local Includes
-#include "lineedit.h"
 #include "application.h"
 
 // KDE Includes
 #include <KUrl>
+#include <KLineEdit>
+#include <KIcon>
+
+// Qt Includes
+#include <QToolButton>
 
 // Forward Declarations
 class QLinearGradient;
 class QWidget;
 class CompletionWidget;
 class WebTab;
+class QContextMenuEvent;
+class QFocusEvent;
+class QKeyEvent;
+class QStyleOptionFrameV2;
+
+class IconButton : public QToolButton
+{
+    Q_OBJECT
 
+public:
+    IconButton(QWidget *parent = 0);
+};
 
-class UrlBar : public LineEdit
+// Definitions
+typedef QList<IconButton *> IconButtonPointerList;
+
+class UrlBar : public KLineEdit
 {
     Q_OBJECT
 
 public:
+    enum icon
+    {
+        KGet    = 0x00000001,
+        RSS     = 0x00000010,
+        SSL     = 0x00000100,
+    };
+
     UrlBar(QWidget *parent = 0);
     ~UrlBar();
 
@@ -67,11 +92,20 @@ protected:
     virtual void keyPressEvent(QKeyEvent *event);
     virtual void focusInEvent(QFocusEvent *event);
     virtual void dropEvent(QDropEvent *event);
+    virtual void mouseDoubleClickEvent(QMouseEvent *);
+    virtual void resizeEvent(QResizeEvent *);
+
+    IconButton *addRightIcon(UrlBar::icon ic);
+
+private slots:
+    void clearRightIcons();
 
 private:
     CompletionWidget *_box;
     WebTab *_tab;
     bool _privateMode;
+    IconButton *_icon;
+    IconButtonPointerList _rightIconsList;
 };
 
 #endif
_______________________________________________
rekonq mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/rekonq

Reply via email to