int K3bDataUrlAddingDialog::addUrls( const KURL::List& urls, K3bDirItem* dir, QWidget* parent ) { if( urls.isEmpty() ) return 0; // // A common mistake by beginners is to try to burn an iso image // with a data project. Let's warn them // if( urls.count() == 1 ) { K3bIso9660 isoF( urls.first().path() ); if( isoF.open() ) { if( KMessageBox::warningYesNo( parent, i18n("<p>The file you are about to add to the project is an ISO9660 image. As such " "it can be burned to a medium directly since it already contains a file " "system.<br>" "Are you sure you want to add this file to the project?"), i18n("Adding image file to project"), i18n("Add the file to the project"), i18n("Burn the image directly") ) == KMessageBox::No ) { // very rough dvd image size test if( K3b::filesize( urls.first() ) > 1000*1024*1024 ) k3bappcore->k3bMainWindow()->slotWriteDvdIsoImage( urls.first() ); else k3bappcore->k3bMainWindow()->slotWriteCdImage( urls.first() ); return 0; } } } K3bDataUrlAddingDialog dlg( dir->doc(), parent ); dlg.m_urls = urls; for( KURL::List::ConstIterator it = urls.begin(); it != urls.end(); ++it ) dlg.m_urlQueue.append( qMakePair( K3b::convertToLocalUrl(*it), dir ) ); dlg.slotAddUrls(); int ret = QDialog::Accepted; if( !dlg.m_urlQueue.isEmpty() ) { dlg.m_dirSizeJob->setUrls( urls ); dlg.m_dirSizeJob->setFollowSymlinks( dir->doc()->isoOptions().followSymbolicLinks() ); dlg.m_dirSizeJob->start(); ret = dlg.exec(); } // make sure the dir size job is finished dlg.m_dirSizeJob->cancel(); K3bSignalWaiter::waitForJob( dlg.m_dirSizeJob ); QString message = dlg.resultMessage(); if( !message.isEmpty() ) KMessageBox::detailedSorry( parent, i18n("Problems while adding files to the project."), message ); return ret; }
void K3bIsoImageWritingDialog::dropEvent( QDropEvent* e ) { KURL::List urls; KURLDrag::decode( e, urls ); #if KDE_IS_VERSION(3,4,0) m_editImagePath->setKURL( urls.first() ); #else m_editImagePath->setURL( urls.first().path() ); #endif }
void BGMonitor::dropEvent(QDropEvent *e) { if (!KURLDrag::canDecode(e)) return; KURL::List uris; if (KURLDrag::decode(e, uris) && (uris.count() > 0)) { // TODO: Download remote file if (uris.first().isLocalFile()) emit imageDropped(uris.first().path()); } }
void FSBrowser::playlistFromURLs( const KURL::List &urls ) { QString suggestion; if( urls.count() == 1 && QFileInfo( urls.first().path() ).isDir() ) suggestion = urls.first().fileName(); else suggestion = i18n( "Untitled" ); const QString path = PlaylistDialog::getSaveFileName( suggestion ); if( path.isEmpty() ) return; if( PlaylistBrowser::savePlaylist( path, urls ) ) PlaylistWindow::self()->showBrowser( "PlaylistBrowser" ); }
void ScanGallery::slotUrlsDropped(QDropEvent *ev, FileTreeViewItem *item) { KUrl::List urls = ev->mimeData()->urls(); if (urls.isEmpty()) return; kDebug() << "onto" << (item==NULL ? "NULL" : item->url().prettyUrl()) << "srcs" << urls.count() << "first" << urls.first(); if (item==NULL) return; KUrl dest = item->url(); // Check whether the drop is on top of a directory (in which case we // want to move/copy into it) or a file (move/copy into its containing // directory). if (!item->isDir()) dest.setFileName(QString::null); dest.adjustPath(KUrl::AddTrailingSlash); kDebug() << "resolved destination" << dest; // Make the last URL to copy the one to select next KUrl nextSel = dest; nextSel.addPath(urls.back().fileName(KUrl::ObeyTrailingSlash)); m_nextUrlToShow = nextSel; KIO::Job *job; // TODO: top level window as 3rd parameter? if (ev->dropAction()==Qt::MoveAction) job = KIO::move(urls, dest); else job = KIO::copy(urls, dest); connect(job, SIGNAL(result(KJob *)), SLOT(slotJobResult(KJob *))); }
void ImageButton::dropEvent( QDropEvent *event ) { if ( mReadOnly ) return; const QMimeData *md = event->mimeData(); if ( md->hasImage() ) { QImage image = qvariant_cast<QImage>(md->imageData()); mPicture.setData( image ); updateGui(); emit changed(); } KUrl::List urls = KUrl::List::fromMimeData( md ); if ( urls.isEmpty() ) { // oops, no data event->setAccepted( false ); } else { if ( mImageLoader ) { bool ok = false; KABC::Picture pic = mImageLoader->loadPicture( urls.first(), &ok ); if ( ok ) { mPicture = pic; updateGui(); emit changed(); } } } }
void DrawZone::viewportDropEvent( QDropEvent* e) { KURL::List urlList; // A file from konqueror was dropped if (KURLDrag::decode(e,urlList)) { imageMapEditor->openFile(urlList.first()); } }
KURL *decodeImgDrop(QDropEvent *e, QWidget *wdg) { KURL::List uris; if (KURLDrag::decode(e, uris) && (uris.count() > 0)) { KURL *url = new KURL(uris.first()); KImageIO::registerFormats(); if( KImageIO::canRead(KImageIO::type(url->fileName())) ) return url; QStringList qs = QStringList::split('\n', KImageIO::pattern()); qs.remove(qs.begin()); QString msg = i18n( "%1 " "does not appear to be an image file.\n" "Please use files with these extensions:\n" "%2") .arg(url->fileName()) .arg(qs.join("\n")); KMessageBox::sorry( wdg, msg); delete url; } return 0; }
void FileBrowser::playlistFromURLs( const KURL::List &urls ) { QString suggestion; if( urls.count() == 1 && QFileInfo( urls.first().path() ).isDir() ) suggestion = urls.first().fileName(); else suggestion = i18n( "Untitled" ); const QString path = PlaylistDialog::getSaveFileName( suggestion ); if( path.isEmpty() ) return; if( PlaylistBrowser::savePlaylist( path, urls ) ) { //FIXME: uncomment after string freeze //Pana::StatusBar::instance()->shortMessage( "Playlist saved to playlist browser" ); } }
void k2send::dropEvent(QDropEvent *event) { KURL::List urls; if (KURLDrag::decode(event, urls) && !urls.isEmpty()) { const KURL &url = urls.first(); load(url); } }
void RadialMap::Widget::dropEvent( QDropEvent *e ) { DEBUG_ANNOUNCE KURL::List urls; if (KURLDrag::decode( e, urls ) && urls.count()) emit giveMeTreeFor( urls.first() ); }
void KNewFileMenuPrivate::executeRealFileOrDir(const KNewFileMenuSingleton::Entry& entry) { // The template is not a desktop file // Show the small dialog for getting the destination filename QString text = entry.text; text.remove("..."); // the ... is fine for the menu item but not for the default filename text = text.trimmed(); // In some languages, there is a space in front of "...", see bug 268895 m_strategy.m_src = entry.templatePath; KUrl defaultFile(m_popupFiles.first()); defaultFile.addPath(KIO::encodeFileName(text)); if (defaultFile.isLocalFile() && QFile::exists(defaultFile.toLocalFile())) text = KIO::RenameDialog::suggestName(m_popupFiles.first(), text); KDialog* fileDialog = new KDialog(m_parentWidget); fileDialog->setAttribute(Qt::WA_DeleteOnClose); fileDialog->setModal(q->isModal()); fileDialog->setButtons(KDialog::Ok | KDialog::Cancel); QWidget* mainWidget = new QWidget(fileDialog); QVBoxLayout *layout = new QVBoxLayout(mainWidget); QLabel *label = new QLabel(entry.comment); // We don't set the text of lineEdit in its constructor because the clear button would not be shown then. // It seems that setClearButtonShown(true) must be called *before* the text is set to make it work. // TODO: should probably be investigated and fixed in KLineEdit. KLineEdit *lineEdit = new KLineEdit; lineEdit->setClearButtonShown(true); lineEdit->setText(text); _k_slotTextChanged(text); QObject::connect(lineEdit, SIGNAL(textChanged(const QString &)), q, SLOT(_k_slotTextChanged(const QString &))); layout->addWidget(label); layout->addWidget(lineEdit); fileDialog->setMainWidget(mainWidget); QObject::connect(fileDialog, SIGNAL(accepted()), q, SLOT(_k_slotRealFileOrDir())); QObject::connect(fileDialog, SIGNAL(rejected()), q, SLOT(_k_slotAbortDialog())); fileDialog->show(); lineEdit->selectAll(); lineEdit->setFocus(); }
void MonthWidget::dropEvent(QDropEvent* event) { KUrl::List srcURLs = KUrl::List::fromMimeData( event->mimeData() ); if ( srcURLs.isEmpty() ) return; KUrl url = srcURLs.first(); setImage( url ); }
void MyEditor::contentsDropEvent( TQDropEvent *e ) { ///////////////// decode dropped file KURL::List list; TQString text; if ( KURLDrag::decode( e, list ) ) slotDroppedFile(list.first()); else if ( TQTextDrag::decode(e, text) ) insert(text); }
inline void FSBrowser::contextMenuActivated( int id ) { switch( id ) { case MakePlaylist: Playlist::instance()->insertMedia( selectedItems(), Playlist::Replace ); break; case SavePlaylist: playlistFromURLs( selectedItems() ); break; case AppendToPlaylist: Playlist::instance()->insertMedia( selectedItems() ); break; case EditTags: { KURL::List list = selectedItems(); TagDialog *dialog = NULL; if( list.count() == 1 ) { dialog = new TagDialog( list.first(), this ); } else { dialog = new TagDialog( list, this ); } dialog->show(); } break; case CopyToCollection: CollectionView::instance()->organizeFiles( selectedItems(), i18n( "Copy Files To Collection" ), true ); break; case MoveToCollection: CollectionView::instance()->organizeFiles( selectedItems(), i18n( "Move Files To Collection" ), false ); break; case CopyMediaDevice: MediaBrowser::queue()->addURLs( selectedItems() ); break; case SelectAllFiles: selectAll(); break; case BurnCd: K3bExporter::instance()->exportTracks( selectedItems() ); break; } }
void IconView::pasteTo() { KUrl::List urls; foreach (const QModelIndex &index, m_selectionModel->selectedIndexes()) { KFileItem item = m_model->itemForIndex( m_proxyModel->mapToSource( index ) ); urls.append( item.url() ); } Q_ASSERT(urls.count() == 1); KonqOperations::doPaste( QApplication::desktop(), urls.first() ); }
void MainWindow::slotAddImages() { const KUrl::List fileNames = KFileDialog::getOpenUrls(d->lastImageOpenDir, QLatin1String("*.jpg|*.jpeg|*.png"), this, i18n("Add image files")); if (fileNames.isEmpty()) return; d->lastImageOpenDir = fileNames.first().upUrl(); slotScheduleImagesForLoading(fileNames); }
/** No descriptions */ void ProjectNewLocal::slotAddFiles() { QExtFileInfo::createDir(baseURL, this); KURL::List list = KFileDialog::getOpenURLs( baseURL.url(), i18n("*"), this, i18n("Insert Files in Project")); if ( !list.isEmpty() ) { KURL u = list.first(); u = QExtFileInfo::toRelative( u, baseURL, false ); if ( u.path().startsWith("..") || u.path().startsWith("/")) { KURLRequesterDlg *urlRequesterDlg = new KURLRequesterDlg( baseURL.prettyURL(), this, ""); urlRequesterDlg->setCaption(i18n("Files: Copy to Project")); urlRequesterDlg->urlRequester()->setMode( KFile::Directory | KFile::ExistingOnly); urlRequesterDlg->exec(); KURL destination = urlRequesterDlg->selectedURL(); delete urlRequesterDlg; if ( !destination.isEmpty()) { CopyTo *dlg = new CopyTo( baseURL); connect(dlg, SIGNAL(addFilesToProject(const KURL::List&)), SLOT (slotInsertFilesAfterCopying(const KURL::List&))); connect(dlg, SIGNAL(deleteDialog(CopyTo *)), SLOT (slotDeleteCopyToDialog(CopyTo *))); list = dlg->copy( list, destination ); return; } else { return; } } progressBar->setTotalSteps(list.count() - 1); progressBar->setTextEnabled(true); for (uint i = 0; i < list.count(); i++) { list[i] = QExtFileInfo::toRelative(list[i], baseURL, false); if (!fileList.contains(list[i])) { fileList.append(list[i]); QListViewItem *it = listView->addItem(list[i], KFileItem(KFileItem::Unknown, KFileItem::Unknown, KURL())); if (it) it->setSelected(true); progressBar->setValue(i); } } progressBar->setTotalSteps(1); progressBar->setValue(0); progressBar->setTextEnabled(false); } }
void TopLevel::dropEvent( QDropEvent * event) { KURL::List list; if (KURLDrag::decode(event, list) && !list.isEmpty()) { // Load the first file in this window const KURL &url = list.first(); openNetFile( url ); } }
void DrawZone::contentsDragEnterEvent(QDragEnterEvent*e) { if (!KURLDrag::canDecode(e)) return; // bool accept = false; KURL::List uris; KURLDrag::decode(e,uris); KMimeType::Ptr ptr = KMimeType::findByURL(uris.first()); // kdDebug() << "***** " << ptr.data()->name() << endl; if ((ptr.data()->name() == "text/html") || (ptr.data()->name().left(6) == "image/")) e->accept(); }
void QuantaProjectPart::slotInsertFiles() { KUrl::List urls = KFileDialog::getOpenUrls(m_projectBase, i18n("*"), Koncrete::Core::mainWindow(), i18n("Insert Files in Project")); if (!urls.isEmpty()) { if (!m_projectBase.isParentOf(urls.first())) { KUrlRequesterDialog urlRequesterDlg(m_projectBase.pathOrUrl(), Koncrete::Core::mainWindow()); urlRequesterDlg.setWindowTitle(i18n("Copy Files to Project")); urlRequesterDlg.urlRequester()->setMode(KFile::Directory | KFile::ExistingOnly); urlRequesterDlg.exec(); KUrl destination = urlRequesterDlg.selectedUrl(); if (!destination.isEmpty()) { destination.adjustPath(KUrl::AddTrailingSlash); QuantaNetAccess::dircopy(urls, destination, this, false); } } else { QStringList filenames; KUrl url = KUrl::relativeUrl(m_projectBase, urls.first()); QStringList sections = url.path(KUrl::AddTrailingSlash).split('/', QString::SkipEmptyParts); QString section; for (int i = 0 ; i < sections.count() - 1; i++) { section += sections[i] + '/'; filenames += section; } KUrl::List::ConstIterator end = urls.constEnd(); for (KUrl::List::ConstIterator it = urls.begin(); it != end; ++it) { url = KUrl::relativeUrl(m_projectBase, *it); filenames += url.path(); } addFiles(filenames); } } }
void KgpgLibrary::slotFileEnc(KURL::List urls,QStringList opts,QStringList defaultKey,KShortcut goDefaultKey) { ///////////////////////////////////////////////////////////////////////// encode file file if (!urls.empty()) { urlselecteds=urls; if (defaultKey.isEmpty()) { QString fileNames=urls.first().fileName(); if (urls.count()>1) fileNames+=",..."; popupPublic *dialogue=new popupPublic(0,"Public keys",fileNames,true,goDefaultKey); connect(dialogue,SIGNAL(selectedKey(QStringList,QStringList,bool,bool)),this,SLOT(startencode(QStringList,QStringList,bool,bool))); dialogue->exec(); delete dialogue; } else
void IconApplet::dropEvent(QGraphicsSceneDragDropEvent *event) { if (!KUrl::List::canDecode(event->mimeData())) { return; } KUrl::List urls = KUrl::List::fromMimeData(event->mimeData()); if (urls.isEmpty()) { return; } event->accept(); if (m_url.isEmpty()) { setUrl(urls.first()); //TODO: why we don't call updateConstraints()? constraintsEvent(Plasma::FormFactorConstraint); return; } else if (m_service) { KRun::run(*m_service, urls, 0); return; } KMimeType::Ptr mimetype = KMimeType::findByUrl(m_url); if (m_url.isLocalFile() && ((mimetype && (mimetype->is("application/x-executable") || mimetype->is("application/x-shellscript"))) || KDesktopFile::isDesktopFile(m_url.toLocalFile()))) { if (KDesktopFile::isDesktopFile(m_url.toLocalFile())) { //Extract the command from the Desktop file KService service(m_url.toLocalFile()); KRun::run(service, urls, 0); return; } // Just exec the local executable QString params; foreach (const KUrl &url, urls) { if (url.isLocalFile()) { params += ' ' + KShell::quoteArg(url.toLocalFile()); } else { params += ' ' + KShell::quoteArg(url.prettyUrl()); } } QString commandStr = KShell::quoteArg(m_url.path()); KRun::runCommand(commandStr + ' ' + params, 0); } else if (mimetype && mimetype->is("inode/directory")) {
void DropTarget::dropEvent(QDropEvent * event) { KUrl::List list = KUrl::List::fromMimeData(event->mimeData()); QString str; if (!list.isEmpty()) { if (list.count() == 1 && list.first().url().endsWith(QLatin1String(".kgt"))) { int msgBoxResult = KMessageBox::questionYesNoCancel(this, i18n("The dropped file is a KGet Transfer List"), "KGet", KGuiItem(i18n("&Download"), KIcon("document-save")), KGuiItem(i18n("&Load transfer list"), KIcon("list-add")), KStandardGuiItem::cancel()); if (msgBoxResult == 3) //Download NewTransferDialogHandler::showNewTransferDialog(list.first().url()); if (msgBoxResult == 4) //Load KGet::load(list.first().url()); } else { if (list.count() == 1) { str = event->mimeData()->text(); NewTransferDialogHandler::showNewTransferDialog(str); } else NewTransferDialogHandler::showNewTransferDialog(list); } } else { NewTransferDialogHandler::showNewTransferDialog(); } if ( Settings::animateDropTarget() ) playAnimationSync(); }
void TabWidget::initiateDrag(int tab) { Frame* frame = d->frames.value(widget(tab)); if (frame && frame->url().isValid()) { KUrl::List lst; lst.append( frame->url() ); QDrag* drag = new QDrag( this ); QMimeData *md = new QMimeData; drag->setMimeData( md ); lst.populateMimeData( md ); drag->setPixmap( KIO::pixmapForUrl( lst.first(), 0, KIconLoader::Small ) ); drag->start(); } }
void Korrent::dropEvent(QDropEvent *event) { // this is a very simplistic implementation of a drop event. we // will only accept a dropped URL. the Qt dnd code can do *much* // much more, so please read the docs there KURL::List urls; // see if we can decode a URI.. if not, just ignore it if (KURLDrag::decode(event, urls) && !urls.isEmpty()) { // okay, we have a URI.. process it const KURL &url = urls.first(); // load in the file load(url); } }
void Kooka::dropEvent(QDropEvent *event) { // this is a very simplistic implementation of a drop event. we // will only accept a dropped URL. the Qt dnd code can do *much* // much more, so please read the docs there KURL::List uri; // see if we can decode a URI.. if not, just ignore it if (KURLDrag::decode(event, uri) && !uri.isEmpty()) { // okay, we have a URI.. process it const KURL &url = uri.first(); kdDebug(29000) << "Importing URI " << url.url() << endl; // TODO: Do something with url // Waba: See also setAcceptDrops() above } }
void MagnetTest::foundMetaData(MagnetDownloader* md, const QByteArray& data) { Q_UNUSED(md); Out(SYS_GEN|LOG_IMPORTANT) << "Saving to output.torrent" << endl; bt::File fptr; if (fptr.open("output.torrent","wb")) { BEncoder enc(&fptr); enc.beginDict(); KUrl::List trs = mlink.trackers(); if (trs.count()) { enc.write("announce"); enc.write(trs.first().prettyUrl()); if (trs.count() > 1) { enc.write("announce-list"); enc.beginList(); foreach (const KUrl & u,trs) { enc.write(u.prettyUrl()); }
KIO_EXPORT QString KIO::pasteActionText() { QMimeSource *data = QApplication::clipboard()->data(); KURL::List urls; if(KURLDrag::canDecode(data) && KURLDrag::decode(data, urls)) { if(urls.isEmpty()) return QString::null; // nothing to paste else if(urls.first().isLocalFile()) return i18n("&Paste File", "&Paste %n Files", urls.count()); else return i18n("&Paste URL", "&Paste %n URLs", urls.count()); } else if(data->format(0) != 0) { return i18n("&Paste Clipboard Contents"); } else { return QString::null; } }
// private slot void kpMainWindow::slotPasteFromFile () { #if DEBUG_KP_MAIN_WINDOW kdDebug () << "kpMainWindow::slotPasteFromFile()" << endl; #endif if (toolHasBegunShape ()) tool ()->endShapeInternal (); KURL::List urls = askForOpenURLs (i18n ("Paste From File"), m_lastPasteFromURL.url (), false/*only 1 URL*/); if (urls.count () != 1) return; KURL url = urls.first (); m_lastPasteFromURL = url; QPixmap pixmap = kpDocument::getPixmapFromFile (url, false/*show error message if doesn't exist*/, this); if (pixmap.isNull ()) return; addRecentURL (url); paste (kpSelection (kpSelection::Rectangle, QRect (0, 0, pixmap.width (), pixmap.height ()), pixmap, selectionTransparency ())); }