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(); }
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 ); }
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; } }
/* 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); }
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); } }
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(); }
void QTodoList::jumpToLast() { QTodoListIterator it(this); it.goTo(it.count()-1); if(QTodoItem* item = it.item()) ensureItemVisible(item); }
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; }
void KNCollectionView::selectCurrentFolder() { KFolderTreeItem *fti = static_cast<KFolderTreeItem *>(currentItem()); if(fti) { ensureItemVisible(fti); setActive(fti); } }
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; }
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); }
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); }; } } }
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 ); }
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(); }
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; } }
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; } } }
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); } } }
/****************************************************************************** * 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); } }
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() ); }
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(); }
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()]); }
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()); }
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 ); }
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); } }
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); } }
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() ); } }
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"; }
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(); }