Esempio n. 1
0
void SourceView::doUpdate(int changeType)
{
  // Special case ?
  if (changeType == selectedItemChanged) {

      if (!_selectedItem) {
	  clearSelection();
	  return;
      }

      TraceLine* sLine = 0;
      if (_selectedItem->type() == TraceItem::Line)
	  sLine = (TraceLine*) _selectedItem;
      if (_selectedItem->type() == TraceItem::Instr)
	  sLine = ((TraceInstr*)_selectedItem)->line();

      SourceItem* si = (SourceItem*)QListView::selectedItem();
      if (si) {
	  if (si->line() == sLine) return;
	  if (si->lineCall() &&
	      (si->lineCall()->call()->called() == _selectedItem)) return;
      }

      QListViewItem *item, *item2;
      for (item = firstChild();item;item = item->nextSibling()) {
	  si = (SourceItem*)item;
	  if (si->line() == sLine) {
	      ensureItemVisible(item);
              _inSelectionUpdate = true;
	      setCurrentItem(item);
              _inSelectionUpdate = false;
	      break;
	  }
	  item2 = item->firstChild();
	  for (;item2;item2 = item2->nextSibling()) {
	      si = (SourceItem*)item2;
	      if (!si->lineCall()) continue;
	      if (si->lineCall()->call()->called() == _selectedItem) {
		  ensureItemVisible(item2);
                  _inSelectionUpdate = true;
		  setCurrentItem(item2);
                  _inSelectionUpdate = false;
		  break;
	      }
	  }
	  if (item2) break;
      }
      return;
  }

  if (changeType == groupTypeChanged) {
    QListViewItem *item, *item2;
    for (item = firstChild();item;item = item->nextSibling())
      for (item2 = item->firstChild();item2;item2 = item2->nextSibling())
        ((SourceItem*)item2)->updateGroup();
  }

  refresh();
}
Esempio n. 2
0
void CardView::setCurrentItem( CardViewItem *item )
{
  if ( !item )
    return;
  else if ( item->cardView() != this ) {
    kDebug(5720)<<"CardView::setCurrentItem: Item ("<<item<<") not owned! Backing out..";
    return;
  } else if ( item == currentItem() ) {
    return;
  }

  if ( d->mSelectionMode == Single ) {
    setSelected( item, true );
  } else {
    CardViewItem *it = d->mCurrentItem;
    d->mCurrentItem = item;
    if ( it )
      it->repaintCard();

    item->repaintCard();
  }

  if ( ! d->mOnSeparator )
    ensureItemVisible( item );

  emit currentChanged( item );
}
Esempio n. 3
0
void SpawnPointList::handleSelChanged(const SpawnPoint* sp)
{
  QListViewItemIterator it(this);

  SpawnPointListItem* splitem;
  
  // keep iterating until we find a match
  while (it.current())
  {
    splitem = (SpawnPointListItem*)it.current();

    // is this the current item
    if (splitem->spawnPoint() == sp)
    {
      // yes, set it as the selected item in the spawn list
      setSelected(splitem, true);
      
      // ensure that the item is visible
      ensureItemVisible(splitem);

      break;
    }
    ++it;
  }
}
Esempio n. 4
0
/*
void ModuleTreeView::expandItem(QListViewItem *item, QPtrList<QListViewItem> *parentList)
{
  while (item)
    {
      setOpen(item, parentList->contains(item));

          if (item->childCount() != 0)
                expandItem(item->firstChild(), parentList);
      item = item->nextSibling();
    }
}
*/
void ModuleTreeView::makeVisible(ConfigModule *module)
{
  QString path = _modules->findModule(module);
  if (path.startsWith(KCGlobal::baseGroup()))
     path = path.mid(KCGlobal::baseGroup().length());

  QStringList groups = QStringList::split('/', path);

  ModuleTreeItem *item = 0;
  QStringList::ConstIterator it;
  for (it=groups.begin(); it != groups.end(); ++it)
  {
     if (item)
        item = static_cast<ModuleTreeItem*>(item->firstChild());
     else
        item = static_cast<ModuleTreeItem*>(firstChild());

     while (item)
     {
        if (item->tag() == *it)
        {
           setOpen(item, true);
           break;
        }
        item = static_cast<ModuleTreeItem*>(item->nextSibling());
     }
     if (!item)
        break; // Not found (?)
  }

  // make the item visible
  if (item)
    ensureItemVisible(item);
}
Esempio n. 5
0
void ZLQtSelectionDialogListView::keyPressEvent(QKeyEvent *event) {
	QListViewItem *item = currentItem();
	switch(event->key()) {
		case Key_Enter:
		case Key_Return:
			if (item != 0)
				emit returnPressed(item);
			return;
		case Key_Down:
			item = item->itemBelow();
			if (item == 0) {
				item = firstChild();
			}
			break;
		case Key_Up:
			item = item->itemAbove();
			if (item == 0) {
				item = firstChild();
				while (item->nextSibling() != 0) {
					item = item->nextSibling();
				}
				while (item->itemBelow() != 0) {
					item = item->itemBelow();
				}
			}		
			break;
		default:
			QListView::keyPressEvent(event);
	}

	if (item != 0) {
		setCurrentItem(item);
		ensureItemVisible(item);
	}
}
Esempio n. 6
0
void FOListView::rename_item(QListViewItem *i)
{
  if (le_==0)
  {
    le_ = new RenameLineEdit(this);
    connect(le_, SIGNAL(lost_focus()), this, SLOT(rename()));
  }

  rename_item_=(FOListViewItem *)i;

  qDebug("in rename_item(QListViewItem *i)");
  int header_height = header()->height();
  QRect r = itemRect(i);
  r.setTop( r.top() + frameWidth() + 1 + header_height);
  r.setBottom( r.bottom() + frameWidth() + header_height);
  r.setLeft( r.left() + cal_step_size(i));
  //r.setWidth( current( 0 ) );
  ensureItemVisible(i);
  horizontalScrollBar()->setValue(0);
  horizontalScrollBar()->setEnabled(false);
  verticalScrollBar()->setEnabled(false);
  le_->setGeometry( r );
  QString fn=i->text(0);
  if (fn[fn.length()-1]=='/')
    fn.remove(fn.length()-1,1);
  le_->setText(fn);
  le_->selectAll();
  le_->show();
  le_->setFocus();
}
Esempio n. 7
0
void QTodoList::jumpToLast()
{
	QTodoListIterator it(this);
	it.goTo(it.count()-1);
	if(QTodoItem* item = it.item())
		ensureItemVisible(item);
}
Esempio n. 8
0
void UserListBase::deleteItem(QListViewItem *item)
{
    if (item == NULL)
        return;
    if (item == currentItem()){
        QListViewItem *nextItem = item->nextSibling();
        if (nextItem == NULL){
            if (item->parent()){
                nextItem = item->parent()->firstChild();
            }else{
                nextItem = firstChild();
            }
            for (; nextItem ; nextItem = nextItem->nextSibling())
                if (nextItem->nextSibling() == item)
                    break;
        }
        if (nextItem == NULL)
            nextItem = item->parent();
        if (nextItem){
            QString s = nextItem->text(0);
            setCurrentItem(nextItem);
            ensureItemVisible(nextItem);
        }
    }
    delete item;
}
Esempio n. 9
0
void KNCollectionView::selectCurrentFolder()
{
    KFolderTreeItem *fti = static_cast<KFolderTreeItem *>(currentItem());
    if(fti)
    {
        ensureItemVisible(fti);
        setActive(fti);
    }
}
Esempio n. 10
0
bool PropertyEditor::handleKeyPress(QKeyEvent* ev) {
    const int k = ev->key();
    const Qt::ButtonState s = ev->state();

    //selection moving
    QListViewItem *item = 0;

    if ((s == NoButton && k == Key_Up) || k == Key_BackTab) {
        //find prev visible
        item = selectedItem() ? selectedItem()->itemAbove() : 0;
        while (item && (!item->isSelectable() || !item->isVisible()))
            item = item->itemAbove();

        if (!item)
            return true;
    } else if (s == NoButton && (k == Key_Down || k == Key_Tab)) {
        //find next visible
        item = selectedItem() ? selectedItem()->itemBelow() : 0;
        while (item && (!item->isSelectable() || !item->isVisible()))
            item = item->itemBelow();

        if (!item)
            return true;
    } else if (s == NoButton && k == Key_Home) {
        if (m_currentEditor && m_currentEditor->hasFocus())
            return false;

        //find 1st visible
        item = firstChild();
        while (item && (!item->isSelectable() || !item->isVisible()))
            item = item->itemBelow();
    } else if (s == NoButton && k == Key_End) {
        if (m_currentEditor && m_currentEditor->hasFocus())
            return false;

        //find last visible
        item = selectedItem();
        QListViewItem *lastVisible = item;
        while (item) { // && (!item->isSelectable() || !item->isVisible()))
            item = item->itemBelow();
            if (item && item->isSelectable() && item->isVisible())
                lastVisible = item;
        }

        item = lastVisible;
    }

    if (item) {
        ev->accept();
        ensureItemVisible(item);
        setSelected(item, true);
        return true;
    }

    return false;
}
Esempio n. 11
0
void HighscoresList::load(const ItemArray &items, int highlight)
{
    clear();
    QListViewItem *line = 0;
    for (int j=items.nbEntries()-1; j>=0; j--) {
        QListViewItem *item = addLine(items, j, j==highlight);
        if ( j==highlight ) line = item;
    }
    if (line) ensureItemVisible(line);
}
Esempio n. 12
0
void KNCollectionView::incCurrentFolder()
{
    QListViewItemIterator it(currentItem());
    ++it;
    KFolderTreeItem *fti = static_cast<KFolderTreeItem *>(it.current());
    if(fti)
    {
        ensureItemVisible(fti);
        setFocus();
        setCurrentItem(fti);
    }
}
void CModuleChooser::show() {
	KListView::show();

	//open module items
	QListViewItemIterator it( this );
	for ( ; it.current(); ++it ) {
		if ( ModuleCheckBoxItem* i = dynamic_cast<ModuleCheckBoxItem*>(it.current()) ) {
			if (i->isOn()) {
				ensureItemVisible(i);
			};
		}
	}
}
Esempio n. 14
0
void HierarchyList::insertEntry( QListViewItem *i, const QPixmap &pix, const QString &s )
{
    HierarchyItem *item = new HierarchyItem( getChildType( i->rtti() ), i, s,
               QString::null, QString::null );
    if ( !pix.isNull() )
  item->setPixmap( 0, pix );
    item->setRenameEnabled( 0, true );
    setCurrentItem( item );
    ensureItemVisible( item );
    qApp->processEvents();
    newItem = item;
    item->startRename( 0 );
}
Esempio n. 15
0
void PropertyEditor::setFocus() {
    PropertyEditorItem *item = static_cast<PropertyEditorItem *>(selectedItem());

    if (item) {
        if (!justClickedItem)
            ensureItemVisible(item);

        justClickedItem = false;
    } else {
        //select an item before focusing
        item = static_cast<PropertyEditorItem *>(itemAt(QPoint(10, 1)));

        if (item) {
            ensureItemVisible(item);
            setSelected(item, true);
        }
    }

    if (m_currentEditor)
        m_currentEditor->setFocus();
    else KListView::setFocus();
}
Esempio n. 16
0
void HierarchyList::setCurrent( QWidget *w )
{
    QListViewItemIterator it( this );
    while ( it.current() ) {
  if ( ( (HierarchyItem*)it.current() )->widget() == w ) {
      blockSignals( true );
      setCurrentItem( it.current() );
      ensureItemVisible( it.current() );
      blockSignals( false );
      return;
  }
  ++it;
    }
}
Esempio n. 17
0
void K3bFileTreeView::followUrl( const KURL& url )
{
  // TODO: first try the current branch
  KFileTreeBranchIterator it( branches() );
  for( ; *it; ++it ) {
    if( !d->branchDeviceMap.contains( *it ) )
      if( KFileTreeViewItem* item = (*it)->findTVIByURL( url ) ) {
	setCurrentItem( item );
	setSelected(item, true);
	ensureItemVisible( item );
	return;
      }
  }
}
Esempio n. 18
0
void DirTreeView::mark_cur_item(const std::string &bn)
{
  if (bn=="..")
  {
    if (currentItem()->parent())
    {
      setCurrentItem(currentItem()->parent());  
      // because now currentItem already changed.
      ensureItemVisible(currentItem() );
    }
  }
  for (QListViewItem *cur_i=currentItem()->firstChild() ; cur_i ; cur_i=cur_i->nextSibling() )
  {
    std::string txt=((FOListViewItem *)cur_i)->basename();
    //if (txt[txt.length()-1]=='/')
      //txt.erase(txt.length()-1);
    //cout << "mark item : " << txt.c_str() << endl;
    if (txt==bn)
    {
      setCurrentItem(cur_i);  
      ensureItemVisible(cur_i);
    }
  }
}
Esempio n. 19
0
/******************************************************************************
*  Refresh the list by clearing it and redisplaying all the current alarms.
*/
void EventListViewBase::refresh()
{
    QString currentID;
    if (currentItem())
        currentID = currentItem()->event().id();    // save current item for restoration afterwards
    clear();
    populate();
    resizeLastColumn();
    EventListViewItemBase* current = getEntry(currentID);
    if (current)
    {
        setCurrentItem(current);
        ensureItemVisible(current);
    }
}
Esempio n. 20
0
void
QueueList::moveSelectedDown() // SLOT
{
    QPtrList<QListViewItem> list = selectedItems();

    for( QListViewItem *item  = list.last(); item; item = list.prev() )
    {
        QListViewItem *after = item->nextSibling();

        if( !after )
            continue;

        moveItem( item, 0, after );
    }

    ensureItemVisible( list.last() );
}
Esempio n. 21
0
void CoverageView::doUpdate(int changeType)
{
    // Special case ?
    if (changeType == selectedItemChanged) {

	if (!_selectedItem) {
	    clearSelection();
	    return;
	}

	TraceFunction* f = 0;
	QListViewItem* i = QListView::selectedItem();
	if (i) {
	    f = _showCallers ?
		((CallerCoverageItem*)i)->function() :
		((CalleeCoverageItem*)i)->function();
	}
	if (f == _selectedItem) return;

	QListViewItem *item;
	for (item = firstChild();item;item = item->nextSibling()) {
	    f = _showCallers ?
		((CallerCoverageItem*)item)->function() :
		((CalleeCoverageItem*)item)->function();
	    if (f == _selectedItem) {
		ensureItemVisible(item);
		setCurrentItem(item);
		break;
	    }
	}
	return;
    }

    if (changeType == groupTypeChanged) {
	QListViewItem *item;
	for (item = firstChild();item;item = item->nextSibling()) {
	    if (_showCallers)
		((CallerCoverageItem*)item)->setGroupType(_groupType);
	    else
		((CalleeCoverageItem*)item)->setGroupType(_groupType);
	}
	return;
    }

    refresh();
}
Esempio n. 22
0
void DOMTreeView::showTree(const DOM::Node &pNode)
{
    if(pNode.isNull() || document != pNode.ownerDocument())
    {
	clear();
	m_itemdict.clear();
	m_nodedict.clear();
	if(pNode.isNull())
	    return;
	else if(pNode.ownerDocument().isNull())
	    recursive(0, pNode);
	else
	    recursive(0, pNode.ownerDocument());
    }
    setCurrentItem(m_itemdict[pNode.handle()]);
    ensureItemVisible(m_itemdict[pNode.handle()]);
}
Esempio n. 23
0
void CostTypeView::refresh()
{
    clear();
    setColumnWidth(1, 50);
    setColumnWidth(2, 50);

    if (!_data || !_activeItem) return;
    switch(_activeItem->type()) {
    case TraceCost::Object:
    case TraceCost::Class:
    case TraceCost::File:
    case TraceCost::FunctionCycle:
    case TraceCost::Function:
	break;
    default:
	return;
    }
    TraceCostItem* c = (TraceCostItem*) _activeItem;

    TraceCostType* ct =0 ;
    QListViewItem* item = 0;
    QString sumStr, pureStr;
    QListViewItem* costItem=0;

    TraceCostMapping* m = _data->mapping();
    for (int i=m->virtualCount()-1;i>=0;i--) {
	ct = m->virtualType(i);
	if (!ct) continue;
	item = new CostTypeItem(this, c, ct, _groupType);
	if (ct == _costType) costItem = item;
    }
    for (int i=m->realCount()-1;i>=0;i--) {
	ct = m->realType(i);
	item = new CostTypeItem(this, c, ct, _groupType);
	if (ct == _costType) costItem = item;
    }

    if (costItem) {
	setSelected(costItem, true);
	ensureItemVisible(costItem);
    }

    if (item) setMinimumHeight(3*item->height());
}
Esempio n. 24
0
void QtFileIconView::newDirectory()
{
    setAutoArrange( FALSE );
    selectAll( FALSE );
    if ( viewDir.mkdir( QString( "New Folder %1" ).arg( ++newFolderNum ) ) ) {
        QFileInfo *fi = new QFileInfo( viewDir, QString( "New Folder %1" ).arg( newFolderNum ) );
        QtFileIconViewItem *item = new QtFileIconViewItem( this, new QFileInfo( *fi ) );
        item->setKey( QString( "000000%1" ).arg( fi->fileName() ) );
        delete fi;
        repaintContents( contentsX(), contentsY(), contentsWidth(), contentsHeight(), FALSE );
        ensureItemVisible( item );
        item->setSelected( TRUE, TRUE );
        setCurrentItem( item );
        repaintItem( item );
        qApp->processEvents();
        item->rename();
    }
    setAutoArrange( TRUE );
}
Esempio n. 25
0
void TreeView::selectMenu(const QString &menu)
{
   closeAllItems(firstChild());

   if (menu.length() <= 1)
   {
      setCurrentItem(firstChild());
      clearSelection();
      return; // Root menu
   }

   QString restMenu = menu.mid(1);
   if (!restMenu.endsWith('/'))
      restMenu += '/';

   TreeItem *item = 0;
   do
   {
      int i = restMenu.indexOf("/");
      QString subMenu = restMenu.left(i+1);
      restMenu = restMenu.mid(i+1);

      item = (TreeItem*)(item ? item->firstChild() : firstChild());
      while(item)
      {
         MenuFolderInfo *folderInfo = item->folderInfo();
         if (folderInfo && (folderInfo->id == subMenu))
         {
            item->setOpen(true);
            break;
         }
         item = (TreeItem*) item->nextSibling();
      }
   }
   while( item && !restMenu.isEmpty());

   if (item)
   {
      setCurrentItem(item);
      ensureItemVisible(item);
   }
}
Esempio n. 26
0
void PropertyEditor::create(ItemGroup * b) {
    m_pItemGroup = b;

    QCString selectedPropertyName1, selectedPropertyName2;

    fill();

    //select prev. selecteed item
    PropertyEditorItem * item = 0;

    if (!selectedPropertyName2.isEmpty()) //try other one for old buffer
        item = m_items[selectedPropertyName2];

    if (!item && !selectedPropertyName1.isEmpty()) //try old one for current buffer
        item = m_items[selectedPropertyName1];

    if (item) {
        setSelected(item, true);
        ensureItemVisible(item);
    }
}
Esempio n. 27
0
void K3bListView::placeEditor( K3bListViewItem* item, int col )
{
  ensureItemVisible( item );
  QRect r = itemRect( item );

  r.setX( contentsToViewport( QPoint(header()->sectionPos( col ), 0) ).x() );
  r.setWidth( header()->sectionSize( col ) - 1 );

  // check if the column is fully visible
  if( visibleWidth() < r.right() )
    r.setRight(visibleWidth());

  r = QRect( viewportToContents( r.topLeft() ), r.size() );

  if( item->pixmap( col ) ) {
    r.setX( r.x() + item->pixmap(col)->width() );
  }

  // the tree-stuff is painted in the first column
  if( col == 0 ) {
    r.setX( r.x() + item->depth() * treeStepSize() );
    if( rootIsDecorated() )
      r.setX( r.x() + treeStepSize() );
  }

  if( item->needButton(col) ) {
    prepareButton( item, col );
    m_editorButton->setFixedHeight( r.height() );
    // for now we make a square button
    m_editorButton->setFixedWidth( m_editorButton->height() );
    r.setWidth( r.width() - m_editorButton->width() );
    moveChild( m_editorButton, r.right(), r.y() );
  }

  if( QWidget* editor = prepareEditor( item, col ) ) {
    editor->resize( r.size() );
    //    editor->resize( QSize( r.width(), editor->minimumSizeHint().height() ) );
    moveChild( editor, r.x(), r.y() );
  }
}
Esempio n. 28
0
void KonqSidebarTree::followURL( const KURL &url )
{
    // Maybe we're there already ?
    KonqSidebarTreeItem *selection = static_cast<KonqSidebarTreeItem *>( selectedItem() );
    if (selection && selection->externalURL().equals( url, true ))
    {
        ensureItemVisible( selection );
        return;
    }

    kdDebug(1201) << "KonqDirTree::followURL: " << url.url() << endl;
    QPtrListIterator<KonqSidebarTreeTopLevelItem> topItem ( m_topLevelItems );
    for (; topItem.current(); ++topItem )
    {
        if ( topItem.current()->externalURL().isParentOf( url ) )
        {
            topItem.current()->module()->followURL( url );
            return; // done
        }
    }
    kdDebug(1201) << "KonqDirTree::followURL: Not found" << endl;
}
void KonqSidebarTree::followURL( const KUrl &url )
{
    // Maybe we're there already ?
    KonqSidebarTreeItem *selection = static_cast<KonqSidebarTreeItem *>( selectedItem() );
    if (selection && selection->externalURL().equals( url, KUrl::CompareWithoutTrailingSlash ))
    {
        ensureItemVisible( selection );
        return;
    }

    kDebug(1201) << url.url();
    Q3PtrListIterator<KonqSidebarTreeTopLevelItem> topItem ( m_topLevelItems );
    for (; topItem.current(); ++topItem )
    {
        if ( topItem.current()->externalURL().isParentOf( url ) )
        {
            topItem.current()->module()->followURL( url );
            return; // done
        }
    }
    kDebug(1201) << "Not found";
}
Esempio n. 30
0
void CostTypeView::doUpdate(int changeType)
{
    // Special case ?
    if (changeType == selectedItemChanged) return;

    if (changeType == costType2Changed) return;

    if (changeType == groupTypeChanged) {
	QListViewItem *item;
	for (item = firstChild();item;item = item->nextSibling())
	    ((CostTypeItem*)item)->setGroupType(_groupType);

	return;
    }

    if (changeType == costTypeChanged) {
	QListViewItem *item;
	for (item = firstChild();item;item = item->nextSibling())
	    if ( ((CostTypeItem*)item)->costType() == _costType) {
		setSelected(item, true);
		ensureItemVisible(item);
		break;
	    }

	return;
    }

    if (changeType == partsChanged) {
	QListViewItem *item;
	for (item = firstChild();item;item = item->nextSibling())
	    ((CostTypeItem*)item)->update();

	return;
    }


    refresh();
}