class KHistoryCombo

# class KHistoryCombo | A combobox for offering a history and completion. More...
Definition | `#include <kcombobox.h>`
Inherits | KComboBox [public ]
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

#### Public Methods

- KHistoryCombo ( QWidget *parent = 0L, const char *name = 0L )
- KHistoryCombo ( bool useCompletion, QWidget *parent = 0L, const char *name = 0L )
- ~KHistoryCombo ()
- inline void setHistoryItems ( QStringList items )
- void setHistoryItems ( QStringList items, bool setCompletionList )
- QStringList historyItems () const
- bool removeFromHistory ( const QString& item )
- void setPixmapProvider ( KPixmapProvider *prov )
- KPixmapProvider * pixmapProvider () const
- void reset ()

#### Public Slots

- void addToHistory ( const QString& item )
- void clearHistory ()

#### Signals

- void cleared ()

#### Protected Methods

- virtual void keyPressEvent ( QKeyEvent * )
- virtual void wheelEvent ( QWheelEvent *ev )
- void insertItems ( const QStringList& items )
- bool useCompletion () const
- virtual void virtual_hook ( int id, void* data )

## Detailed Description

A combobox which implements a history like a unix shell. You can navigate through all the items by using the Up or Down arrows (configurable of course). Additionally, weighted completion is available. So you should load and save the completion list to preserve the weighting between sessions.

KHistoryCombo obeys the HISTCONTROL environment variable to determine whether duplicates in the history should be tolerated in addToHistory() or not. During construction of KHistoryCombo, duplicates will be disabled when HISTCONTROL is set to "ignoredups" or "ignoreboth". Otherwise, duplicates are enabled by default.

KHistoryCombo ( QWidget *parent = 0L, const char *name = 0L ) | ### KHistoryCombo

Constructs a "read-write" combobox. A read-only history combobox doesn't make much sense, so it is only available as read-write. Completion will be used automatically for the items in the combo.

The insertion-policy is set to NoInsertion, you have to add the items yourself via the slot addToHistory. If you want every item added, use

     connect( combo, SIGNAL( activated( const QString& )),
              combo, SLOT( addToHistory( const QString& )));

Use QComboBox::setMaxCount() to limit the history.

`parent` the parent object of this widget. `name` the name of this widget.

KHistoryCombo ( bool useCompletion, QWidget *parent = 0L, const char *name = 0L ) | ### KHistoryCombo

Same as the previous constructor, but additionally has the option to specify whether you want to let KHistoryCombo handle completion or not. If set to `true`, KHistoryCombo will sync the completion to the contents of the combobox.

~KHistoryCombo () | ### ~KHistoryCombo

Destructs the combo, the completion-object and the pixmap-provider

inline void setHistoryItems ( QStringList items ) | ### setHistoryItems

Inserts `items` into the combobox. `items` might get truncated if it is longer than maxCount()

See also: historyItems

void setHistoryItems ( QStringList items, bool setCompletionList ) | ### setHistoryItems

Inserts `items` into the combobox. `items` might get truncated if it is longer than maxCount()

Set `setCompletionList` to true, if you don't have a list of completions. This tells KHistoryCombo to use all the items for the completion object as well. You won't have the benefit of weighted completion though, so normally you should do something like

     KConfig *config = kapp->config();
     QStringList list;

     // load the history and completion list after creating the history combo
     list = config->readListEntry( "Completion list" );
     combo->completionObject()->setItems( list );
     list = config->readListEntry( "History list" );
     combo->setHistoryItems( list );

     [...]

     // save the history and completion list when the history combo is
     // destroyed
     list = combo->completionObject()->items()
     config->writeEntry( "Completion list", list );
     list = combo->historyItems();
     config->writeEntry( "History list", list );

Be sure to use different names for saving with KConfig if you have more than one KHistoryCombo.

Note: When `setCompletionList` is true, the items are inserted into the KCompletion object with mode KCompletion::Insertion and the mode is set to KCompletion::Weighted afterwards.

See also: historyItems, setItems, items, KCompletion::items

QStringList historyItems () | ### historyItems

[const]

Returns the list of history items. Empty, when this is not a read-write combobox.

See also: setHistoryItems

bool removeFromHistory ( const QString& item ) | ### removeFromHistory

Removes all items named `item`.

Returns: `true` if at least one item was removed.

See also: addToHistory

void setPixmapProvider ( KPixmapProvider *prov ) | ### setPixmapProvider

Sets a pixmap provider, so that items in the combobox can have a pixmap. KPixmapProvider is just an abstract class with the one pure virtual method KPixmapProvider::pixmapFor(). This method is called whenever an item is added to the KHistoryComboBox. Implement it to return your own custom pixmaps, or use the KURLPixmapProvider from libkio, which uses KMimeType::pixmapForURL to resolve icons.

Set `prov` to 0L if you want to disable pixmaps. Default no pixmaps.

See also: pixmapProvider

KPixmapProvider * pixmapProvider () | ### pixmapProvider

[const]

Returns: the current pixmap provider.

See also: setPixmapProvider, KPixmapProvider

void reset () | ### reset

Resets the current position of the up/down history. Call this when you manually call setCurrentItem() or clearEdit().

void addToHistory ( const QString& item ) | ### addToHistory

[slot]

Adds an item to the end of the history list and to the completion list. If maxCount() is reached, the first item of the list will be removed.

If the last inserted item is the same as `item`, it will not be inserted again.

If duplicatesEnabled() is false, any equal existing item will be removed before `item` is added.

Note: By using this method and not the Q and KComboBox insertItem() methods, you make sure that the combobox stays in sync with the completion. It would be annoying if completion would give an item not in the combobox, and vice versa.

See also: removeFromHistory, setDuplicatesEnabled

void clearHistory () | ### clearHistory

[slot]

Clears the history and the completion list.

void cleared () | ### cleared

[signal]

Emitted when the history was cleared by the entry in the popup menu.

void keyPressEvent ( QKeyEvent * ) | ### keyPressEvent

[protected virtual]

Handling key-events, the shortcuts to rotate the items.

void wheelEvent ( QWheelEvent *ev ) | ### wheelEvent

[protected virtual]

Handling wheel-events, to rotate the items.

Reimplemented from KComboBox.

void insertItems ( const QStringList& items ) | ### insertItems

[protected]

Inserts `items` into the combo, honouring pixmapProvider() Does not update the completionObject.

Note: duplicatesEnabled() is not honored here.

Called from setHistoryItems() and setPixmapProvider()

bool useCompletion () | ### useCompletion

[protected const]

Returns: if we can modify the completion object or not.

void virtual_hook ( int id, void* data ) | ### virtual_hook

[protected virtual]

Indicates that the user at least once rotated Up through the entire list Needed to allow going back after rotation.

Reimplemented from KComboBox.

- Author: Carsten Pfeiffer
- Generated: root on macppc.ports.openbsd.org on Sat Sep 6 10:36:37 2003, using kdoc 2.0a54.