diff options
Diffstat (limited to 'konqueror/konq_combo.h')
-rw-r--r-- | konqueror/konq_combo.h | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/konqueror/konq_combo.h b/konqueror/konq_combo.h new file mode 100644 index 000000000..8775d0c96 --- /dev/null +++ b/konqueror/konq_combo.h @@ -0,0 +1,115 @@ +/* This file is part of the KDE project + Copyright (C) 2001 Carsten Pfeiffer <pfeiffer@kde.org> + + 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) 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. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef KONQ_COMBO_H +#define KONQ_COMBO_H + +#include <qevent.h> + +#include <kcombobox.h> +#include <konq_historymgr.h> + +class KCompletion; +class KConfig; + +// we use KHistoryCombo _only_ for the up/down keyboard handling, otherwise +// KComboBox would do fine. +class KonqCombo : public KHistoryCombo +{ + Q_OBJECT + +public: + KonqCombo( QWidget *parent, const char *name ); + ~KonqCombo(); + + // initializes with the completion object and calls loadItems() + void init( KCompletion * ); + + // determines internally if it's temporary or final + void setURL( const QString& url ); + + void setTemporary( const QString& ); + void setTemporary( const QString&, const QPixmap& ); + void clearTemporary( bool makeCurrent = true ); + void removeURL( const QString& url ); + + void insertPermanent( const QString& ); + + void updatePixmaps(); + + void loadItems(); + void saveItems(); + + static void setConfig( KConfig * ); + + virtual void popup(); + + void setPageSecurity( int ); + + void insertItem( const QString &text, int index=-1, const QString& title=QString::null ); + void insertItem( const QPixmap &pixmap, const QString &text, int index=-1, const QString& title=QString::null ); + +protected: + virtual void keyPressEvent( QKeyEvent * ); + virtual bool eventFilter( QObject *, QEvent * ); + virtual void mousePressEvent( QMouseEvent * ); + virtual void mouseMoveEvent( QMouseEvent * ); + void paintEvent( QPaintEvent * ); + void selectWord(QKeyEvent *e); + +signals: + /** + Specialized signal that emits the state of the modifier + keys along with the actual activated text. + */ + void activated( const QString &, int ); + + /** + User has clicked on the security lock in the combobar + */ + void showPageSecurity(); + +private slots: + void slotCleared(); + void slotSetIcon( int index ); + void slotActivated( const QString& text ); + +private: + void updateItem( const QPixmap& pix, const QString&, int index, const QString& title ); + void saveState(); + void restoreState(); + void applyPermanent(); + QString temporaryItem() const { return text( temporary ); } + void removeDuplicates( int index ); + bool hasSufficientContrast(const QColor &c1, const QColor &c2); + + bool m_returnPressed; + bool m_permanent; + int m_cursorPos; + int m_currentIndex; + int m_modifier; + QString m_currentText; + QPoint m_dragStart; + int m_pageSecurity; + + static KConfig *s_config; + static const int temporary; // the index of our temporary item +}; + +#endif // KONQ_COMBO_H |