]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/filterbar.cpp
Allow zooming in and zooming out in the icons view.
[dolphin.git] / src / filterbar.cpp
index eb7be1b2d3ccddd938b88f11ba16250f04fc54dd..cdb1b713bbfd99ee437c33a59ca61aebf72b24e9 100644 (file)
  *   You should have received a copy of the GNU General Public License     *
  *   along with this program; if not, write to the                         *
  *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 #include "filterbar.h"
 
-#include <qlabel.h>
-#include <qlayout.h>
-//Added by qt3to4:
-#include <Q3VBoxLayout>
+#include <QBoxLayout>
 #include <QKeyEvent>
-#include <Q3HBoxLayout>
+#include <QLabel>
+#include <QToolButton>
 
 #include <kdialog.h>
 #include <klocale.h>
-#include <kpushbutton.h>
 #include <klineedit.h>
 #include <kiconloader.h>
 
-#include "dolphin.h"
+#include "dolphinmainwindow.h"
 
-FilterBar::FilterBar(QWidget *parent, const char *name) :
-    QWidget(parent, name)
+FilterBar::FilterBar(QWidget* parent) :
+    QWidget(parent)
 {
     const int gap = 3;
 
-    Q3VBoxLayout* foo = new Q3VBoxLayout(this);
-    foo->addSpacing(gap);
+    QVBoxLayout* vLayout = new QVBoxLayout(this);
+    vLayout->setMargin(0);
+    vLayout->addSpacing(gap);
 
-    Q3HBoxLayout* layout = new Q3HBoxLayout(foo);
-    layout->addSpacing(gap);
+    QHBoxLayout* hLayout = new QHBoxLayout(vLayout);
+    hLayout->setMargin(0);
+    hLayout->addSpacing(gap);
 
     m_filter = new QLabel(i18n("Filter:"), this);
-    layout->addWidget(m_filter);
-    layout->addSpacing(KDialog::spacingHint());
+    hLayout->addWidget(m_filter);
+    hLayout->addSpacing(KDialog::spacingHint());
 
     m_filterInput = new KLineEdit(this);
-    layout->addWidget(m_filterInput);
+    m_filter->setBuddy(m_filterInput);
+    hLayout->addWidget(m_filterInput);
 
-    m_close = new KPushButton(this);
-    m_close->setIconSet(SmallIcon("fileclose"));
-    m_close->setFlat(true);
-    layout->addWidget(m_close);
-    layout->addSpacing(gap);
+    m_close = new QToolButton(this);
+    m_close->setAutoRaise(true);
+    m_close->setIcon(QIcon(SmallIcon("fileclose")));
+    hLayout->addWidget(m_close);
+    hLayout->addSpacing(gap);
 
     connect(m_filterInput, SIGNAL(textChanged(const QString&)),
-            this, SIGNAL(signalFilterChanged(const QString&)));
-    connect(m_close, SIGNAL(clicked()), this, SLOT(hide()));
-    connect(m_close, SIGNAL(clicked()),
-            &Dolphin::mainWin(), SLOT(slotShowFilterBarChanged()));
+            this, SIGNAL(filterChanged(const QString&)));
+    connect(m_close, SIGNAL(clicked()), this, SLOT(emitCloseRequest()));
 }
 
 FilterBar::~FilterBar()
 {
 }
 
-void FilterBar::hide()
+void FilterBar::hideEvent(QHideEvent* event)
 {
-    m_filterInput->clear();
-    m_filterInput->clearFocus();
-    QWidget::hide();
+    if (!event->spontaneous()) {
+        m_filterInput->clear();
+        m_filterInput->clearFocus();
+    }
 }
 
-void FilterBar::show()
+void FilterBar::showEvent(QShowEvent* event)
 {
-    m_filterInput->setFocus();
-    QWidget::show();
+    if (!event->spontaneous()) {
+        m_filterInput->setFocus();
+    }
 }
 
 void FilterBar::keyReleaseEvent(QKeyEvent* event)
 {
     QWidget::keyReleaseEvent(event);
     if ((event->key() == Qt::Key_Escape)) {
-        hide();
-        Dolphin::mainWin().slotShowFilterBarChanged();
+        emitCloseRequest();
     }
 }
 
+void FilterBar::emitCloseRequest()
+{
+    emit closeRequest();
+}
+
 #include "filterbar.moc"