SvnHelper::SvnHelper():KApplication() { KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); #ifdef Q_WS_X11 m_id=KWindowSystem::activeWindow(); KWindowSystem::activateWindow(m_id); #else m_id = 0; #endif KUrl::List list; for ( int i = 0 ; i < args->count() ; i++ ) list << args->url(i); if (args->isSet("u")) { kDebug(7128) << "update " << list; const KUrl servURL("svn+http://this_is_a_fake_URL_and_this_is_normal/"); //FIXME when 1.2 is out (move the loop inside kio_svn's ::update) for ( QList<KUrl>::const_iterator it = list.constBegin(); it != list.constEnd() ; ++it ) { QByteArray parms; QDataStream s( &parms, QIODevice::WriteOnly ); int cmd = 2; int rev = -1; kDebug(7128) << "updating : " << (*it).prettyUrl(); s << cmd << *it << rev << QString( "HEAD" ); KIO::SimpleJob * job = KIO::special(servURL, parms); connect( job, SIGNAL( result( KJob * ) ), this, SLOT( slotResult( KJob * ) ) ); KIO::NetAccess::synchronousRun( job, 0 ); } } else if (args->isSet("c")) {
void GalleryWindow::slotAddPhoto() { QTreeWidgetItem* item = d->albumView->currentItem(); int column = d->albumView->currentColumn(); if (!item) return; // NO album selected: FIXME: do something // albumName QString albumTitle = item->text(column); if(!d->albumDict.contains(albumTitle)) return; // NO album name found: FIXME: do something // photoPath KUrl::List urls = KPImageDialog::getImageUrls(this, m_interface); if (urls.isEmpty()) return; // NO photo selected: FIXME: do something for (KUrl::List::ConstIterator it = urls.constBegin(); it != urls.constEnd(); ++it) { mpUploadList->append( (*it).path() ); } m_uploadTotal = mpUploadList->count(); m_progressDlg->reset(); m_progressDlg->setMaximum(m_uploadTotal); m_uploadCount = 0; slotAddPhotoNext(); }
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 ( K3URLDrag::decode( ev, urls ) ) { for(KUrl::List::ConstIterator it = urls.constBegin(); it != urls.constEnd(); ++it) { addUrl(0, *it); } } } else { KonqSidebarTreeItem *selection = static_cast<KonqSidebarTreeItem *>( selectedItem() ); selection->drop( ev ); } } else { K3ListView::contentsDropEvent(ev); } }
/** Replaces the ImagesList::slotAddImages method, so that * MyImageListViewItems can be added instead of ImagesListViewItems */ void MyImageList::slotAddImages(const KUrl::List& list) { // Figure out which of the supplied URL's should actually be added and which // of them already exist. bool found = false; for (KUrl::List::ConstIterator it = list.constBegin(); it != list.constEnd(); ++it) { KUrl imageUrl = *it; found = false; for (int i = 0; i < listView()->topLevelItemCount(); ++i) { MyImageListViewItem* const currItem = dynamic_cast<MyImageListViewItem*>(listView()->topLevelItem(i)); if (currItem && currItem->url() == imageUrl) { found = true; break; } } if (!found && KPMetadata::isRawFile(imageUrl)) { new MyImageListViewItem(listView(), imageUrl); } } // Duplicate the signalImageListChanged of the ImageWindow, to enable the // upload button again. emit signalImageListChanged(); }
void UploadDialog::imagesFilesButtonAdd() { QStringList fileList; KUrl::List urls; #if KIPI_PLUGIN urls = KPImageDialog::getImageUrls(this); #else const QString filter = QString( "*.jpg *.jpeg *.jpe *.tiff *.gif *.png *.bmp|" + i18n("Image files") ); QPointer<KFileDialog> dlg = new KFileDialog( QString(), filter, this ); // QPointer<KFileDialog> dlg = new KFileDialog( QString::null, filter, this, "addImagesDlg", true ); dlg->setCaption( i18n("Add Images") ); dlg->setMode( KFile::Files | KFile::Directory ); dlg->exec(); urls = dlg->selectedUrls(); delete dlg; #endif if ( urls.isEmpty() ) return; for( KUrl::List::ConstIterator it = urls.constBegin() ; it != urls.constEnd() ; ++it ) fileList << (*it).path(); addDropItems( fileList ); }
void KipiInterface::addSelectedAlbums(const KUrl::List& albums) { for (KUrl::List::const_iterator it = albums.constBegin(); it!=albums.constEnd(); ++it) { addSelectedAlbum(*it); } }
KURL::List K3b::convertToLocalUrls( const KURL::List& urls ) { KURL::List r; for( KURL::List::const_iterator it = urls.constBegin(); it != urls.constEnd(); ++it ) r.append( convertToLocalUrl( *it ) ); return r; }
//----------------------------------------------------------------------------- void SplashInstaller::slotFilesDropped(const KUrl::List &urls) { for(KUrl::List::ConstIterator it = urls.constBegin(); it != urls.end(); ++it) addNewTheme(*it); }
void SoundtrackDialog::addItems(const KUrl::List& fileList) { if (fileList.isEmpty()) return; KUrl::List Files = fileList; for (KUrl::List::ConstIterator it = Files.constBegin(); it != Files.constEnd(); ++it) { KUrl currentFile = *it; KUrl path = KUrl(currentFile.path().section('/', 0, -1)); m_sharedData->soundtrackPath = path; SoundItem *item = new SoundItem(m_SoundFilesListBox, path); item->setName(currentFile.path().section('/', -1)); m_SoundFilesListBox->insertItem(m_SoundFilesListBox->count() - 1, item); m_soundItems->insert(path, item); connect(m_soundItems->value(path), SIGNAL(signalTotalTimeReady(const KUrl&, const QTime&)), this, SLOT(slotAddNewTime(const KUrl&, const QTime&))); m_urlList.append(path); } m_SoundFilesListBox->setCurrentItem(m_SoundFilesListBox->item(m_SoundFilesListBox->count() - 1)) ; slotSoundFilesSelected(m_SoundFilesListBox->currentRow()); m_SoundFilesListBox->scrollToItem(m_SoundFilesListBox->currentItem()); m_previewButton->setEnabled(true); }
void KipiInterface::refreshImages(const KUrl::List& urls) { kipiDebug(QString( "Plugin asks to refresh %1 images:").arg( urls.size() )); for (KUrl::List::ConstIterator it = urls.constBegin(); it!=urls.constEnd(); ++it) { kipiDebug(" " + (*it).url()); } }
void KNewFileMenuPrivate::executeStrategy() { m_tempFileToDelete = m_copyData.tempFileToDelete(); const QString src = m_copyData.sourceFileToCopy(); QString chosenFileName = expandTilde(m_copyData.chosenFileName(), true); if (src.isEmpty()) return; KUrl uSrc(src); if (uSrc.isLocalFile()) { // In case the templates/.source directory contains symlinks, resolve // them to the target files. Fixes bug #149628. KFileItem item(uSrc, QString(), KFileItem::Unknown); if (item.isLink()) uSrc.setPath(item.linkDest()); if (!m_copyData.m_isSymlink) { // If the file is not going to be detected as a desktop file, due to a // known extension (e.g. ".pl"), append ".desktop". #224142. QFile srcFile(uSrc.toLocalFile()); if (srcFile.open(QIODevice::ReadOnly)) { KMimeType::Ptr wantedMime = KMimeType::findByUrl(uSrc); KMimeType::Ptr mime = KMimeType::findByNameAndContent(m_copyData.m_chosenFileName, srcFile.read(1024)); //kDebug() << "mime=" << mime->name() << "wantedMime=" << wantedMime->name(); if (!mime->is(wantedMime->name())) chosenFileName += wantedMime->mainExtension(); } } } // The template is not a desktop file [or it's a URL one] // Copy it. KUrl::List::const_iterator it = m_popupFiles.constBegin(); for (; it != m_popupFiles.constEnd(); ++it) { KUrl dest(*it); dest.addPath(KIO::encodeFileName(chosenFileName)); KUrl::List lstSrc; lstSrc.append(uSrc); KIO::Job* kjob; if (m_copyData.m_isSymlink) { kjob = KIO::symlink(src, dest); // This doesn't work, FileUndoManager registers new links in copyingLinkDone, // which KIO::symlink obviously doesn't emit... Needs code in FileUndoManager. //KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Link, lstSrc, dest, kjob); } else { //kDebug(1203) << "KIO::copyAs(" << uSrc.url() << "," << dest.url() << ")"; KIO::CopyJob * job = KIO::copyAs(uSrc, dest); job->setDefaultPermissions(true); kjob = job; KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Copy, lstSrc, dest, job); } kjob->ui()->setWindow(m_parentWidget); QObject::connect(kjob, SIGNAL(result(KJob*)), q, SLOT(slotResult(KJob*))); } }
void PlaylistWindow::slotAddLocation( bool directPlay ) //SLOT { // open a file selector to add media to the playlist KURL::List files; //files = KFileDialog::getOpenURLs( QString::null, "*.*|" + i18n("All Files"), this, i18n("Add Media") ); KFileDialog dlg(QString::null, "*.*|", this, "openMediaDialog", true); dlg.setCaption(directPlay ? i18n("Play Media (Files or URLs)") : i18n("Add Media (Files or URLs)")); dlg.setMode( KFile::Files | KFile::Directory ); dlg.exec(); files = dlg.selectedURLs(); if( files.isEmpty() ) return; const int options = directPlay ? Playlist::Append | Playlist::DirectPlay : Playlist::Append; const KURL::List::ConstIterator end = files.constEnd(); for( KURL::List::ConstIterator it = files.constBegin(); it != end; ++it ) if( it == files.constBegin() ) Playlist::instance()->insertMedia( *it, options ); else Playlist::instance()->insertMedia( *it, Playlist::Append ); }
void DeleteWidget::setFiles(const KUrl::List &files) { ddFileList->clear(); // ddFileList->insertStringList(files); for( KUrl::List::ConstIterator it = files.constBegin(), end = files.constEnd(); it != end; ++it) { if( (*it).isLocalFile() ) //path is nil for non-local ddFileList->insertItem( (*it).path() ); else ddFileList->insertItem( (*it).url() ); } ddNumFiles->setText(i18np("<b>1</b> file selected.", "<b>%1</b> files selected.", files.count())); }
void QGpgMECryptoConfigEntry::setURLValueList( const KUrl::List& urls ) { QStringList lst; for( KUrl::List::const_iterator it = urls.constBegin(); it != urls.constEnd(); ++it ) { lst << splitURL( mRealArgType, *it ); } mValue = lst; if ( lst.isEmpty() && !isOptional() ) mSet = false; else mSet = true; mDirty = true; }
void ActionThread::processRawFiles(const KUrl::List& urlList) { for (KUrl::List::const_iterator it = urlList.constBegin(); it != urlList.constEnd(); ++it ) { ActionThreadPriv::Task* t = new ActionThreadPriv::Task; t->fileUrl = *it; t->action = PROCESS; QMutexLocker lock(&d->mutex); d->todo << t; d->condVar.wakeAll(); } }
void ActionThread::identifyRawFiles(const KUrl::List& urlList, bool full) { for (KUrl::List::const_iterator it = urlList.constBegin(); it != urlList.constEnd(); ++it ) { ActionThreadPriv::Task* t = new ActionThreadPriv::Task; t->fileUrl = *it; t->action = full ? IDENTIFY_FULL : IDENTIFY; QMutexLocker lock(&d->mutex); d->todo << t; d->condVar.wakeAll(); } }
void BatchProcessImagesDialog::slotImagesFilesButtonAdd() { QStringList ImageFilesList; const KUrl::List urls = KPImageDialog::getImageUrls(this); if (urls.isEmpty()) return; for (KUrl::List::ConstIterator it = urls.constBegin(); it != urls.constEnd(); ++it) ImageFilesList << (*it).path(); // PENDING(blackie) handle remote URLS slotAddDropItems(ImageFilesList); }
//-------------------------------------------------------------------------- QString KMFolder::mailingListPostAddress() const { if ( mMailingList.features() & MailingList::Post ) { KUrl::List::const_iterator it; KUrl::List post = mMailingList.postURLS(); for( it = post.constBegin(); it != post.constEnd(); ++it ) { // We check for isEmpty because before 3.3 postAddress was just an // [email protected] and that leaves protocol() field in the kurl class if ( (*it).protocol() == "mailto" || (*it).protocol().isEmpty() ) return (*it).path(); } } return QString(); }
void KNewFileMenuPrivate::executeStrategy() { m_tempFileToDelete = m_strategy.tempFileToDelete(); const QString src = m_strategy.sourceFileToCopy(); QString chosenFileName = expandTilde(m_strategy.chosenFileName(), true); if (src.isEmpty()) return; KUrl uSrc(src); if (uSrc.isLocalFile()) { // In case the templates/.source directory contains symlinks, resolve // them to the target files. Fixes bug #149628. KFileItem item(uSrc, QString(), KFileItem::Unknown); if (item.isLink()) uSrc.setPath(item.linkDest()); } // The template is not a desktop file [or it's a URL one] // Copy it. KUrl::List::const_iterator it = m_popupFiles.constBegin(); for (; it != m_popupFiles.constEnd(); ++it) { KUrl dest(*it); dest.addPath(KIO::encodeFileName(chosenFileName)); KUrl::List lstSrc; lstSrc.append(uSrc); KIO::Job* kjob; if (m_strategy.m_isSymlink) { kjob = KIO::symlink(src, dest); // This doesn't work, FileUndoManager registers new links in copyingLinkDone, // which KIO::symlink obviously doesn't emit... Needs code in FileUndoManager. //KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Link, lstSrc, dest, kjob); } else { //kDebug(1203) << "KIO::copyAs(" << uSrc.url() << "," << dest.url() << ")"; KIO::CopyJob * job = KIO::copyAs(uSrc, dest); job->setDefaultPermissions(true); kjob = job; KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Copy, lstSrc, dest, job); } kjob->ui()->setWindow(m_parentWidget); QObject::connect(kjob, SIGNAL(result(KJob*)), q, SLOT(slotResult(KJob*))); } }
void KNoteEdit::dropEvent( QDropEvent *e ) { const QMimeData *md = e->mimeData(); if ( KUrl::List::canDecode( md ) ) { KUrl::List list = KUrl::List::fromMimeData( md ); KUrl::List::ConstIterator begin = list.constBegin(); KUrl::List::ConstIterator end = list.constEnd(); for ( KUrl::List::ConstIterator it = begin; it != end; ++it ) { if ( it != begin ) { insertPlainText( ", " ); } insertPlainText( ( *it ).prettyUrl() ); } } else { KTextEdit::dropEvent( e ); } }
K3BookmarkDrag * K3BookmarkDrag::newDrag( const Q3ValueList<KBookmark> & bookmarks, QWidget * dragSource, const char * name ) { KUrl::List urls; for ( Q3ValueListConstIterator<KBookmark> it = bookmarks.constBegin(); it != bookmarks.constEnd(); ++it ) { urls.append( (*it).url() ); } // See KURLDrag::newDrag Q3StrList uris; KUrl::List::ConstIterator uit = urls.constBegin(); KUrl::List::ConstIterator uEnd = urls.constEnd(); // Get each URL encoded in utf8 - and since we get it in escaped // form on top of that, .toLatin1().constData() is fine. for ( ; uit != uEnd ; ++uit ) uris.append( K3URLDrag::urlToString(*uit).toLatin1() ); return new K3BookmarkDrag( bookmarks, uris, dragSource, name ); }
void ActionThread::convert2grayscale(const KUrl::List& urlList) { JobCollection* const collection = new JobCollection(); for (KUrl::List::const_iterator it = urlList.constBegin(); it != urlList.constEnd(); ++it ) { ActionThread::Task* const t = new Task(this); t->fileUrl = *it; t->action = GrayScale; connect(t, SIGNAL(started(ThreadWeaver::Job*)), this, SLOT(slotJobStarted(ThreadWeaver::Job*))); connect(t, SIGNAL(done(ThreadWeaver::Job*)), this, SLOT(slotJobDone(ThreadWeaver::Job*))); collection->addJob(t); } appendJob(collection); }
void ActionThread::flip(const KUrl::List& urlList, FlipAction val) { JobCollection* collection = new JobCollection(); for (KUrl::List::const_iterator it = urlList.constBegin(); it != urlList.constEnd(); ++it ) { Task* t = new Task(this); t->fileUrl = *it; t->action = Flip; t->flipAction = val; connect(t, SIGNAL(started(ThreadWeaver::Job*)), this, SLOT(slotJobStarted(ThreadWeaver::Job*))); connect(t, SIGNAL(done(ThreadWeaver::Job*)), this, SLOT(slotJobDone(ThreadWeaver::Job*))); collection->addJob(t); } appendJob(collection); }
bool KMail::Util::mailingListsHandleURL( const KUrl::List& lst,const QSharedPointer<MailCommon::FolderCollection> &folder ) { const QString handler = ( folder->mailingList().handler() == MailingList::KMail ) ? QLatin1String( "mailto" ) : QLatin1String( "https" ); KUrl urlToHandle; KUrl::List::ConstIterator end( lst.constEnd() ); for ( KUrl::List::ConstIterator itr = lst.constBegin(); itr != end; ++itr ) { if ( handler == (*itr).protocol() ) { urlToHandle = *itr; break; } } if ( urlToHandle.isEmpty() && !lst.empty() ) { urlToHandle = lst.first(); } if ( !urlToHandle.isEmpty() ) { return KMail::Util::handleClickedURL( urlToHandle, folder ); } else { kWarning()<< "Can't handle url"; return false; } }
void BatchDialog::slotIdentify() // Set Identity and Target file { QString ext; switch(d->saveSettingsBox->fileFormat()) { case KPSaveSettingsWidget::OUTPUT_JPEG: ext = ".jpg"; break; case KPSaveSettingsWidget::OUTPUT_TIFF: ext = ".tif"; break; case KPSaveSettingsWidget::OUTPUT_PPM: ext = ".ppm"; break; case KPSaveSettingsWidget::OUTPUT_PNG: ext = ".png"; break; } KUrl::List urlList = d->listView->imageUrls(true); for (KUrl::List::const_iterator it = urlList.constBegin(); it != urlList.constEnd(); ++it) { QFileInfo fi((*it).path()); if(d->saveSettingsBox->conflictRule() == KPSaveSettingsWidget::OVERWRITE) { QString dest = fi.completeBaseName() + ext; MyImageListViewItem* item = dynamic_cast<MyImageListViewItem*>(d->listView->listView()->findItem(*it)); if (item) item->setDestFileName(dest); } else { QString dest = fi.absolutePath() + QString("/") + fi.completeBaseName() + ext; QFileInfo a(dest); bool fileNotFound = (a.exists()); if (!fileNotFound) { dest = fi.completeBaseName() + ext; } else { int i = 0; while(fileNotFound) { a = QFileInfo(dest); if (!a.exists()) { fileNotFound = false; } else { i++; dest = fi.absolutePath() + QString("/") + fi.completeBaseName() + QString("_") + QString::number(i) + ext; } } dest = fi.completeBaseName() + QString("_") + QString::number(i) + ext; } MyImageListViewItem* const item = dynamic_cast<MyImageListViewItem*>(d->listView->listView()->findItem(*it)); if (item) { item->setDestFileName(dest); } } } if (!urlList.empty()) { d->thread->identifyRawFiles(urlList); if (!d->thread->isRunning()) d->thread->start(); } }
void PicasawebWindow::slotListPhotosDoneForUpload(int errCode, const QString &errMsg, const QList <PicasaWebPhoto>& photosList) { disconnect(m_talker, SIGNAL(signalListPhotosDone(int,QString,QList<PicasaWebPhoto>)), this, SLOT(slotListPhotosDoneForUpload(int,QString,QList<PicasaWebPhoto>))); if (errCode != 0) { KMessageBox::error(this, i18n("Picasaweb Call Failed: %1\n", errMsg)); return; } typedef QPair<KUrl,PicasaWebPhoto> Pair; m_transferQueue.clear(); KUrl::List urlList = m_widget->m_imgList->imageUrls(true); if (urlList.isEmpty()) return; for (KUrl::List::ConstIterator it = urlList.constBegin(); it != urlList.constEnd(); ++it) { KPImageInfo info(*it); PicasaWebPhoto temp; temp.title = info.name(); // Picasa doesn't support image titles. Include it in descriptions if needed. QStringList descriptions = QStringList() << info.title() << info.description(); descriptions.removeAll(""); temp.description = descriptions.join("\n\n"); // check for existing items QString localId; KPMetadata meta; if (meta.load((*it).toLocalFile())) { localId = meta.getXmpTagString("Xmp.kipi.picasawebGPhotoId"); } QList<PicasaWebPhoto>::const_iterator itPWP; for (itPWP = photosList.begin(); itPWP != photosList.end(); ++itPWP) { if ((*itPWP).id == localId) { temp.id = localId; temp.editUrl = (*itPWP).editUrl; temp.thumbURL = (*itPWP).thumbURL; break; } } //Tags from the database temp.gpsLat.setNum(info.latitude()); temp.gpsLon.setNum(info.longitude()); temp.tags = info.tagsPath(); m_transferQueue.append( Pair( (*it), temp) ); } if (m_transferQueue.isEmpty()) return; m_currentAlbumID = m_widget->m_albumsCoB->itemData( m_widget->m_albumsCoB->currentIndex()).toString(); m_imagesTotal = m_transferQueue.count(); m_imagesCount = 0; m_widget->progressBar()->setFormat(i18n("%v / %m")); m_widget->progressBar()->setMaximum(m_imagesTotal); m_widget->progressBar()->setValue(0); m_widget->progressBar()->show(); m_widget->progressBar()->progressScheduled(i18n("Picasa Export"), true, true); m_widget->progressBar()->progressThumbnailChanged(KIcon("kipi").pixmap(22, 22)); m_renamingOpt = 0; uploadNextPhoto(); }
void KOEditorAttachments::handlePasteOrDrop( const QMimeData *mimeData ) { KUrl::List urls; bool probablyWeHaveUris = false; bool weCanCopy = true; QStringList labels; if ( KPIM::KVCardDrag::canDecode( mimeData ) ) { KABC::Addressee::List addressees; KPIM::KVCardDrag::fromMimeData( mimeData, addressees ); for ( KABC::Addressee::List::ConstIterator it = addressees.constBegin(); it != addressees.constEnd(); ++it ) { urls.append( KDEPIMPROTOCOL_CONTACT + ( *it ).uid() ); // there is some weirdness about realName(), hence fromUtf8 labels.append( QString::fromUtf8( ( *it ).realName().toLatin1() ) ); } probablyWeHaveUris = true; } else if ( KUrl::List::canDecode( mimeData ) ) { QMap<QString,QString> metadata; urls = KUrl::List::fromMimeData( mimeData, &metadata ); probablyWeHaveUris = true; labels = metadata["labels"].split( ':', QString::SkipEmptyParts ); for ( QStringList::Iterator it = labels.begin(); it != labels.end(); ++it ) { *it = KUrl::fromPercentEncoding( (*it).toLatin1() ); } } else if ( mimeData->hasText() ) { QString text = mimeData->text(); QStringList lst = text.split( '\n', QString::SkipEmptyParts ); for ( QStringList::ConstIterator it = lst.constBegin(); it != lst.constEnd(); ++it ) { urls.append( *it ); } probablyWeHaveUris = true; } KMenu menu( this ); QAction *linkAction = 0, *cancelAction; if ( probablyWeHaveUris ) { linkAction = menu.addAction( i18nc( "@action:inmenu", "&Link here" ) ); // we need to check if we can reasonably expect to copy the objects for ( KUrl::List::ConstIterator it = urls.constBegin(); it != urls.constEnd(); ++it ) { if ( !( weCanCopy = KProtocolManager::supportsReading( *it ) ) ) { break; // either we can copy them all, or no copying at all } } if ( weCanCopy ) { menu.addAction( i18nc( "@action:inmenu", "&Copy here" ) ); } } else { menu.addAction( i18nc( "@action:inmenu", "&Copy here" ) ); } menu.addSeparator(); cancelAction = menu.addAction( i18nc( "@action:inmenu", "C&ancel" ) ); QByteArray data; QString mimeType; QString label; if(!mimeData->formats().isEmpty() && !probablyWeHaveUris) { data=mimeData->data( mimeData->formats().first() ); mimeType = mimeData->formats().first(); if( KMimeType::mimeType( mimeData->formats().first() ) ) label = KMimeType::mimeType( mimeData->formats().first() )->name(); } QAction *ret = menu.exec( QCursor::pos() ); if ( linkAction == ret ) { QStringList::ConstIterator jt = labels.constBegin(); for ( KUrl::List::ConstIterator it = urls.constBegin(); it != urls.constEnd(); ++it ) { addUriAttachment( (*it).url(), QString(), ( jt == labels.constEnd() ? QString() : *( jt++ ) ), true ); } } else if ( cancelAction != ret ) { if ( probablyWeHaveUris ) { for ( KUrl::List::ConstIterator it = urls.constBegin(); it != urls.constEnd(); ++it ) { KIO::Job *job = KIO::storedGet( *it ); connect( job, SIGNAL(result(KJob *)), SLOT(downloadComplete(KJob *)) ); } } else { // we take anything addDataAttachment( data, mimeType, label ); } } }
int main(int argc, char **argv) { KCmdLineOptions options; options.add("+[cmd]"); options.add("+[url]"); KCmdLineArgs::init(argc, argv, "kfstest", 0, ki18n("kfstest"), "0", ki18n("test app")); KCmdLineArgs::addCmdLineOptions(options); KApplication a; a.setQuitOnLastWindowClosed(false); QString name1; QStringList names; QString argv1; KUrl startDir; if (argc > 1) argv1 = QLatin1String(argv[1]); if ( argc > 2 ) startDir = KUrl( argv[2] ); #if 0 // SPLIT-TODO if (argv1 == QLatin1String("diroperator")) { KDirOperator *op = new KDirOperator(startDir, 0); KConfigGroup grp(KGlobal::config(), "TestGroup" ); op->setViewConfig(grp); op->setView(KFile::Simple); op->show(); a.exec(); } else #endif if (argv1 == QLatin1String("localonly")) { QString name = KFileDialog::getOpenFileName(startDir); qDebug("filename=%s",name.toLatin1().constData()); } else if (argv1 == QLatin1String("oneurl")) { KUrl url = KFileDialog::getOpenUrl(startDir); qDebug() << "url=" << url; } else if (argv1 == QLatin1String("existingDirectoryUrl")) { KUrl url = KFileDialog::getExistingDirectoryUrl(); qDebug("URL=%s",url.url().toLatin1().constData()); name1 = url.url(); } else if (argv1 == QLatin1String("preview")) { KUrl u = KFileDialog::getImageOpenUrl(); qDebug("filename=%s", u.url().toLatin1().constData()); } else if (argv1 == QLatin1String("preselect")) { names = KFileDialog::getOpenFileNames(KUrl("/etc/passwd")); QStringList::Iterator it = names.begin(); while ( it != names.end() ) { qDebug("selected file: %s", (*it).toLatin1().constData()); ++it; } } else if (argv1 == QLatin1String("dirs")) name1 = KFileDialog::getExistingDirectory(); else if (argv1 == QLatin1String("heap")) { KFileDialog *dlg = new KFileDialog( startDir, QString(), 0L); dlg->setMode( KFile::File); dlg->setOperationMode( KFileDialog::Saving ); QStringList filter; filter << "all/allfiles" << "text/plain"; dlg->setMimeFilter( filter, "all/allfiles" ); #if 0 // SPLIT-TODO KUrlBar *urlBar = dlg->speedBar(); if ( urlBar ) { urlBar->insertDynamicItem( KUrl("ftp://ftp.kde.org"), QLatin1String("KDE FTP Server") ); } #endif if ( dlg->exec() == KDialog::Accepted ) name1 = dlg->selectedUrl().url(); } else if ( argv1 == QLatin1String("eventloop") ) { new KFDTest( startDir ); return a.exec(); } else if (argv1 == QLatin1String("save")) { KUrl u = KFileDialog::getSaveUrl(startDir); // QString(QDir::homePath() + QLatin1String("/testfile")), // QString(), 0L); name1 = u.url(); } else if (argv1 == QLatin1String("icon")) { KIconDialog dlg; QString icon = dlg.getIcon(); kDebug() << icon; } // else if ( argv1 == QLatin1String("dirselect") ) { // KUrl url; // url.setPath( "/" ); // KUrl selected = KDirSelectDialog::selectDirectory( url ); // name1 = selected.url(); // qDebug("*** selected: %s", selected.url().toLatin1().constData()); // } else { KFileDialog dlg(startDir, QString::fromLatin1("*|All Files\n" "*.lo *.o *.la|All libtool Files"),0); // dlg.setFilter( "*.kdevelop" ); dlg.setMode( KFile::Files | KFile::Directory | KFile::ExistingOnly | KFile::LocalOnly ); // QStringList filter; // filter << "text/plain" << "text/html" << "image/png"; // dlg.setMimeFilter( filter ); // KMimeType::List types; // types.append( KMimeType::mimeType( "text/plain" ) ); // types.append( KMimeType::mimeType( "text/html" ) ); // dlg.setFilterMimeType( "Filetypes:", types, types.first() ); if ( dlg.exec() == QDialog::Accepted ) { const KUrl::List list = dlg.selectedUrls(); KUrl::List::ConstIterator it = list.constBegin(); qDebug("*** selectedUrls(): "); while ( it != list.constEnd() ) { name1 = (*it).url(); qDebug(" -> %s", name1.toLatin1().constData()); ++it; } qDebug("*** selectedFile: %s", dlg.selectedFile().toLatin1().constData()); qDebug("*** selectedUrl: %s", dlg.selectedUrl().url().toLatin1().constData()); qDebug("*** selectedFiles: "); QStringList l = dlg.selectedFiles(); QStringList::Iterator it2 = l.begin(); while ( it2 != l.end() ) { qDebug(" -> %s", (*it2).toLatin1().constData()); ++it2; } } } if (!(name1.isNull())) KMessageBox::information(0, QLatin1String("You selected the file " ) + name1, QLatin1String("Your Choice")); return 0; }
/*! \fn KmlExport::generate() */ void KmlExport::generate() { //! @todo perform a test here before continuing. createDir(QString(m_tempDestDir + m_imageDir)); m_progressDialog->show(); ImageCollection selection = m_interface->currentSelection(); ImageCollection album = m_interface->currentAlbum(); // create the document, and it's root m_kmlDocument = new QDomDocument(""); QDomImplementation impl; QDomProcessingInstruction instr = m_kmlDocument->createProcessingInstruction("xml", "version=\"1.0\" encoding=\"UTF-8\""); m_kmlDocument->appendChild(instr); QDomElement kmlRoot = m_kmlDocument->createElementNS("http://www.opengis.net/kml/2.2", "kml"); m_kmlDocument->appendChild( kmlRoot ); QDomElement kmlAlbum = addKmlElement(kmlRoot, "Document"); QDomElement kmlName = addKmlTextElement(kmlAlbum, "name", album.name()); QDomElement kmlDescription = addKmlHtmlElement(kmlAlbum, "description", "Created with kmlexport <a href=\"http://www.digikam.org/\">kipi-plugin</a>"); if (m_GPXtracks) { addTrack(kmlAlbum); } KPMetadata meta; KUrl::List images = selection.images(); int defectImage = 0; int pos = 1; int count = images.count(); KUrl::List::ConstIterator imagesEnd (images.constEnd()); for( KUrl::List::ConstIterator selIt = images.constBegin(); selIt != imagesEnd; ++selIt, ++pos) { double alt, lat, lng; KUrl url = *selIt; KPImageInfo info(url); bool hasGPSInfo = info.hasGeolocationInfo(); if (hasGPSInfo) { lat = info.latitude(); lng = info.longitude(); alt = info.altitude(); } else { meta.load(url.path()); hasGPSInfo = meta.getGPSInfo(alt, lat, lng); } if ( hasGPSInfo ) { // generation de l'image et de l'icone generateImagesthumb(url, kmlAlbum); } else { logWarning(i18n("No position data for '%1'", info.name())); defectImage++; } m_progressDialog->progressWidget()->setProgress(pos, count); kapp->processEvents(); } if (defectImage) { /** @todo if defectImage==count there are no pictures exported, does is it worth to continue? */ KMessageBox::information(kapp->activeWindow(), i18np("No position data for 1 picture", "No position data for %1 pictures", defectImage)); } /** @todo change to kml or kmz if compressed */ QFile file( m_tempDestDir + m_KMLFileName + ".kml"); /** @todo handle file opening problems */ file.open( QIODevice::WriteOnly ); QTextStream stream( &file ); // we will serialize the data into the file stream << m_kmlDocument->toString(); file.close(); delete m_kmlDocument; m_kmlDocument = 0; KIO::moveAs(m_tempDestDir, m_baseDestDir, KIO::HideProgressInfo | KIO::Overwrite); logInfo(i18n("Move to final directory")); m_progressDialog->close(); }
void BracketStackList::addItems(const KUrl::List& list) { if (list.count() == 0) return; KUrl::List urls; for ( KUrl::List::ConstIterator it = list.constBegin(); it != list.constEnd(); ++it ) { KUrl imageUrl = *it; // Check if the new item already exist in the list. bool found = false; QTreeWidgetItemIterator iter(this); while (*iter) { BracketStackItem* item = dynamic_cast<BracketStackItem*>(*iter); if (item->url() == imageUrl) found = true; ++iter; } if (!found) { BracketStackItem* item = new BracketStackItem(this); item->setUrl(imageUrl); item->setOn(true); urls.append(imageUrl); } } if (d->iface) { d->iface->thumbnails(urls, iconSize().width()); } else { #if KDE_IS_VERSION(4,7,0) KFileItemList items; for (KUrl::List::ConstIterator it = urls.begin() ; it != urls.end() ; ++it) { if ((*it).isValid()) items.append(KFileItem(KFileItem::Unknown, KFileItem::Unknown, *it, true)); } KIO::PreviewJob* job = KIO::filePreview(items, iconSize()); #else KIO::PreviewJob *job = KIO::filePreview(urls, iconSize().width()); #endif connect(job, SIGNAL(gotPreview(KFileItem,QPixmap)), this, SLOT(slotKDEPreview(KFileItem,QPixmap))); connect(job, SIGNAL(failed(KFileItem)), this, SLOT(slotKDEPreviewFailed(KFileItem))); } emit signalAddItems(urls); }