Ejemplo n.º 1
0
    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();
        }
    }
Ejemplo n.º 2
0
    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();
        }
    }
Ejemplo n.º 3
0
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--;
        }
    }
}
Ejemplo n.º 4
0
    //@{
    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();
    }
Ejemplo n.º 5
0
 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);
             }
         }
     }       
 }
Ejemplo n.º 6
0
/*
 * 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;
}
Ejemplo n.º 7
0
    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();
    }
Ejemplo n.º 8
0
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);
}
Ejemplo n.º 10
0
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);
}
Ejemplo n.º 11
-1
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();
}