void VDirectoryTree::updateItemDirectChildren(QTreeWidgetItem *p_item) { QPointer<VDirectory> parentDir; if (p_item) { parentDir = getVDirectory(p_item); } else { parentDir = m_notebook->getRootDir(); } const QVector<VDirectory *> &dirs = parentDir->getSubDirs(); QHash<VDirectory *, QTreeWidgetItem *> itemDirMap; int nrChild = p_item ? p_item->childCount() : topLevelItemCount(); for (int i = 0; i < nrChild; ++i) { QTreeWidgetItem *item = p_item ? p_item->child(i) : topLevelItem(i); itemDirMap.insert(getVDirectory(item), item); } for (int i = 0; i < dirs.size(); ++i) { VDirectory *dir = dirs[i]; QTreeWidgetItem *item = itemDirMap.value(dir, NULL); if (item) { if (p_item) { p_item->removeChild(item); p_item->insertChild(i, item); } else { int topIdx = indexOfTopLevelItem(item); takeTopLevelItem(topIdx); insertTopLevelItem(i, item); } itemDirMap.remove(dir); } else { // Insert a new item if (p_item) { item = new QTreeWidgetItem(p_item); } else { item = new QTreeWidgetItem(this); } fillTreeItem(item, dir); buildSubTree(item, 1); } expandSubTree(item); } // Delete items without corresponding VDirectory for (auto iter = itemDirMap.begin(); iter != itemDirMap.end(); ++iter) { QTreeWidgetItem *item = iter.value(); if (p_item) { p_item->removeChild(item); } else { int topIdx = indexOfTopLevelItem(item); takeTopLevelItem(topIdx); } delete item; } }
void SummaryTree::addTestCases() { QTreeWidgetItem *curItem = currentItem(); if (indexOfTopLevelItem(curItem) == -1) curItem = curItem->parent(); int index = indexOfTopLevelItem(curItem); Task *curTask = curContest->getTask(index); AddTestCasesWizard *wizard = new AddTestCasesWizard(this); wizard->setSettings(settings, curTask->getTaskType() == Task::Traditional); if (wizard->exec() == QDialog::Accepted) { QList<QStringList> inputFiles = wizard->getMatchedInputFiles(); QList<QStringList> outputFiles = wizard->getMatchedOutputFiles(); for (int i = 0; i < inputFiles.size(); i ++) { addTestCase(); QTreeWidgetItem *curItem = currentItem(); QTreeWidgetItem *parentItem = curItem->parent(); int taskIndex = indexOfTopLevelItem(parentItem); int testCaseIndex = parentItem->indexOfChild(curItem); Task *curTask = curContest->getTask(taskIndex); TestCase *curTestCase = curTask->getTestCase(testCaseIndex); curTestCase->setFullScore(wizard->getFullScore()); curTestCase->setTimeLimit(wizard->getTimeLimit()); curTestCase->setMemoryLimit(wizard->getMemoryLimit()); for (int j = 0; j < inputFiles[i].size(); j ++) curTestCase->addSingleCase(inputFiles[i][j], outputFiles[i][j]); setCurrentItem(parentItem); setCurrentItem(curItem); } } delete wizard; }
void QPythonParamList::contextMenuEvent(QContextMenuEvent* evt) { QMenu menu(this); QAction* addObjItem = menu.addAction(tr("Add Parameter...")); QAction* editObjItem = menu.addAction(tr("Edit Parameter...")); QAction* delObjItem = menu.addAction(tr("Remove Parameter")); if (currentItem() == NULL) delObjItem->setEnabled(false); QAction* sel = menu.exec(evt->globalPos()); if (sel == addObjItem) { QPythonParamDialog dlg(this); if (dlg.exec() == QDialog::Accepted) addParam(dlg.parameter()); } else if (sel == editObjItem) { QPythonParamDialog dlg(this); dlg.init(fParams[indexOfTopLevelItem(currentItem())]); if (dlg.exec() == QDialog::Accepted) { plPythonParameter param = dlg.parameter(); fParams[indexOfTopLevelItem(currentItem())] = param; QStringList list = makeParamItem(param); for (int i=0; i<list.size(); i++) currentItem()->setText(i, list[i]); } } else if (sel == delObjItem) { delParam(indexOfTopLevelItem(currentItem())); } }
int ScTreeWidget::currentIndex() { int index = -1; QTreeWidgetItem* item = currentItem(); if (item->parent() == 0) index = indexOfTopLevelItem(item); else index = indexOfTopLevelItem(item->parent()); return index; }
void MenuBarTree::insertMenu() { QTreeWidgetItem* item = currentItem(); QString title = tr("New Menu"); MenuBarSubmenuItem * insItem = new MenuBarSubmenuItem(0, title); if (!item) addTopLevelItem(insItem); else if (indexOfTopLevelItem(item) >= 0) insertTopLevelItem(indexOfTopLevelItem(item), insItem); else item->parent()->insertChild(item->parent()->indexOfChild(item), insItem); }
void MenuBarTree::removeItem() { QTreeWidgetItem* item = currentItem(); if (!item) return; if (indexOfTopLevelItem(item) >= 0) takeTopLevelItem(indexOfTopLevelItem(item)); else item->parent()->removeChild(item); delete item; }
void QvvTreeWidget::findNext( QString str, int full_match ) { QTreeWidgetItem *lwi = currentItem(); int i; int start; int x = topLevelItemCount(); i = indexOfTopLevelItem( lwi ); start = i; if( x <= 1 or i < 0 ) return; // not found or empty list while(4) { i++; if( i >= x ) i = 0; if( i == start ) break; lwi = topLevelItem( i ); if( full_match && lwi->text( 1 ).toUpper() == str.toUpper() ) break; if( ! full_match && lwi->text( 1 ).toUpper().indexOf( str.toUpper() ) == 0 ) break; lwi = NULL; } if( lwi ) { setCurrentItem( lwi ); scrollToItem( lwi ); } }
void SummaryTree::contextMenuEvent(QContextMenuEvent *event) { QMenu *contextMenu = new QMenu(this); QTreeWidgetItem *curItem = currentItem(); if (! curItem) { contextMenu->addAction(addTaskAction); contextMenu->exec(QCursor::pos()); delete contextMenu; return; } int index = indexOfTopLevelItem(curItem); if (index != -1) { contextMenu->addAction(addTaskAction); contextMenu->addAction(deleteTaskAction); contextMenu->addSeparator(); contextMenu->addAction(addTestCaseAction); contextMenu->addAction(addTestCasesAction); contextMenu->exec(QCursor::pos()); delete contextMenu; } else { contextMenu->addAction(addTaskAction); contextMenu->addAction(deleteTaskAction); contextMenu->addSeparator(); contextMenu->addAction(addTestCaseAction); contextMenu->addAction(addTestCasesAction); contextMenu->addAction(deleteTestCaseAction); contextMenu->exec(QCursor::pos()); delete contextMenu; } }
void QKeyList::contextMenuEvent(QContextMenuEvent* evt) { QMenu menu(this); QAction* addObjItem = menu.addAction(tr("Add Object")); QAction* delObjItem = menu.addAction(tr("Remove Object")); if (currentItem() == NULL) delObjItem->setEnabled(false); QAction* sel = menu.exec(evt->globalPos()); if (sel == addObjItem) { QFindKeyDialog dlg(this); if (fKeys.size() > 0) dlg.init(PrpShopMain::ResManager(), fKeys.back()->getLocation(), fKeys.back()->getType()); else dlg.init(PrpShopMain::ResManager(), fContainer->getLocation()); if (dlg.exec() == QDialog::Accepted) { addKey(dlg.selection()); emit itemAdded(dlg.selection()); } } else if (sel == delObjItem) { int idx = indexOfTopLevelItem(currentItem()); delItem(idx); emit itemRemoved(idx); } }
void PlayerListWidget::removePlayer(int playerId) { QTreeWidgetItem *player = players.value(playerId, 0); if (!player) return; players.remove(playerId); delete takeTopLevelItem(indexOfTopLevelItem(player)); }
void SummaryTree::itemChanged(QTreeWidgetItem *item) { int index = indexOfTopLevelItem(item); if (index != -1) { Task *curTask = curContest->getTask(index); curTask->setProblemTitle(item->text(0)); } }
CSProperties* QCSTreeWidget::GetCurrentProperty() { QTreeWidgetItem* curr=currentItem(); if (curr==NULL) return NULL; if (curr->type()==PRIMTYPE) curr=curr->parent(); if (curr==NULL) return NULL; return clCS->GetProperty(indexOfTopLevelItem(curr)); }
void SummaryTree::addTestCase() { QTreeWidgetItem *curItem = currentItem(); if (indexOfTopLevelItem(curItem) == -1) curItem = curItem->parent(); int index = indexOfTopLevelItem(curItem); Task *curTask = curContest->getTask(index); TestCase *newTestCase = new TestCase; newTestCase->setFullScore(settings->getDefaultFullScore()); newTestCase->setTimeLimit(settings->getDefaultTimeLimit()); newTestCase->setMemoryLimit(settings->getDefaultMemoryLimit()); curTask->addTestCase(newTestCase); QTreeWidgetItem *newItem = new QTreeWidgetItem(curItem); newItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); newItem->setText(0, tr("Test Case #%1").arg(curItem->childCount())); setCurrentItem(newItem); }
void ObjectInspectorTable::mousePressEvent(QMouseEvent *event) { QTreeWidget::mousePressEvent(event); if ( selectedItems().count() == 1 && m_objectMap[selectedItems().at(0)] == 0 ) { // seul un calque est sélectionné, on selectionne les sous élements sous le calque QTreeWidgetItem *selectedLayout = selectedItems().at(0); for (int i=0; i<selectedLayout->childCount(); ++i) { selectedLayout->child(i)->setSelected(true); } // on vient de sélectionner un layout donc on peut agir dessus emit currentLayoutIsUppable( indexOfTopLevelItem(selectedLayout) > 0 ); emit currentLayoutIsDownable( indexOfTopLevelItem(selectedLayout) < topLevelItemCount() - 1 ); } else { emit currentLayoutIsUppable(false); emit currentLayoutIsDownable(false); } updateMapSelection(); }
int QcTreeWidget::indexOfItem( const QcTreeWidget::ItemPtr & item ) { if( !item ) return -1; QTreeWidgetItem *parent = item->parent(); if( parent ) return parent->indexOfChild( item ); else return indexOfTopLevelItem( item ); }
void ScTreeWidget::handleMousePress(QTreeWidgetItem *item) { if (item == 0) return; if (item->parent() == 0) { if (item->isDisabled()) { setItemExpanded(item, false); return; } int wide = 0; int tops = topLevelItemCount(); if (m_toolbox_mode) { for (int t = 0; t < tops; t++) { setItemExpanded(topLevelItem(t), false); } setCurrentItem(item); setItemExpanded(item, true); if (item->childCount() != 0) { QTreeWidgetItem *child = item->child(0); if (child != 0) wide = itemWidget(child, 0)->minimumSizeHint().width()+5; } if (wide != 0) setColumnWidth(0, wide); else resizeColumnToContents(0); } else { setItemExpanded(item, !isItemExpanded(item)); for (int t = 0; t < tops; t++) { QTreeWidgetItem *top = topLevelItem(t); if (isItemExpanded(top)) { if (top->childCount() != 0) { QTreeWidgetItem *child = top->child(0); if (child != 0) wide = qMax(wide, itemWidget(child, 0)->minimumSizeHint().width()+5); } } } } if (wide != 0) setColumnWidth(0, wide); else resizeColumnToContents(0); emit currentChanged2(indexOfTopLevelItem(item)); } }
QList<QTreeWidgetItem*> TrackerList::getSelectedTrackerItems() const { const QList<QTreeWidgetItem*> selected_items = selectedItems(); QList<QTreeWidgetItem*> selected_trackers; foreach (QTreeWidgetItem *item, selected_items) { if (indexOfTopLevelItem(item) >= NB_STICKY_ITEM) { // Ignore STICKY ITEMS selected_trackers << item; } } return selected_trackers; }
void SummaryTree::deleteTask() { if (QMessageBox::warning(this, tr("Lemon"), tr("Are you sure to delete this task?"), QMessageBox::Yes, QMessageBox::Cancel) == QMessageBox::Cancel) return; QTreeWidgetItem *curItem = currentItem(); if (indexOfTopLevelItem(curItem) == -1) curItem = curItem->parent(); int index = indexOfTopLevelItem(curItem); if (index + 1 < topLevelItemCount()) setCurrentItem(topLevelItem(index + 1)); else if (index - 1 >= 0) setCurrentItem(topLevelItem(index - 1)); else setCurrentItem(0); delete curItem; curContest->deleteTask(index); }
void GomVodTreeView::expandVod(QTreeWidgetItem * item) { openPersistentEditor(item); int index = indexOfTopLevelItem(item); topLevelItems_.at(index)->fetchChildren(); for(int i(0); i < item->childCount(); ++ i) openPersistentEditor(item->child(i)); }
void TupItemManager::removeCurrentFolder() { if (m_currentFolder) { int index = indexOfTopLevelItem(m_currentFolder) - 1; delete m_currentFolder; m_currentFolder = topLevelItem (index); setCurrentItem(m_currentFolder); } }
void SummaryTree::deleteTestCase() { QTreeWidgetItem *curItem = currentItem(); QTreeWidgetItem *parentItem = curItem->parent(); int taskIndex = indexOfTopLevelItem(parentItem); int testCaseIndex = parentItem->indexOfChild(curItem); Task *curTask = curContest->getTask(taskIndex); delete curItem; curTask->deleteTestCase(testCaseIndex); for (int i = 0; i < parentItem->childCount(); i ++) parentItem->child(i)->setText(0, tr("Test Case #%1").arg(i + 1)); }
void KGraphEditorElementTreeWidget::slotRemoveAttribute() { kDebug() << "Remove Attribute"; if (m_item == 0) // should not happen { kError() << "null item ; should not happen" << endl; return; } emit removeAttribute(m_item->text(0)); delete takeTopLevelItem (indexOfTopLevelItem(m_item)); m_item = 0; }
void widgets::erase_record_from_the_tree( async::key_type const& key, async::cached_resource_info const& info ) { TMPROF_BLOCK(); QTreeWidgetItem* data_type_node = nullptr; { auto const items = findItems(QString(key.get_data_type_name().c_str()), Qt::MatchFlag::MatchExactly, 0); if (items.empty()) return; INVARIANT(items.size() == 1); data_type_node = items.front(); } QTreeWidgetItem* uid_node = nullptr; { std::string const uid = get_tree_resource_uid(key); for (int i = 0, n = data_type_node->childCount(); i != n; ++i) { auto const item = data_type_node->child(i); std::string const item_name = qtgl::to_string(item->text(0)); if (item_name == uid) { uid_node = item; break; } } } if (uid_node != nullptr) { if (qtgl::to_string(uid_node->text(0)) != key.get_unique_id()) { std::string const item_refs_name = qtgl::to_string(uid_node->text(1)); int const old_num_refs = std::atoi(item_refs_name.c_str()); if (old_num_refs - info.get_ref_count() > 0) uid_node->setText(1, QString(std::to_string(old_num_refs - info.get_ref_count()).c_str())); else delete data_type_node->takeChild(data_type_node->indexOfChild(uid_node)); } else delete data_type_node->takeChild(data_type_node->indexOfChild(uid_node)); } if (data_type_node->childCount() == 0) delete takeTopLevelItem(indexOfTopLevelItem(data_type_node)); else { std::string const item_refs_name = qtgl::to_string(data_type_node->text(1)); int const old_num_refs = std::atoi(item_refs_name.c_str()); data_type_node->setText(1, QString(std::to_string(old_num_refs - info.get_ref_count()).c_str())); } }
void ObjectInspectorTable::dropEvent(QDropEvent *event) { if ( event->source() == this ) { QTreeWidgetItem *target = itemAt(event->pos()); if ( target ) { if ( m_objectMap[target] ) { // on est pas sur un layout ! target = target->parent(); } foreach (QTreeWidgetItem *it, selectedItems()) { if ( m_objectMap[it] ) { // on est pas sur un layout ! // re retrouve le layout source QTreeWidgetItem *source = it; if ( m_objectMap[source] ) { // on est pas sur un layout ! source = source->parent(); } // source != target ? if (source != target) { source->removeChild(it); target->addChild(it); m_objectMap[it]->setZValue(-indexOfTopLevelItem(target) - 1); Log::d("ObjectInspectorTable") << "dropEvent, zIndex = " << -indexOfTopLevelItem(target) - 1; m_objectMap[it]->setVisible( target->checkState(0) == Qt::Checked ); target->setExpanded(true); } else { Log::w("ObjectInspectorTable") << "drop event, source == target"; } } } Log::d("ObjectInspectorTable") << "drop event, target = " << target->data(0, Qt::DisplayRole).toString(); } event->accept(); } else { // mauvais format mine
void ObjectInspectorTable::addRow(GraphicsObject *object, int layoutNumber) { QTreeWidgetItem *current_item = currentItem(); // si rien n'est sélectionné, on selectionne au moins un calque (le premier qu'on trouve...) if ( ! current_item ) { m_objectMap.key(0)->setSelected(true); current_item = m_objectMap.key(0); } QTreeWidgetItem *parent; // sous quel parent on va placer cet item if ( layoutNumber != 0 ) { // numéro de layout spécifié parent = topLevelItem(-layoutNumber-1); } else { // la numéro de layout n'est pas renseigné if ( ! m_objectMap[current_item] ) { // on est sur un layout, on se placera dessous parent = current_item; } else { // on est sur un item, on se placera au même niveau parent = current_item->parent(); } } QStringList itemStringList; itemStringList << object->scriptingName() << object->description(); QTreeWidgetItem *item = new QTreeWidgetItem(itemStringList); item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsDragEnabled); item->setIcon(1, object->pixmap()); parent->addChild(item); Log::d("ObjectInspectorTable") << "addRow, zIndex = " << -indexOfTopLevelItem(parent) - 1; object->setZValue(-indexOfTopLevelItem(parent) - 1); object->setVisible( parent->checkState(0) == Qt::Checked ); parent->setExpanded(true); m_objectMap[item] = object; }
void ExitsTreeWidget::keyPressEvent ( QKeyEvent * event ) { if (event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) { closePersistentEditor( currentItem(), 1 ); closePersistentEditor( currentItem(), 2 ); } if (event->key() == Qt::Key_Delete && hasFocus() ) { QList<QTreeWidgetItem *> selection = selectedItems(); foreach(QTreeWidgetItem *item, selection) { takeTopLevelItem(indexOfTopLevelItem(item)); }
/** * removes and deletes an item from MTreeWidget * shouldn't be used on its own, only called from destroy() by a core object * \param item from a list which we want to remove * \return object linked to an item being removed */ void MTreeWidget::remove(MTreeWidgetItem* item) { // no item given to remove, we take selected // atm this shouldn't happen, because we always call this with a param if (!item) item = selected(); // no item selected if (!item) return; // remove from widget takeTopLevelItem(indexOfTopLevelItem(item)); }
void TrackerList::moveSelectionUp() { BitTorrent::TorrentHandle *const torrent = properties->getCurrentTorrent(); if (!torrent) { clear(); return; } QList<QTreeWidgetItem *> selected_items = getSelectedTrackerItems(); if (selected_items.isEmpty()) return; bool change = false; foreach (QTreeWidgetItem *item, selected_items) { int index = indexOfTopLevelItem(item); if (index > NB_STICKY_ITEM) { insertTopLevelItem(index-1, takeTopLevelItem(index)); change = true; } }
void lcTimelineWidget::RemoveStep() { QTreeWidgetItem* CurrentItem = currentItem(); if (!CurrentItem) return; if (CurrentItem->parent()) CurrentItem = CurrentItem->parent(); int Step = indexOfTopLevelItem(CurrentItem); if (Step == -1) return; lcGetActiveModel()->RemoveStep(Step + 1); }
void SummaryTree::selectionChanged() { if (! isEnabled()) return; QTreeWidgetItem *curItem = currentItem(); if (! curItem) { deleteTaskKeyAction->setEnabled(false); deleteTestCaseKeyAction->setEnabled(false); return; } int index = indexOfTopLevelItem(curItem); if (index != -1) { deleteTaskKeyAction->setEnabled(true); deleteTestCaseKeyAction->setEnabled(false); } else { deleteTaskKeyAction->setEnabled(false); deleteTestCaseKeyAction->setEnabled(true); } }