KURL::List MediaDirNotify::toMediaURL(const KURL &url) { kdDebug(1219) << "MediaDirNotify::toMediaURL(" << url << ")" << endl; KURL::List result; const TQPtrList<Medium> list = m_mediaList.list(); TQPtrList<Medium>::const_iterator it = list.begin(); TQPtrList<Medium>::const_iterator end = list.end(); for (; it!=end; ++it) { const Medium *m = *it; KURL base = m->prettyBaseURL(); if ( base.isParentOf(url) ) { TQString path = KURL::relativePath(base.path(), url.path()); KURL new_url("media:/"+m->name()+"/"+path ); new_url.cleanPath(); result.append(new_url); } } kdDebug(1219) << result << endl; return result; }
KURL HomeDirNotify::toHomeURL(const KURL &url) { kdDebug() << "HomeDirNotify::toHomeURL(" << url << ")" << endl; init(); QMap< QString, KURL >::iterator it = m_homeFoldersMap.begin(); QMap< QString, KURL >::iterator end = m_homeFoldersMap.end(); for(; it != end; ++it) { QString name = it.key(); KURL base = it.data(); if(base.isParentOf(url)) { QString path = KURL::relativePath(base.path(), url.path()); KURL result("home:/" + name + "/" + path); result.cleanPath(); kdDebug() << "result => " << result << endl; return result; } } kdDebug() << "result => KURL()" << endl; return KURL(); }
KURL SystemDirNotify::toSystemURL(const KURL &url) { kdDebug() << "SystemDirNotify::toSystemURL(" << url << ")" << endl; init(); QMap<KURL,KURL>::const_iterator it = m_urlMap.begin(); QMap<KURL,KURL>::const_iterator end = m_urlMap.end(); for (; it!=end; ++it) { KURL base = it.key(); if ( base.isParentOf(url) ) { QString path = KURL::relativePath(base.path(), url.path()); KURL result = it.data(); result.addPath(path); result.cleanPath(); kdDebug() << result << endl; return result; } } kdDebug() << "KURL()" << endl; return KURL(); }
KURL URLUtil::mergeURL(const KURL & source, const KURL & dest, const KURL & child) { // if already a child of source, then fine if (source.isParentOf(child) || source == child) return child; // if not a child of dest, return blank URL (error) if (!dest.isParentOf(child) && dest != child) return KURL(); // if child is same as dest, return source if (dest == child) return source; // calculate QString childUrlStr = child.url(-1); QString destStemStr = dest.url(1); QString sourceStemStr = source.url(1); return KURL(sourceStemStr.append( childUrlStr.mid( destStemStr.length() ) ) ); }
QString URLUtil::relativePath(const KURL & parent, const KURL & child, uint slashPolicy) { bool slashPrefix = slashPolicy & SLASH_PREFIX; bool slashSuffix = slashPolicy & SLASH_SUFFIX; if (parent == child) return slashPrefix ? QString("/") : QString(""); if (!parent.isParentOf(child)) return QString(); int a=slashPrefix ? -1 : 1; int b=slashSuffix ? 1 : -1; return child.path(b).mid(parent.path(a).length()); }
//rename the elements in the project dom tree void Project::slotRenamed(const KURL& oldURL, const KURL& newURL) { if ( oldURL == newURL) // just in case return; // remove the target if already there // TODO: check if this is correct because it removes a folder but not the content? d->m_projectFiles.removeFromListAndXML(newURL); emit statusMsg(i18n("Renaming files...")); progressBar->setTotalSteps(d->m_projectFiles.count()); progressBar->setValue(0); progressBar->setTextEnabled(true); QDomElement el; bool isFolder = oldURL.fileName(false).isEmpty(); ProjectList::Iterator it( d->m_projectFiles ); for ( ; it.current(); ++it) { ProjectURL * curUrl = it.current(); if ( oldURL == *curUrl || (isFolder && oldURL.isParentOf(*curUrl)) ) { curUrl->setPath( curUrl->path().replace(oldURL.path(), newURL.path()) ); el = curUrl->domElement; el.setAttribute("url", d->m_projectFiles.toRelative(*curUrl).path()); // el.setAttribute("upload_time", ""); d->m_modified = true; if (! isFolder) break; } progressBar->advance(1); } progressBar->setTotalSteps(1); progressBar->setValue(0); progressBar->setTextEnabled(false); emit statusMsg(QString::null); if (d->m_modified) setModified(); // there happens more than setting the flag ! emit reloadTree(&(d->m_projectFiles), false, QStringList()); emit newStatus(); }
void BookmarksSidebarPage::adjustSelection(const KURL& url) { // TODO (remarked in dolphin/TODO): the following code is quite equal // to BookmarkSelector::updateSelection(). KBookmarkGroup root = DolphinSettings::instance().bookmarkManager()->root(); KBookmark bookmark = root.first(); int maxLength = 0; int selectedIndex = -1; // Search the bookmark which is equal to the URL or at least is a parent URL. // If there are more than one possible parent URL candidates, choose the bookmark // which covers the bigger range of the URL. int i = 0; while (!bookmark.isNull()) { const KURL bookmarkURL = bookmark.url(); if (bookmarkURL.isParentOf(url)) { const int length = bookmarkURL.prettyURL().length(); if (length > maxLength) { selectedIndex = i; maxLength = length; } } bookmark = root.next(bookmark); ++i; } const bool block = m_bookmarksList->signalsBlocked(); m_bookmarksList->blockSignals(true); if (selectedIndex < 0) { // no bookmark matches, hence deactivate any selection const int currentIndex = m_bookmarksList->index(m_bookmarksList->selectedItem()); m_bookmarksList->setSelected(currentIndex, false); } else { // select the bookmark which is part of the current URL m_bookmarksList->setSelected(selectedIndex, true); } m_bookmarksList->blockSignals(block); }
void Project::slotRemove(const KURL& urlToRemove) { emit statusMsg(i18n("Removing files...")); progressBar->setTotalSteps(d->m_projectFiles.count()); progressBar->setValue(0); progressBar->setTextEnabled(true); KURL url; bool isFolder = d->m_projectFiles.isFolder(urlToRemove); ProjectList projectFiles = d->m_projectFiles; ProjectList::Iterator it(projectFiles); for ( ; it.current(); ++it) { url = *(it.current()); if (urlToRemove == url || (isFolder && urlToRemove.isParentOf(url)) ) { d->m_projectFiles.removeFromListAndXML(url); d->m_modified = true; emit eventHappened("after_project_remove", url.url(), QString::null); if (!isFolder) break; } progressBar->advance(1); } progressBar->setTotalSteps(1); progressBar->setValue(0); progressBar->setTextEnabled(false); emit statusMsg(QString::null); if (d->m_modified) setModified(); // there happens more than setting the flag ! emit reloadTree( &(d->m_projectFiles), false, QStringList() ); emit newStatus(); QString urlPath = QExtFileInfo::toRelative(urlToRemove, d->baseURL).path(); QString nice = urlPath; nice = KStringHandler::lsqueeze(nice, 60); if (KMessageBox::warningContinueCancel(d->m_mainWindow, i18n("<qt>Do you want to remove <br><b>%1</b><br> from the server(s) as well?</qt>").arg(nice), i18n("Remove From Server"), KStdGuiItem::remove(), "RemoveFromServer") == KMessageBox::Continue ) { QDomNode profilesNode = d->m_sessionDom.firstChild().firstChild().namedItem("uploadprofiles"); QDomNodeList profileList = profilesNode.toElement().elementsByTagName("profile"); QDomElement e; QString s; for (uint i = 0; i < profileList.count(); i++) { e = profileList.item(i).toElement(); QString path = e.attribute("remote_path",""); if (!path.startsWith("/")) path.prepend("/"); KURL baseUrl; baseUrl.setProtocol(e.attribute("remote_protocol","ftp")); baseUrl.setPort(e.attribute("remote_port","").toInt()); baseUrl.setHost(e.attribute("remote_host","")); baseUrl.setPath(path); baseUrl.setUser(e.attribute("user","")); QString passwd = password(e.attribute("remote_protocol") + "://" + e.attribute("user") + "@" + e.attribute("remote_host")); baseUrl.setPass(passwd); baseUrl.addPath(urlPath); KIO::NetAccess::del(baseUrl, d->m_mainWindow); } } }