from qt import Qt, QFrame, QHBoxLayout, QVBoxLayout, QStringList, QLabel, \
     SIGNAL, SLOT
from kdeui import KHistoryCombo, KTextEdit


iconName = 'history'
labelText = 'KHistoryCombo'
docParts = ('kdeui', 'KHistoryCombo')
helpText = ('An example of the KHistoryCombo widget.'
            '\n\n'
            'Completion is enabled via the setHistoryItems call; when the second '
            'parameter is True, matching items from the list appear as you type.'
            '\n\n'
            'The activated signal is connected to the addToHistory '
            'slot to automatically add new items.')


historyText = 'a quick brown fox jumps over the lazy dog'


class MainFrame(QFrame):
    def __init__(self, parent=None):
        QFrame.__init__(self, parent)
        self.help = KTextEdit(helpText, '', self)
        self.historyCombo = KHistoryCombo(self)

        self.historySelectionLabel = QLabel('Selected value: ', self)
        self.historySelection = QLabel('(none)', self)

        items = QStringList()
        for item in historyText.split():
            items.append(item)
        self.historyCombo.setHistoryItems(items, True)

        layout = QVBoxLayout(self, 4)
        layout.addWidget(self.help, 3)
        layout.addStretch(1)
        selectionLayout = QHBoxLayout(layout, 4)
        selectionLayout.addWidget(self.historySelectionLabel, 1)
        selectionLayout.addWidget(self.historySelection, 10, Qt.AlignLeft)
        layout.addWidget(self.historyCombo, 0)
        layout.addStretch(10)

        self.connect(self.historyCombo, SIGNAL('activated(const QString& )'),
                     self.historyCombo, SLOT('addToHistory(const QString&)'))
        self.connect(self.historyCombo, SIGNAL('cleared()'),
                     self.historyCleared)
        self.connect(self.historyCombo, SIGNAL('activated(const QString &)'),
                     self.historySelection.setText)

    def historyCleared(self):
        print 'History combo cleared.'
        
