void OperationsDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const { const QVariant value = index.data(Qt::EditRole); if (value.type() == QVariant::StringList) { QListWidget *lw = qobject_cast<QListWidget *>(editor); const auto items = lw->findItems(index.data(Qt::DisplayRole).toString(), Qt::MatchExactly); if (!items.empty()) lw->setCurrentItem(items.first()); else lw->setCurrentItem(lw->item(0)); const int extraWidth = 25; const int extraHeight = 6; lw->setMinimumWidth(lw->sizeHintForColumn(0) + extraWidth); // to prevent possible hiding bottom part of the list const int h = lw->count() * (lw->visualItemRect(lw->currentItem()).height() + extraHeight); const int y = (lw->parentWidget() && (lw->parentWidget()->rect().bottom() < lw->y() + h)) ? lw->parentWidget()->rect().bottom() - h - extraHeight : lw->y(); lw->setGeometry(lw->x(), y, lw->width(), h); // now lw can be partially hidden behind the tree view // if tree view has small rect, so set parent of lw // to app window and map coordinates accordingly to leave lw in place const auto globalCoord = lw->parentWidget()->mapToGlobal(lw->geometry().topLeft()); lw->setParent(appWindow); const auto newLocalCoord = appWindow->mapFromGlobal(globalCoord); lw->setGeometry(newLocalCoord.x(), newLocalCoord.y(), lw->width(), h); } else // single value QStyledItemDelegate::setEditorData(editor, index); }
void MainWindow::focusAssistant() { QListWidget* widget = qobject_cast<QListWidget*>(m_assistantToolBox->currentWidget()); if (widget) { widget->setFocus(); if (widget->selectedItems().count() == 0) { widget->setCurrentItem(widget->itemAt(0, 0)); } } }
void KActionSelectorPrivate::buttonAddClicked() { // move all selected items from available to selected listbox QList<QListWidgetItem *> list = availableListWidget->selectedItems(); foreach (QListWidgetItem* item, list) { availableListWidget->takeItem( availableListWidget->row( item ) ); selectedListWidget->insertItem( insertionIndex( selectedListWidget, selectedInsertionPolicy ), item ); selectedListWidget->setCurrentItem( item ); emit q->added( item ); }
void MainWindow::ProcessChanged(Process* _process) { QListWidgetItem* item = this->GetProcessItem(_process); QListWidget* list = this->ui.procListWidget; if(item != NULL); { list->setCurrentItem(item); this->DisplayProcess(); } }
void ManageUserDirectories::moveUp() { QListWidget *list = listWidget(); QList<QListWidgetItem *> selected = list->selectedItems(); for (int i = 0; i < selected.size(); i++) { int index = list->row(selected[i]); if (index != 0) { QListWidgetItem *move = list->takeItem(index); list->insertItem(index - 1, move); } list->setCurrentItem(selected[i]); } }
void AnimationDialog::selectPrev() { m_kfi->stopInterpolation(); QListWidget* list = m_ui->listWidget; int prev = list->row(m_item) - 1; if( !(prev >= 0 && list->count()) ) { prev = 0; } AnimationListItem* item = static_cast<AnimationListItem*>(list->item(prev)); list->setCurrentItem(item); m_item = item; m_parent->camera()->interpolateTo(m_item->frame(), 0.5); }
void AnimationDialog::selectNext() { m_kfi->stopInterpolation(); QListWidget* list = m_ui->listWidget; int next = list->row(m_item) + 1; if(next > list->count() - 1) { next = list->count() - 1; } AnimationListItem* item = static_cast<AnimationListItem*>(list->item(next)); list->setCurrentItem(item); m_item = item; m_parent->camera()->interpolateTo(m_item->frame(), 0.5); }
void OBSBasicFilters::AddFilter(OBSSource filter) { uint32_t flags = obs_source_get_output_flags(filter); bool async = (flags & OBS_SOURCE_ASYNC) != 0; QListWidget *list = async ? ui->asyncFilters : ui->effectFilters; QListWidgetItem *item = new QListWidgetItem(); Qt::ItemFlags itemFlags = item->flags(); item->setFlags(itemFlags | Qt::ItemIsEditable); item->setData(Qt::UserRole, QVariant::fromValue(filter)); list->addItem(item); list->setCurrentItem(item); SetupVisibilityItem(list, item, filter); }
void SettingsWidget::moveModule() { if (QToolButton *tB = qobject_cast<QToolButton *>(sender())) { const bool moveDown = tB->arrowType() == Qt::DownArrow; const int idx = tB->property("idx").toInt(); QListWidget *mL = page2ModulesList[idx]->list; int row = mL->currentRow(); if (row > -1) { QListWidgetItem *item = mL->takeItem(row); mL->clearSelection(); if (moveDown) ++row; else --row; mL->insertItem(row, item); mL->setCurrentItem(item); } } }