<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title>KHistoryComboBox</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <link rel="stylesheet" type="text/css" href="../common/doxygen.css" /> <link rel="stylesheet" media="screen" type="text/css" title="KDE Colors" href="../common/kde.css" /> </head> <body> <div id="container"> <div id="header"> <div id="header_top"> <div> <div> <img alt ="" src="../common/top-kde.jpg"/> KDE 4.9 PyKDE API Reference </div> </div> </div> <div id="header_bottom"> <div id="location"> <ul> <li>KDE's Python API</li> </ul> </div> <div id="menu"> <ul> <li><a href="../modules.html">Overview</a></li> <li><a href="http://techbase.kde.org/Development/Languages/Python">PyKDE Home</a></li> <li><a href="http://kde.org/family/">Sitemap</a></li> <li><a href="http://kde.org/contact/">Contact Us</a></li> </ul> </div> </div> </div> <div id="body_wrapper"> <div id="body"> <div id="right"> <div class="content"> <div id="main"> <div class="clearer"> </div> <h1>KHistoryComboBox Class Reference</h1> <code>from PyKDE4.kdeui import *</code> <p> Inherits: <a href="../kdeui/KComboBox.html">KComboBox</a> → QComboBox → QWidget → QObject<br /> <h2>Detailed Description</h2> <p>A combobox for offering a history and completion </p> <p> 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. </p> <p> KHistoryComboBox obeys the HISTCONTROL environment variable to determine whether duplicates in the history should be tolerated in addToHistory() or not. During construction of KHistoryComboBox, duplicates will be disabled when HISTCONTROL is set to "ignoredups" or "ignoreboth". Otherwise, duplicates are enabled by default. </p> <p> <div align="center"><img src="../images/khistorycombobox.png" /><p><strong> "KDE History Combo Box" </strong></p></div> </p> <p> <dl class="author" compact><dt><b>Author:</b></dt><dd> Carsten Pfeiffer <pfeiffer@kde.org> </dd></dl> </p> <table border="0" cellpadding="0" cellspacing="0"><tr><td colspan="2"><br><h2>Signals</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#cleared">cleared</a> ()</td></tr> <tr><td colspan="2"><br><h2>Methods</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#KHistoryComboBox">__init__</a> (self, QWidget parent=0)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#KHistoryComboBox">__init__</a> (self, bool useCompletion, QWidget parent=0)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#KHistoryComboBox">__init__</a> (self, <a href="../kdeui/KHistoryComboBox.html">KHistoryComboBox</a> a0)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#addToHistory">addToHistory</a> (self, QString item)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#clearHistory">clearHistory</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">QStringList </td><td class="memItemRight" valign="bottom"><a class="el" href="#historyItems">historyItems</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#insertItems">insertItems</a> (self, QStringList items)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#keyPressEvent">keyPressEvent</a> (self, QKeyEvent a0)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a href="../kdeui/KPixmapProvider.html">KPixmapProvider</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#pixmapProvider">pixmapProvider</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#removeFromHistory">removeFromHistory</a> (self, QString item)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#reset">reset</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#setHistoryItems">setHistoryItems</a> (self, QStringList items)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#setHistoryItems">setHistoryItems</a> (self, QStringList items, bool setCompletionList)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#setPixmapProvider">setPixmapProvider</a> (self, <a href="../kdeui/KPixmapProvider.html">KPixmapProvider</a> prov)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#useCompletion">useCompletion</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#wheelEvent">wheelEvent</a> (self, QWheelEvent ev)</td></tr> </table> <hr><h2>Signal Documentation</h2><a class="anchor" name="cleared"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> cleared</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">)</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Emitted when the history was cleared by the entry in the popup menu. </p><dl compact><dt><b>Signal syntax:</b></dt><dd><code>QObject.connect(source, SIGNAL("cleared()"), target_slot)</code></dd></dl></div></div><hr><h2>Method Documentation</h2><a class="anchor" name="KHistoryComboBox"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">__init__</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">QWidget </td> <td class="paramname"><em>parent=0</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>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. </p> <p> The insertion-policy is set to NoInsert, you have to add the items yourself via the slot addToHistory. If you want every item added, use </p> <p> <pre class="fragment"> connect( combo, SIGNAL( activated( const QString& )), combo, SLOT( addToHistory( const QString& ))); </pre> </p> <p> Use QComboBox.setMaxCount() to limit the history. </p> <p> <b>parent</b> the parent object of this widget. </p></div></div><a class="anchor" name="KHistoryComboBox"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">__init__</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>useCompletion</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype">QWidget </td> <td class="paramname"><em>parent=0</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Same as the previous constructor, but additionally has the option to specify whether you want to let KHistoryComboBox handle completion or not. If set to <b>true,</b> KHistoryComboBox will sync the completion to the contents of the combobox. </p></div></div><a class="anchor" name="KHistoryComboBox"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">__init__</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype"><a href="../kdeui/KHistoryComboBox.html">KHistoryComboBox</a> </td> <td class="paramname"><em>a0</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"></div></div><a class="anchor" name="addToHistory"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> addToHistory</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">QString </td> <td class="paramname"><em>item</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>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. </p> <p> If the last inserted item is the same as <b>item,</b> it will not be inserted again. </p> <p> If duplicatesEnabled() is false, any equal existing item will be removed before <b>item</b> is added. </p> <p> 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. </p> <p> <dl class="see" compact><dt><b>See also:</b></dt><dd> removeFromHistory </dd></dl> <dl class="see" compact><dt><b>See also:</b></dt><dd> QComboBox.setDuplicatesEnabled </dd></dl> </p></div></div><a class="anchor" name="clearHistory"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> clearHistory</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Clears the history and the completion list. </p></div></div><a class="anchor" name="historyItems"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">QStringList historyItems</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Returns the list of history items. Empty, when this is not a read-write combobox. </p> <p> <dl class="see" compact><dt><b>See also:</b></dt><dd> setHistoryItems </dd></dl> </p></div></div><a class="anchor" name="insertItems"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> insertItems</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">QStringList </td> <td class="paramname"><em>items</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Inserts <b>items</b> into the combo, honoring pixmapProvider() Does not update the completionObject. </p> <p> Note: duplicatesEnabled() is not honored here. </p> <p> Called from setHistoryItems() and setPixmapProvider() </p></div></div><a class="anchor" name="keyPressEvent"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> keyPressEvent</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">QKeyEvent </td> <td class="paramname"><em>a0</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Handling key-events, the shortcuts to rotate the items. </p></div></div><a class="anchor" name="pixmapProvider"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"><a href="../kdeui/KPixmapProvider.html">KPixmapProvider</a> pixmapProvider</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p><dl class="return" compact><dt><b>Returns:</b></dt><dd> the current pixmap provider. </dd></dl> <dl class="see" compact><dt><b>See also:</b></dt><dd> setPixmapProvider </dd></dl> <dl class="see" compact><dt><b>See also:</b></dt><dd> KPixmapProvider </dd></dl> </p></div></div><a class="anchor" name="removeFromHistory"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">bool removeFromHistory</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">QString </td> <td class="paramname"><em>item</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Removes all items named <b>item.</b> </p> <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd> <b>true</b> if at least one item was removed. </dd></dl> </p> <p> <dl class="see" compact><dt><b>See also:</b></dt><dd> addToHistory </dd></dl> </p></div></div><a class="anchor" name="reset"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> reset</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Resets the current position of the up/down history. Call this when you manually call setCurrentItem() or clearEdit(). </p></div></div><a class="anchor" name="setHistoryItems"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> setHistoryItems</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">QStringList </td> <td class="paramname"><em>items</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Inserts <b>items</b> into the combobox. <b>items</b> might get truncated if it is longer than maxCount() </p> <p> Set <b>setCompletionList</b> to true, if you don't have a list of completions. This tells KHistoryComboBox 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 <pre class="fragment"> KConfigGroup config(KGlobal.config(), "somegroup"); // load the history and completion list after creating the history combo QStringList list; list = config.readEntry("Completion list", QStringList()); combo->completionObject()->setItems(list); list = config.readEntry("History list", QStringList()); combo->setHistoryItems(list); [...] // save the history and completion list when the history combo is // destroyed QStringList list; KConfigGroup config(KGlobal.config(), "somegroup"); list = combo->completionObject()->items(); config.writeEntry("Completion list", list); list = combo->historyItems(); config.writeEntry("History list", list); </pre> </p> <p> Be sure to use different names for saving with KConfig if you have more than one KHistoryComboBox. </p> <p> Note: When <b>setCompletionList</b> is true, the items are inserted into the KCompletion object with mode KCompletion.Insertion and the mode is set to KCompletion.Weighted afterwards. </p> <p> <dl class="see" compact><dt><b>See also:</b></dt><dd> historyItems </dd></dl> <dl class="see" compact><dt><b>See also:</b></dt><dd> KComboBox.completionObject </dd></dl> <dl class="see" compact><dt><b>See also:</b></dt><dd> KCompletion.setItems </dd></dl> <dl class="see" compact><dt><b>See also:</b></dt><dd> KCompletion.items </dd></dl> </p></div></div><a class="anchor" name="setHistoryItems"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> setHistoryItems</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">QStringList </td> <td class="paramname"><em>items</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>setCompletionList</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Inserts <b>items</b> into the combobox. <b>items</b> might get truncated if it is longer than maxCount() </p> <p> Set <b>setCompletionList</b> to true, if you don't have a list of completions. This tells KHistoryComboBox 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 <pre class="fragment"> KConfigGroup config(KGlobal.config(), "somegroup"); // load the history and completion list after creating the history combo QStringList list; list = config.readEntry("Completion list", QStringList()); combo->completionObject()->setItems(list); list = config.readEntry("History list", QStringList()); combo->setHistoryItems(list); [...] // save the history and completion list when the history combo is // destroyed QStringList list; KConfigGroup config(KGlobal.config(), "somegroup"); list = combo->completionObject()->items(); config.writeEntry("Completion list", list); list = combo->historyItems(); config.writeEntry("History list", list); </pre> </p> <p> Be sure to use different names for saving with KConfig if you have more than one KHistoryComboBox. </p> <p> Note: When <b>setCompletionList</b> is true, the items are inserted into the KCompletion object with mode KCompletion.Insertion and the mode is set to KCompletion.Weighted afterwards. </p> <p> <dl class="see" compact><dt><b>See also:</b></dt><dd> historyItems </dd></dl> <dl class="see" compact><dt><b>See also:</b></dt><dd> KComboBox.completionObject </dd></dl> <dl class="see" compact><dt><b>See also:</b></dt><dd> KCompletion.setItems </dd></dl> <dl class="see" compact><dt><b>See also:</b></dt><dd> KCompletion.items </dd></dl> </p></div></div><a class="anchor" name="setPixmapProvider"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> setPixmapProvider</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype"><a href="../kdeui/KPixmapProvider.html">KPixmapProvider</a> </td> <td class="paramname"><em>prov</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>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 KHistoryComboBoxBox. Implement it to return your own custom pixmaps, or use the KUrlPixmapProvider from libkio, which uses KMimeType.pixmapForUrl to resolve icons. </p> <p> Set <b>prov</b> to 0L if you want to disable pixmaps. Default no pixmaps. </p> <p> <dl class="see" compact><dt><b>See also:</b></dt><dd> pixmapProvider </dd></dl> </p></div></div><a class="anchor" name="useCompletion"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">bool useCompletion</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p><dl class="return" compact><dt><b>Returns:</b></dt><dd> if we can modify the completion object or not. </dd></dl> </p></div></div><a class="anchor" name="wheelEvent"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> wheelEvent</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">QWheelEvent </td> <td class="paramname"><em>ev</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Handling wheel-events, to rotate the items. </p></div></div> </div> </div> </div> <div id="left"> <div class="menu_box"> <div class="nav_list"> <ul> <li><a href="../allclasses.html">Full Index</a></li> </ul> </div> <a name="cp-menu" /><div class="menutitle"><div> <h2 id="cp-menu-project">Modules</h2> </div></div> <div class="nav_list"> <ul><li><a href="../akonadi/index.html">akonadi</a></li> <li><a href="../dnssd/index.html">dnssd</a></li> <li><a href="../kdecore/index.html">kdecore</a></li> <li><a href="../kdeui/index.html">kdeui</a></li> <li><a href="../khtml/index.html">khtml</a></li> <li><a href="../kio/index.html">kio</a></li> <li><a href="../knewstuff/index.html">knewstuff</a></li> <li><a href="../kparts/index.html">kparts</a></li> <li><a href="../kutils/index.html">kutils</a></li> <li><a href="../nepomuk/index.html">nepomuk</a></li> <li><a href="../phonon/index.html">phonon</a></li> <li><a href="../plasma/index.html">plasma</a></li> <li><a href="../polkitqt/index.html">polkitqt</a></li> <li><a href="../solid/index.html">solid</a></li> <li><a href="../soprano/index.html">soprano</a></li> </ul></div></div> </div> </div> <div class="clearer"/> </div> <div id="end_body"></div> </div> <div id="footer"><div id="footer_text"> This documentation is maintained by <a href="mailto:simon@simonzone.com">Simon Edwards</a>.<br /> KDE<sup>®</sup> and <a href="../images/kde_gear_black.png">the K Desktop Environment<sup>®</sup> logo</a> are registered trademarks of <a href="http://ev.kde.org/" title="Homepage of the KDE non-profit Organization">KDE e.V.</a> | <a href="http://www.kde.org/contact/impressum.php">Legal</a> </div></div> </body> </html>