diff options
Diffstat (limited to 'src/findbar.cpp')
-rw-r--r-- | src/findbar.cpp | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/src/findbar.cpp b/src/findbar.cpp new file mode 100644 index 00000000..ae64b7f6 --- /dev/null +++ b/src/findbar.cpp @@ -0,0 +1,125 @@ +/* ============================================================ + * + * This file is a part of the reKonq project + * + * Copyright (C) 2008 by Andrea Diamantini <adjam7 at gmail dot com> + * + * + * 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, or (at your option) any later version. + * + * 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. + * + * ============================================================ */ + +#include "findbar.h" +#include "moc_findbar.cpp" + +#include <KLineEdit> +#include <KAction> +#include <KIconLoader> +#include <KToolBar> +#include <KStandardAction> + +#include <QHBoxLayout> +#include <QLabel> +#include <QEvent> +#include <QPixmap> +#include <QShortcut> +#include <QResizeEvent> + +FindBar::FindBar(QWidget *parent) + : QWidget(parent) + , m_lineEdit(0) +{ + initializeFindWidget(); + + // we start off hidden + setMaximumHeight(0); +// m_widget->setGeometry(0, -1 * m_widget->height(), m_widget->width(), m_widget->height()); + hide(); + + new QShortcut(QKeySequence(Qt::Key_Escape), this, SLOT(hide())); +} + +FindBar::~FindBar() +{ + delete m_lineEdit; +} + + +void FindBar::initializeFindWidget() +{ + QHBoxLayout *layout = new QHBoxLayout(); + + KToolBar *bar1 = new KToolBar(this); + bar1->addAction( KStandardAction::close(this, SLOT( hide() ) , this ) ); + layout->addWidget( bar1 ); + + QLabel *label = new QLabel("Find: "); + layout->addWidget( label ); + + m_lineEdit = new KLineEdit(); + connect( m_lineEdit, SIGNAL( returnPressed() ), this, SLOT( slotFindNext() ) ); + connect( m_lineEdit, SIGNAL( textEdited(const QString &) ), this, SLOT( slotFindNext() ) ); + layout->addWidget( m_lineEdit ); + + KToolBar *bar2 = new KToolBar(this); + bar2->addAction( KStandardAction::findNext(this, SLOT( slotFindNext() ) , this ) ); + bar2->addAction( KStandardAction::findPrev(this, SLOT( slotFindPrevious() ) , this ) ); + layout->addWidget( bar2 ); + + layout->addStretch(); + + setLayout(layout); +} + + + +void FindBar::clear() +{ + m_lineEdit->setText(QString()); +} + + +void FindBar::showFind() +{ + if (!isVisible()) + { + show(); + } + m_lineEdit->setFocus(); + m_lineEdit->selectAll(); +} + + +void FindBar::resizeEvent(QResizeEvent *event) +{ +/* if (event->size().width() != m_widget->width()) + m_widget->resize(event->size().width(), m_widget->height()); + QWidget::resizeEvent(event);*/ +} + + +void FindBar::frameChanged(int frame) +{ +/* if (!m_widget) + return; + m_widget->move(0, frame); + int height = qMax(0, m_widget->y() + m_widget->height()); + setMinimumHeight(height); + setMaximumHeight(height);*/ +} + + +void FindBar::slotFindNext() +{} + +void FindBar::slotFindPrevious() +{} + |