22 #include <QPushButton> 24 #include <QListWidget> 30 :QWidget(parent), Ui::KeywordWidgetBase()
38 Q_ASSERT(lstKeywords);
40 connect(edKeyword, SIGNAL(textChanged(QString)),
42 connect(btAdd, SIGNAL(clicked()),
44 connect(btAuto, SIGNAL(clicked()),
46 connect(btRemove, SIGNAL(clicked()),
47 this, SLOT(
remove()));
48 connect(lstKeywords, SIGNAL(itemActivated(QListWidgetItem*)),
50 connect(lstKeywords, SIGNAL(itemClicked(QListWidgetItem*)),
52 connect(lstKeywords, SIGNAL(itemDoubleClicked(QListWidgetItem*)),
57 edKeyword->installEventFilter(
this);
70 if (!item.length())
return false;
71 return (!lstKeywords->findItems(item, Qt::MatchExactly).isEmpty());
78 unsigned int count = lstKeywords->count();
79 for (
unsigned int index=0; index < count; ++index) {
80 QListWidgetItem *item = lstKeywords->item(index);
81 if (item && item->text().length())
82 list.append(item->text());
93 foreach (
const QString &it, keywords) {
94 QString item = it.simplified();
96 lstKeywords->addItem(item);
98 lstKeywords->setSortingEnabled(
true);
99 lstKeywords->sortItems();
109 QString edit = edKeyword->text().simplified();
113 btAdd->setEnabled(edit.length() && !
contained(edit));
116 btRemove->setEnabled((lstKeywords->currentItem() != Q_NULLPTR) &&
120 lstKeywords->setEnabled(lstKeywords->count() != 0);
123 lstKeywords->scrollToItem(lstKeywords->currentItem(),
124 QAbstractItemView::EnsureVisible);
130 QString text = edit.simplified();
131 QList<QListWidgetItem *> matches =
132 lstKeywords->findItems(text, Qt::MatchStartsWith);
133 if (edit.length() && !matches.isEmpty()) {
134 lstKeywords->setCurrentItem(matches.takeFirst());
136 edKeyword->setText(edit);
151 QString text = edKeyword->text().simplified();
152 if (!text.length())
return;
156 lstKeywords->addItem(text);
157 lstKeywords->sortItems();
160 QList<QListWidgetItem *> matches =
161 lstKeywords->findItems(text, Qt::MatchStartsWith);
162 if (!matches.isEmpty())
163 lstKeywords->setCurrentItem(matches.takeFirst());
175 int index = lstKeywords->currentRow();
176 QListWidgetItem *item = lstKeywords->takeItem(index);
177 if (item)
delete item;
182 if (lstKeywords->item(index))
183 lstKeywords->item(index)->setSelected(
true);
193 edKeyword->setText(item->text());
206 if (!event)
return false;
208 if ((sender == edKeyword) && (event->type() == QEvent::KeyPress)) {
209 QKeyEvent *k =
static_cast<QKeyEvent *
>(event);
210 if ((k->key() == Qt::Key_Return) || (k->key() == Qt::Key_Enter)) {
215 return QObject::eventFilter(sender, event);
bool connect(Kwave::StreamObject &source, const char *output, Kwave::StreamObject &sink, const char *input)