void moveDownClicked() { QList<QTreeWidgetItem*> selectedPaths = m_treeView->selectedItems(); if( selectedPaths.isEmpty() ) { return; } else if( m_treeView->indexOfTopLevelItem(selectedPaths.last()) == m_treeView->topLevelItemCount() -1) { return; } else { // Retrieves the value that is before the first selected row. int index = m_treeView->indexOfTopLevelItem( selectedPaths.last() ); QTreeWidgetItem* newRow = m_treeView->takeTopLevelItem(index); newRow->setFlags(newRow->flags() | Qt::ItemIsEditable); m_treeView->insertTopLevelItem( index + 1, newRow); newRow->setSelected(true); m_treeView->topLevelItem(index)->setSelected(false); rebuildRowIndexes(); // Sends a change notification. Q_EMIT signalChanged(); } }
void moveUpClicked() { QList<QTreeWidgetItem*> selectedPaths = m_treeView->selectedItems(); if( selectedPaths.isEmpty() ) { return; } else if( m_treeView->indexOfTopLevelItem(selectedPaths.last()) == 0 ) { return; } else { int index = m_treeView->indexOfTopLevelItem( selectedPaths.last() ); QTreeWidgetItem* newRow = m_treeView->takeTopLevelItem(index); if(index < m_treeView->topLevelItemCount()) { m_treeView->topLevelItem(index)->setSelected(false); } else { m_treeView->topLevelItem(m_treeView->topLevelItemCount() - 1 )->setSelected(false); } newRow->setFlags(newRow->flags() | Qt::ItemIsEditable); m_treeView->insertTopLevelItem( index - 1, newRow); newRow->setSelected(true); rebuildRowIndexes(); // Sends a change notification. Q_EMIT signalChanged(); } }
void QTreeWidgetItemIteratorPrivate::ensureValidIterator(const QTreeWidgetItem *itemToBeRemoved) { Q_Q(QTreeWidgetItemIterator); Q_ASSERT(itemToBeRemoved); if (!q->current) return; QTreeWidgetItem *nextItem = q->current; // Do not walk to the ancestor to find the other item if they have the same parent. if (nextItem->parent() != itemToBeRemoved->parent()) { while (nextItem->parent() && nextItem != itemToBeRemoved) { nextItem = nextItem->parent(); } } // If the item to be removed is an ancestor of the current iterator item, // we need to adjust the iterator. if (nextItem == itemToBeRemoved) { QTreeWidgetItem *parent = nextItem; nextItem = 0; while (parent && !nextItem) { nextItem = nextSibling(parent); parent = parent->parent(); } if (nextItem) { // Ooooh... Set the iterator to the next valid item *q = QTreeWidgetItemIterator(nextItem, q->flags); if (!(q->matchesFlags(nextItem))) ++(*q); } else { // set it to null. q->current = 0; m_parentIndex.clear(); return; } } if (nextItem->parent() == itemToBeRemoved->parent()) { // They have the same parent, i.e. we have to adjust the m_currentIndex member of the iterator // if the deleted item is to the left of the nextItem. QTreeWidgetItem *par = itemToBeRemoved->parent(); // We know they both have the same parent. QTreeWidget *tw = itemToBeRemoved->treeWidget(); // ..and widget int indexOfItemToBeRemoved = par ? par->indexOfChild(const_cast<QTreeWidgetItem *>(itemToBeRemoved)) : tw->indexOfTopLevelItem(const_cast<QTreeWidgetItem *>(itemToBeRemoved)); int indexOfNextItem = par ? par->indexOfChild(nextItem) : tw->indexOfTopLevelItem(nextItem); if (indexOfItemToBeRemoved <= indexOfNextItem) { // A sibling to the left of us was deleted, adjust the m_currentIndex member of the iterator. // Note that the m_currentIndex will be wrong until the item is actually removed! m_currentIndex--; } } }
//@{ void addClicked() { QTreeWidgetItem *newRow = 0; QList<QTreeWidgetItem*> selectedPaths = m_treeView->selectedItems(); if(selectedPaths.empty()) { newRow = new QTreeWidgetItem( m_treeView ); } else { newRow = new QTreeWidgetItem(); m_treeView->insertTopLevelItem(m_treeView->indexOfTopLevelItem(selectedPaths.last()) + 1, newRow); } if(newRow) { newRow->setFlags(newRow->flags() | Qt::ItemIsEditable); m_adapter.updateToRow(newRow, typename MFAdapter::value_type()); updateLabel(); rebuildRowIndexes(); } Q_EMIT signalChanged(); }
void ExplorerServerTreeItem::ui_disconnectServer() { QTreeWidget * view = dynamic_cast<QTreeWidget *>(BaseClass::treeWidget()); if(view){ int index = view->indexOfTopLevelItem(this); if (index != -1) { QTreeWidgetItem *removedItem = view->takeTopLevelItem(index); if (removedItem) { delete removedItem; AppRegistry::instance().app()->closeServer(_server); } } } }
/* * Implementation of QTreeWidgetItemIteratorPrivate */ QTreeWidgetItem* QTreeWidgetItemIteratorPrivate::nextSibling(const QTreeWidgetItem* item) const { Q_ASSERT(item); QTreeWidgetItem *next = 0; if (QTreeWidgetItem *par = item->parent()) { int i = par->indexOfChild(const_cast<QTreeWidgetItem*>(item)); next = par->child(i + 1); } else { QTreeWidget *tw = item->treeWidget(); int i = tw->indexOfTopLevelItem(const_cast<QTreeWidgetItem*>(item)); next = tw->topLevelItem(i + 1); } return next; }
void removeClicked() { QList<QTreeWidgetItem*> selectedPaths = m_treeView->selectedItems(); for( int i = selectedPaths.size() - 1; i >= 0; --i ) { m_treeView->takeTopLevelItem( m_treeView->indexOfTopLevelItem( selectedPaths.last() ) ); selectedPaths.pop_back(); } rebuildRowIndexes(); updateLabel(); Q_EMIT signalChanged(); }
void move_to_sorted_position(QTreeWidgetItem* item) { assert(item); if (item->parent()) { QTreeWidgetItem* parent = item->parent(); parent->removeChild(item); parent->insertChild(find_sorted_position(parent, item->text(0)), item); } else if (item->treeWidget()) { QTreeWidget* parent = item->treeWidget(); parent->takeTopLevelItem(parent->indexOfTopLevelItem(item)); parent->insertTopLevelItem(find_sorted_position(parent, item->text(0)), item); } }
dmz::V8Value dmz::JsModuleUiV8QtBasic::_tree_index_of (const v8::Arguments &Args) { v8::HandleScope scope; V8Value result = v8::Undefined (); JsModuleUiV8QtBasic *self = _to_self (Args); if (self) { QTreeWidget *tree = self->v8_to_qobject<QTreeWidget>(Args.This ()); if (tree) { if (Args.Length ()) { QTreeWidgetItem *item = self->_to_qtreewidgetitem (Args[0]); if (item) { result = v8::Number::New (tree->indexOfTopLevelItem (item)); } } } } return scope.Close (result); }
bool CopyReplaceDlg::eventFilter (QObject *target, QEvent *event) { QTreeWidget * tv = qobject_cast<QTreeWidget*>(target); if (tv != NULL) { if( event->type() == QEvent::KeyPress ){ QKeyEvent * keyEvent = static_cast<QKeyEvent*>(event); if (keyEvent->key() == Qt::Key_Delete) { QTreeWidgetItem * crt = tv->currentItem (); if (crt != NULL) { if (!isNewCommandEntry(crt)) { int i = tv->indexOfTopLevelItem (crt); tv->takeTopLevelItem (i); delete crt; return true; } } } } } return QDialog::eventFilter (target, event); }
void PlaylistDialog::o_upBClicked() { timer->stop(); Playlist* pPlaylist = Playlist::get_instance(); QTreeWidget* pPlaylistTree = m_pPlaylistTree; QTreeWidgetItem* pPlaylistTreeItem = m_pPlaylistTree->currentItem(); int index = pPlaylistTree->indexOfTopLevelItem ( pPlaylistTreeItem ); if (index == 0 ){ timer->start( 1000 ); return; } QTreeWidgetItem* tmpPlaylistItem = pPlaylistTree->takeTopLevelItem ( index ); pPlaylistTree->insertTopLevelItem ( index -1, tmpPlaylistItem ); pPlaylistTree->setCurrentItem ( tmpPlaylistItem ); if ( pPlaylist->getSelectedSongNr() >= 0 ){ pPlaylist->setSelectedSongNr( pPlaylist->getSelectedSongNr() -1 ); } if ( pPlaylist->getActiveSongNumber() == index ){ pPlaylist->setActiveSongNumber( pPlaylist->getActiveSongNumber() -1 ); }else if ( pPlaylist->getActiveSongNumber() == index -1 ){ pPlaylist->setActiveSongNumber( pPlaylist->getActiveSongNumber() +1 ); } updatePlayListVector(); }