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(); } }
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); }