/* This file is part of the KDE project Copyright (C) 2001 Holger Freyther This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "kuick_plugin.h" #include "kuick_plugin.moc" #include "kdirmenu.h" #include #include #include #include #include #include #include #include #include #include #include #include #include typedef KGenericFactory KTestMenuFactory; K_EXPORT_COMPONENT_FACTORY( libkuickplugin, KTestMenuFactory("kuick_plugin") ) KTestMenu::KTestMenu( KonqPopupMenu *popupmenu, const char *name, const TQStringList& /*list*/ ) : KonqPopupMenuPlugin( popupmenu, name) { popup= popupmenu ; meta_copy_mmu = 0L; meta_move_mmu = 0L; my_action = new KAction( "kuick_plugin", 0, this, TQT_SLOT( slotPopupMaeh( ) ), actionCollection( ), "Do some funky stuff" ); tqaddAction( my_action ); addSeparator(); //popupmenu->addMerge(); connect( popup, TQT_SIGNAL(aboutToShow() ), this, TQT_SLOT(slotPrepareMenu( ) ) ); m_imProxy = KIMProxy::instance( kapp->dcopClient() ); } KTestMenu::~KTestMenu( ){ delete meta_copy_mmu; delete meta_move_mmu; } void KTestMenu::slotPopupMaeh( ){ } void KTestMenu::slotStartCopyJob( const TQString &path ) { KURL url = KURL::fromPathOrURL( path ); KIO::CopyJob *copy; copy = KIO::copy( popup->popupURLList(), url); copy->setAutoErrorHandlingEnabled( true ); } void KTestMenu::slotStartMoveJob( const TQString &path) { KURL url = KURL::fromPathOrURL( path ); KIO::CopyJob *move; move = KIO::move( popup->popupURLList(), url ); move->setAutoErrorHandlingEnabled( true ); } void KTestMenu::slotFileTransfer( const TQString &uid ) { m_imProxy->sendFile( uid, popup->popupURLList().first() ); } void KTestMenu::slotPrepareMenu( ) { // now it's time to set up the menu... // search for the dummy entry 'kuick_plugin' stores it index reomev it plug copy at the position KGlobal::locale()->insertCatalogue("kuick_plugin"); bool isKDesktop = TQCString( kapp->name() ) == "kdesktop"; for(int i= popup->count(); i >=1; i--) { int id = popup->idAt( i ); TQString text = popup->text( id ); if( text.tqcontains("kuick_plugin") ) { popup->removeItem( id ); if (isKDesktop && !kapp->authorize("editable_desktop_icons")) { // Remove seperator as well id = popup->idAt( i-1 ); if (popup->text( id ).isEmpty()) popup->removeItem( id ); break; } meta_copy_mmu = new KMetaMenu(popup, popup->url(), i18n("&Copy Here") , "kuick-copy", m_imProxy ); popup->insertItem(i18n("Copy To"), meta_copy_mmu, -1, i ); connect( meta_copy_mmu, TQT_SIGNAL(fileChosen(const TQString &) ), TQT_SLOT(slotStartCopyJob(const TQString & )) ); connect( meta_copy_mmu, TQT_SIGNAL( contactChosen( const TQString & ) ), TQT_SLOT( slotFileTransfer( const TQString & )) ); if( popup->protocolInfo().supportsMoving() ){ meta_move_mmu = new KMetaMenu(popup, popup->url(), i18n("&Move Here"), "kuick-move"); popup->insertItem(i18n("Move To"), meta_move_mmu, -1, i+1 ); connect( meta_move_mmu, TQT_SIGNAL(fileChosen(const TQString &) ), TQT_SLOT(slotStartMoveJob(const TQString & )) ); } break; } } }