void LineEditHistory::complete()
{
	QString para = this->text();
	int wordStart = beginOfWord( false );
	while (wordStart > 0 && para[wordStart - 1].isLetterOrNumber())
		--wordStart;
	wordPrefix = para.mid(wordStart, cursorPosition() - wordStart);
//	if (wordPrefix.isEmpty())
//		return;

	QStringList list = searchSymbols;
	QMap<QString, QString> map;
	QStringList::Iterator it = list.begin();
	while (it != list.end()) {
		if ((*it).startsWith(wordPrefix) && (*it).length() > wordPrefix.length())
			map[(*it).toLower()] = *it;
		++it;
	}

	if (map.count() == 1) {
		insert((*map.begin()).mid(wordPrefix.length()));
	} else if (map.count() > 1) {
		if (!listBox)
			createListBox();
		listBox->clear();
		listBox->addItems( map.values() );

		QPoint point = textCursorPoint();
		listBox->move(point);
		listBox->show();
		listBox->raise();
		listBox->activateWindow();
	}
}
Exemple #2
0
void KgGeneral::createExtensionsTab()
{
    // ------------------------- atomic extensions ----------------------------------

    QWidget *tab = createTab(i18n("Atomic extensions"));
    QGridLayout *tabLayout = new QGridLayout(tab);
    tabLayout->setSpacing(6);
    tabLayout->setContentsMargins(11, 11, 11, 11);

    QWidget * vboxWidget2 = new QWidget(tab);
    tabLayout->addWidget(vboxWidget2);

    QVBoxLayout * vbox2 = new QVBoxLayout(vboxWidget2);

    QWidget * hboxWidget3 = new QWidget(vboxWidget2);
    vbox2->addWidget(hboxWidget3);

    QHBoxLayout * hbox3 = new QHBoxLayout(hboxWidget3);

    QLabel * atomLabel = new QLabel(i18n("Atomic extensions:"), hboxWidget3);
    hbox3->addWidget(atomLabel);

    int size = QFontMetrics(atomLabel->font()).height();

    QToolButton *addButton = new QToolButton(hboxWidget3);
    hbox3->addWidget(addButton);

    QPixmap icon = krLoader->loadIcon("list-add", KIconLoader::Desktop, size);
    addButton->setFixedSize(icon.width() + 4, icon.height() + 4);
    addButton->setIcon(QIcon(icon));
    connect(addButton, SIGNAL(clicked()), this, SLOT(slotAddExtension()));

    QToolButton *removeButton = new QToolButton(hboxWidget3);
    hbox3->addWidget(removeButton);

    icon = krLoader->loadIcon("list-remove", KIconLoader::Desktop, size);
    removeButton->setFixedSize(icon.width() + 4, icon.height() + 4);
    removeButton->setIcon(QIcon(icon));
    connect(removeButton, SIGNAL(clicked()), this, SLOT(slotRemoveExtension()));

    QStringList defaultAtomicExtensions;
    defaultAtomicExtensions += ".tar.gz";
    defaultAtomicExtensions += ".tar.bz2";
    defaultAtomicExtensions += ".tar.lzma";
    defaultAtomicExtensions += ".tar.xz";
    defaultAtomicExtensions += ".moc.cpp";

    listBox = createListBox("Look&Feel", "Atomic Extensions",
                            defaultAtomicExtensions, vboxWidget2, true, PAGE_EXTENSIONS);
    vbox2->addWidget(listBox);
}