void KonqSidebarTree::contentsDropEvent( QDropEvent *ev ) { if (d->m_dropMode == SidebarTreeMode) { m_autoOpenTimer->stop(); if ( !selectedItem() ) { // KonqOperations::doDrop( 0L, m_dirtreeDir.dir, ev, this ); KURL::List urls; if ( KURLDrag::decode( ev, urls ) ) { for(KURL::List::ConstIterator it = urls.begin(); it != urls.end(); ++it) { addURL(0, *it); } } } else { KonqSidebarTreeItem *selection = static_cast<KonqSidebarTreeItem *>( selectedItem() ); selection->drop( ev ); } } else { KListView::contentsDropEvent(ev); } }
Q3DragObject* KonqSidebarTree::dragObject() { KonqSidebarTreeItem* item = static_cast<KonqSidebarTreeItem *>( selectedItem() ); if ( !item ) return 0; QMimeData *mimeData = new QMimeData; if ( item->populateMimeData( mimeData, false ) ) { QDrag* drag = new QDrag( viewport() ); drag->setMimeData(mimeData); const QPixmap *pix = item->pixmap(0); if ( pix && drag->pixmap().isNull() ) drag->setPixmap( *pix ); } else { delete mimeData; mimeData = 0; } #ifdef __GNUC__ #warning TODO port to QDrag (only possible once porting away from Q3ListView?) #endif return 0; //return drag; }
void KonqSidebarTree::slotItemRenamed(QListViewItem* item, const QString &name, int col) { Q_ASSERT(col==0); if (col != 0) return; assert(item); KonqSidebarTreeItem * treeItem = static_cast<KonqSidebarTreeItem *>(item); treeItem->rename( name ); }
void KonqSidebarTree::showToplevelContextMenu() { KonqSidebarTreeTopLevelItem *item = 0; KonqSidebarTreeItem *treeItem = currentItem(); if (treeItem && treeItem->isTopLevelItem()) item = static_cast<KonqSidebarTreeTopLevelItem *>(treeItem); if (!m_collection) { m_collection = new KActionCollection( this, "bookmark actions" ); (void) new KAction( i18n("&Create New Folder..."), "folder_new", 0, this, SLOT( slotCreateFolder() ), m_collection, "create_folder"); (void) new KAction( i18n("Delete Folder"), "editdelete", 0, this, SLOT( slotDelete() ), m_collection, "delete_folder"); (void) new KAction( i18n("Rename"), 0, this, SLOT( slotRename() ), m_collection, "rename"); (void) new KAction( i18n("Delete Link"), "editdelete", 0, this, SLOT( slotDelete() ), m_collection, "delete_link"); (void) new KAction( i18n("Properties"), "edit", 0, this, SLOT( slotProperties() ), m_collection, "item_properties"); (void) new KAction( i18n("Open in New Window"), "window_new", 0, this, SLOT( slotOpenNewWindow() ), m_collection, "open_window"); (void) new KAction( i18n("Open in New Tab"), "tab_new", 0, this, SLOT( slotOpenTab() ), m_collection, "open_tab"); (void) new KAction( i18n("Copy Link Address"), "editcopy", 0, this, SLOT( slotCopyLocation() ), m_collection, "copy_location"); } QPopupMenu *menu = new QPopupMenu; if (item) { if (item->isTopLevelGroup()) { m_collection->action("rename")->plug(menu); m_collection->action("delete_folder")->plug(menu); menu->insertSeparator(); m_collection->action("create_folder")->plug(menu); } else { if (tabSupport()) m_collection->action("open_tab")->plug(menu); m_collection->action("open_window")->plug(menu); m_collection->action("copy_location")->plug(menu); menu->insertSeparator(); m_collection->action("rename")->plug(menu); m_collection->action("delete_link")->plug(menu); } menu->insertSeparator(); m_collection->action("item_properties")->plug(menu); } else { m_collection->action("create_folder")->plug(menu); } m_currentTopLevelItem = item; menu->exec( QCursor::pos() ); delete menu; m_currentTopLevelItem = 0; }
void KonqSidebarTree::slotSelectionChanged() { if ( !m_dropItem ) // don't do this while the dragmove thing { KonqSidebarTreeItem * item = static_cast<KonqSidebarTreeItem *>( selectedItem() ); if ( item ) item->itemSelected(); /* else -- doesn't seem to happen {} */ } }
void KonqSidebarTree::slotMouseButtonPressed( int _button, QListViewItem* _item, const QPoint&, int col ) { KonqSidebarTreeItem * item = static_cast<KonqSidebarTreeItem*>( _item ); if (_button == RightButton) { if ( item && col < 2) { item->setSelected( true ); item->rightButtonPressed(); } } }
void KonqSidebarTree::slotMouseButtonClicked(int _button, QListViewItem* _item, const QPoint&, int col) { KonqSidebarTreeItem * item = static_cast<KonqSidebarTreeItem*>(_item); if(_item && col < 2) { switch( _button ) { case LeftButton: slotExecuted( item ); break; case MidButton: item->middleButtonClicked(); break; } } }
QDragObject* KonqSidebarTree::dragObject() { KonqSidebarTreeItem* item = static_cast<KonqSidebarTreeItem *>( selectedItem() ); if ( !item ) return 0; QDragObject* drag = item->dragObject( viewport(), false ); if ( !drag ) return 0; const QPixmap *pix = item->pixmap(0); if ( pix && drag->pixmap().isNull() ) drag->setPixmap( *pix ); return drag; }
void KonqSidebarTree::slotExecuted( QListViewItem *item ) { kdDebug(1201) << "KonqSidebarTree::slotExecuted " << item << endl; if ( !item ) return; if ( !static_cast<KonqSidebarTreeItem*>(item)->isClickable() ) return; KonqSidebarTreeItem *dItem = static_cast<KonqSidebarTreeItem *>( item ); KParts::URLArgs args; args.serviceType = dItem->externalMimeType(); args.trustedSource = true; KURL externalURL = dItem->externalURL(); if ( !externalURL.isEmpty() ) openURLRequest( externalURL, args ); }
void KonqSidebarTree::slotExecuted( Q3ListViewItem *item ) { kDebug(1201) << item; if ( !item ) return; if ( !static_cast<KonqSidebarTreeItem*>(item)->isClickable() ) return; KonqSidebarTreeItem *dItem = static_cast<KonqSidebarTreeItem *>( item ); KParts::OpenUrlArguments args; args.setMimeType(dItem->externalMimeType()); KParts::BrowserArguments browserArgs; browserArgs.trustedSource = true; // is this needed? KUrl externalURL = dItem->externalURL(); if ( !externalURL.isEmpty() ) openUrlRequest( externalURL, args, browserArgs ); }
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 KonqSidebarTree::showToplevelContextMenu() { KonqSidebarTreeTopLevelItem *item = 0; KonqSidebarTreeItem *treeItem = currentItem(); if (treeItem && treeItem->isTopLevelItem()) item = static_cast<KonqSidebarTreeTopLevelItem *>(treeItem); QMenu *menu = new QMenu; if (item) { if (item->isTopLevelGroup()) { menu->addAction( m_collection->action("rename") ); menu->addAction( m_collection->action("delete") ); menu->addSeparator(); menu->addAction( m_collection->action("create_folder") ); } else { menu->addAction( m_collection->action("open_tab") ); menu->addAction( m_collection->action("open_window") ); menu->addAction( m_collection->action("copy_location") ); menu->addSeparator(); menu->addAction( m_collection->action("rename") ); menu->addAction( m_collection->action("delete_link") ); } menu->addSeparator(); menu->addAction( m_collection->action("item_properties") ); } else { menu->addAction( m_collection->action("create_folder") ); } m_currentTopLevelItem = item; menu->exec( QCursor::pos() ); delete menu; m_currentTopLevelItem = 0; }