/** Called for: double click, return, Open */ void BaseTreeView::slotSelectFile(QListViewItem *item) { KFileTreeViewItem* kftvi = currentKFileTreeViewItem(); if (!kftvi || kftvi->isDir()) return; KURL urlToOpen = kftvi->url(); if (!urlToOpen.isEmpty()) { if ( QuantaCommon::checkMimeGroup(urlToOpen,"text") ) { emit openFile(urlToOpen); item->repaint(); } else if ( QuantaCommon::checkMimeGroup(urlToOpen, "image") ) //it may be an image { emit openImage( urlToOpen); } else if ( expandArchiv(kftvi)) //it may be an archiv { } else //it is an unknown type, maybe binary { if (QuantaCommon::denyBinaryInsert(this) == KMessageBox::Yes) { emit openFile(urlToOpen); item->repaint(); } } } }
void BaseTreeBranch::updateOpenFolder() { KFileTreeViewItem *newItem; KFileTreeViewItem *item = root(); while (item) { if (item->isDir() && item->isOpen()) { updateDirectory( item->url() ); kapp->processEvents(QEventLoop::ExcludeUserInput | QEventLoop::ExcludeSocketNotifiers); // dive into the tree first newItem = dynamic_cast<KFileTreeViewItem *>(item->firstChild()); if (newItem) { // found child go ahead item = newItem; continue; }; }; // go up if no sibling available if (! item->nextSibling()) item = dynamic_cast<KFileTreeViewItem *>(item->parent()); if (item == root()) break; if (item) item = dynamic_cast<KFileTreeViewItem *>(item->nextSibling()); }; }
void BaseTreeBranch::addOpenFolder(QStringList* openFolder) { if (! openFolder) // just in case return; KFileTreeViewItem *newItem; KFileTreeViewItem *item = root(); while (item) { if (item->isDir() && item->isOpen()) { openFolder->append( item->url().url() ); // dive into the tree first newItem = dynamic_cast<KFileTreeViewItem *>(item->firstChild()); if (newItem) { // found child go ahead item = newItem; continue; }; }; // move up in the tree while (item && item != root()) { if (item->nextSibling()) { item = dynamic_cast<KFileTreeViewItem *>(item->nextSibling()); break; } else { item = dynamic_cast<KFileTreeViewItem *>(item->parent()); } } if (item == root()) break; }; }
KURL K3bFileTreeView::selectedUrl() const { KFileTreeViewItem* treeItem = dynamic_cast<KFileTreeViewItem*>(selectedItem()); if( treeItem ) { if( !d->branchDeviceMap.contains( treeItem->branch() ) ) return treeItem->url(); } return KURL(); }
void K3bFileTreeView::slotItemExecuted( QListViewItem* item ) { KFileTreeViewItem* treeItem = static_cast<KFileTreeViewItem*>(item); if( d->branchDeviceMap.contains( treeItem->branch() ) && treeItem == treeItem->branch()->root() ) { K3bDevice::Device* dev = d->branchDeviceMap[treeItem->branch()]; k3bappcore->appDeviceManager()->setCurrentDevice( dev ); emit deviceExecuted( dev ); } else emit urlExecuted( treeItem->url() ); }
void K3bFileTreeView::slotContextMenu( KListView*, QListViewItem* item, const QPoint& p ) { KFileTreeViewItem* treeItem = dynamic_cast<KFileTreeViewItem*>(item); if( treeItem ) { K3bDevice::Device* device = 0; QMap<KFileTreeBranch*, K3bDevice::Device*>::iterator devIt = d->branchDeviceMap.find( treeItem->branch() ); if( devIt != d->branchDeviceMap.end() ) device = devIt.data(); setCurrentItem( treeItem ); setSelected( treeItem, true); if( device ) { k3bappcore->appDeviceManager()->setCurrentDevice( device ); emit contextMenu( device, p ); } else emit contextMenu( treeItem->url(), p ); } else kdWarning() << "(K3bFileTreeView) found viewItem that is no KFileTreeViewItem!" << endl; }