void KonqSidebarBookmarkModule::slotOpenTab() { KonqSidebarBookmarkItem *bi = dynamic_cast<KonqSidebarBookmarkItem*>( tree()->selectedItem() ); KBookmark bookmark; if (bi) { bookmark = bi->bookmark(); } else if(tree()->selectedItem() == m_topLevelItem) bookmark = s_bookmarkManager->root(); else return; KParts::OpenUrlArguments args; args.setActionRequestedByUser(true); KParts::BrowserArguments browserArguments; browserArguments.setNewTab(true); if (bookmark.isGroup()) { KBookmarkGroup group = bookmark.toGroup(); bookmark = group.first(); while (!bookmark.isNull()) { if (!bookmark.isGroup() && !bookmark.isSeparator()) { emit tree()->createNewWindow(bookmark.url(), args, browserArguments); } bookmark = group.next(bookmark); } } else { emit tree()->createNewWindow(bookmark.url(), args, browserArguments); } }
void KonqSidebarBookmarkModule::slotOpenTab() { KonqSidebarBookmarkItem *bi = dynamic_cast<KonqSidebarBookmarkItem*>( tree()->selectedItem() ); KBookmark bookmark; if (bi) { bookmark = bi->bookmark(); } else if(tree()->selectedItem() == m_topLevelItem) bookmark = KonqBookmarkManager::self()->root(); else return; DCOPRef ref(kapp->dcopClient()->appId(), tree()->topLevelWidget()->name()); if (bookmark.isGroup()) { KBookmarkGroup group = bookmark.toGroup(); bookmark = group.first(); while (!bookmark.isNull()) { if (!bookmark.isGroup() && !bookmark.isSeparator()) ref.call( "newTab(QString)", bookmark.url().url() ); bookmark = group.next(bookmark); } } else { ref.call( "newTab(QString)", bookmark.url().url() ); } }
static inline QUrl urlForGroup(const KBookmark &group) { if ( group.url().isValid() ) return group.url(); else return QUrl::fromUserInput( group.fullText() ); }
static inline bool bookmarkLessThan( const KBookmark &b1, const KBookmark &b2 ) { DocumentViewport vp1( b1.url().htmlRef() ); DocumentViewport vp2( b2.url().htmlRef() ); return vp1 < vp2; }
static inline bool bookmarkLessThan( const KBookmark &b1, const KBookmark &b2 ) { DocumentViewport vp1( b1.url().fragment(QUrl::FullyDecoded) ); DocumentViewport vp2( b2.url().fragment(QUrl::FullyDecoded) ); return vp1 < vp2; }
void BookmarkHandler::openBookmark(const KBookmark& bm, Qt::MouseButtons, Qt::KeyboardModifiers) { // qDebug()<<bm.description()<<bm.fullText()<<bm.text()<<bm.address() << bm.url(); if (bm.description().trimmed().length() > 0) { KUrl aurl = bm.url(); aurl.setPassword("aaaabcd"); aurl.setPassword(bm.description().trimmed()); qDebug()<<aurl << aurl.password(); emit openUrl(aurl); } else { emit openUrl(bm.url()); } }
void KonqSidebarBookmarkModule::slotProperties(KonqSidebarBookmarkItem *bi) { if (!bi) { bi = dynamic_cast<KonqSidebarBookmarkItem*>( tree()->selectedItem() ); if (!bi) return; } KBookmark bookmark = bi->bookmark(); QString folder = bookmark.isGroup() ? QString::null : bookmark.url().pathOrURL(); BookmarkEditDialog dlg( bookmark.fullText(), folder, 0, 0, i18n("Bookmark Properties") ); if ( dlg.exec() != KDialogBase::Accepted ) return; makeTextNodeMod(bookmark, "title", dlg.finalTitle()); if ( !dlg.finalUrl().isNull() ) { KURL u = KURL::fromPathOrURL(dlg.finalUrl()); bookmark.internalElement().setAttribute("href", u.url(0, 106)); } KBookmarkGroup parentBookmark = bookmark.parentGroup(); KonqBookmarkManager::self()->emitChanged( parentBookmark ); }
void BookmarksProtocol::echoBookmark( const KBookmark &bm) { QString descriptionAsTitle = bm.description().toHtmlEscaped(); if (!descriptionAsTitle.isEmpty()) descriptionAsTitle.prepend(QLatin1String("\" title=\"")); echo ("<li class=\"link\"><a href=\"" + bm.url().url() + descriptionAsTitle + "\"><img src=\"/icon/" + bm.icon() + "\"/>" + bm.text().toHtmlEscaped() + "</a></li>"); }
void URLNavigator::slotBookmarkActivated(int index) { m_dolphinView->statusBar()->clear(); m_dolphinView->requestActivation(); KBookmark bookmark = DolphinSettings::instance().bookmark(index); m_dolphinView->setURL(bookmark.url()); }
OkularBookmarkAction( const Okular::DocumentViewport& vp, const KBookmark& bk, KBookmarkOwner* owner, QObject *parent ) : KBookmarkAction( bk, owner, parent ) { if ( vp.isValid() ) setText( QString::number( vp.pageNumber + 1 ) + " - " + text() ); setProperty("pageNumber", vp.pageNumber + 1); setProperty("htmlRef", bk.url().htmlRef()); }
OkularBookmarkAction( const Okular::DocumentViewport& vp, const KBookmark& bk, KBookmarkOwner* owner, QObject *parent ) : KBookmarkAction( bk, owner, parent ) { if ( vp.isValid() ) setText( QString::number( vp.pageNumber + 1 ) + QStringLiteral(" - ") + text() ); setProperty("pageNumber", vp.pageNumber + 1); setProperty("htmlRef", bk.url().fragment(QUrl::FullyDecoded)); }
void BookmarksSidebarPage::slotMouseButtonClicked(int button, QListBoxItem* item) { if ((button != Qt::LeftButton) || (item == 0)) { return; } const int index = m_bookmarksList->index(item); KBookmark bookmark = DolphinSettings::instance().bookmark(index); Dolphin::mainWin().activeView()->setURL(bookmark.url()); }
QList< BookmarkMatch > KDEBrowser::match(const QString& term, bool addEverything) { KBookmarkGroup bookmarkGroup = m_bookmarkManager->root(); QList< BookmarkMatch > matches; QStack<KBookmarkGroup> groups; KBookmark bookmark = bookmarkGroup.first(); while (!bookmark.isNull()) { // if (!context.isValid()) { // return; // } TODO: restore? if (bookmark.isSeparator()) { bookmark = bookmarkGroup.next(bookmark); continue; } if (bookmark.isGroup()) { // descend //kDebug (kdbg_code) << "descending into" << bookmark.text(); groups.push(bookmarkGroup); bookmarkGroup = bookmark.toGroup(); bookmark = bookmarkGroup.first(); while (bookmark.isNull() && !groups.isEmpty()) { // if (!context.isValid()) { // return; // } TODO: restore? bookmark = bookmarkGroup; bookmarkGroup = groups.pop(); bookmark = bookmarkGroup.next(bookmark); } continue; } BookmarkMatch bookmarkMatch(m_favicon, term, bookmark.text(), bookmark.url().url() ); bookmarkMatch.addTo(matches, addEverything); bookmark = bookmarkGroup.next(bookmark); while (bookmark.isNull() && !groups.isEmpty()) { // if (!context.isValid()) { // return; // } // TODO: restore? bookmark = bookmarkGroup; bookmarkGroup = groups.pop(); //kDebug(kdbg_code) << "ascending from" << bookmark.text() << "to" << bookmarkGroup.text(); bookmark = bookmarkGroup.next(bookmark); } } return matches; }
void HTMLExporter::visit(const KBookmark &bk) { // //qDebug() << "visit(" << bk.text() << ")"; if(bk.isSeparator()) { m_out << bk.fullText() << "<br>"<<endl; } else { if(m_showAddress) { m_out << bk.fullText() <<"<br>"<< endl; m_out << "<i><div style =\"margin-left: 1em\">" << bk.url().url().toUtf8() << "</div></i>"; } else { m_out << "<a href=\"" << bk.url().url().toUtf8() << "\">"; m_out << bk.fullText() << "</a><br>" << endl; } } }
void GPSBookmarkOwner::openBookmark(const KBookmark& bookmark, Qt::MouseButtons, Qt::KeyboardModifiers) { const QString url = bookmark.url().url().toLower(); bool okay = false; const GeoIface::GeoCoordinates coordinate = GeoIface::GeoCoordinates::fromGeoUrl(url, &okay); if (okay) { GPSDataContainer position; position.setCoordinates(coordinate); emit(positionSelected(position)); } }
void BookmarksSettingsPage::slotEditButtonClicked() { QListViewItem* item = m_listView->selectedItem(); assert(item != 0); // 'edit' may not get invoked when having no items KBookmark bookmark = EditBookmarkDialog::getBookmark(i18n("Edit Bookmark"), item->text(NameIdx), KURL(item->text(URLIdx)), item->text(IconIdx)); if (!bookmark.isNull()) { item->setPixmap(PixmapIdx, SmallIcon(bookmark.icon())); item->setText(NameIdx, bookmark.text()); item->setText(URLIdx, bookmark.url().prettyURL()); item->setText(IconIdx, bookmark.icon()); } }
void DeleteCommand::redo() { KBookmark bk = m_model->bookmarkManager()->findByAddress(m_from); Q_ASSERT(!bk.isNull()); if (m_contentOnly) { QDomElement groupRoot = bk.internalElement(); QDomNode n = groupRoot.firstChild(); while (!n.isNull()) { QDomElement e = n.toElement(); if (!e.isNull()) { // kDebug() << e.tagName(); } QDomNode next = n.nextSibling(); groupRoot.removeChild(n); n = next; } return; } // TODO - bug - unparsed xml is lost after undo, // we must store it all therefore //FIXME this removes the comments, that's bad! if (!m_cmd) { if (bk.isGroup()) { m_cmd = new CreateCommand(m_model, m_from, bk.fullText(), bk.icon(), bk.internalElement().attribute("folded") == "no"); m_subCmd = deleteAll(m_model, bk.toGroup()); m_subCmd->redo(); } else { m_cmd = (bk.isSeparator()) ? new CreateCommand(m_model, m_from) : new CreateCommand(m_model, m_from, bk.fullText(), bk.icon(), bk.url()); } } m_cmd->undo(); }
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); }
KBookmark* KBookmark::findBookmark( const char *_url ) { if ( !strcmp ( url(), _url )) return this; KBookmark *bm; for ( bm = children()->first(); bm != NULL; bm = children()->next() ) { if ( !strcmp ( bm->url(), _url )) return bm; if ( bm->type() == Folder ) { KBookmark *b = bm->findBookmark( _url ); if ( b ) return b; } } return 0L; }
void EditCommand::redo() { KBookmark bk = m_model->bookmarkManager()->findByAddress(mAddress); if(mCol==-2) { if (mOldValue.isEmpty()) mOldValue = bk.internalElement().attribute("toolbar"); bk.internalElement().setAttribute("toolbar", mNewValue); } else if(mCol==-1) { if (mOldValue.isEmpty()) mOldValue = bk.icon(); bk.setIcon(mNewValue); } else if(mCol==0) { if (mOldValue.isEmpty()) // only the first time, not when compressing changes in modify() mOldValue = bk.fullText(); kDebug() << "mOldValue=" << mOldValue; bk.setFullText(mNewValue); } else if(mCol==1) { if (mOldValue.isEmpty()) mOldValue = bk.url().prettyUrl(); const KUrl newUrl(mNewValue); if (!(newUrl.isEmpty() && !mNewValue.isEmpty())) // prevent emptied line if the currently entered url is invalid bk.setUrl(newUrl); } else if(mCol==2) { if (mOldValue.isEmpty()) mOldValue = bk.description(); bk.setDescription(mNewValue); } m_model->emitDataChanged(bk); }
void BookmarksSettingsPage::slotAddButtonClicked() { KBookmark bookmark = EditBookmarkDialog::getBookmark(i18n("Add Bookmark"), i18n("New bookmark"), KURL(), "bookmark"); if (!bookmark.isNull()) { // insert bookmark into listview QListViewItem* item = new QListViewItem(m_listView); item->setPixmap(PixmapIdx, SmallIcon(bookmark.icon())); item->setText(NameIdx, bookmark.text()); item->setText(URLIdx, bookmark.url().prettyURL()); item->setText(IconIdx, bookmark.icon()); m_listView->insertItem(item); QListViewItem* lastItem = m_listView->lastChild(); if (lastItem != 0) { item->moveItem(lastItem); } m_listView->setSelected(item, true); updateButtons(); } }
void WebBrowser::removeBookmark(const QModelIndex &index) { BookmarkItem *item = dynamic_cast<BookmarkItem *>(m_bookmarkModel->itemFromIndex(index)); if (item) { KBookmark bookmark = item->bookmark(); const QString text(i18nc("@info", "Do you really want to remove the bookmark to %1?", bookmark.url().host())); showMessage(KIcon("dialog-warning"), text, Plasma::ButtonYes | Plasma::ButtonNo); return; } if (item && item->parent()) { item->parent()->removeRow(index.row()); } else { m_bookmarkModel->removeRow(index.row()); } }
static inline KUrl urlForGroup(const KBookmark &group) { if ( group.url().isValid() ) return group.url(); else return KUrl( group.fullText() ); }
BookmarksSettingsPage::BookmarksSettingsPage(QWidget*parent) : SettingsPageBase(parent), m_addButton(0), m_removeButton(0), m_moveUpButton(0), m_moveDownButton(0) { QVBoxLayout* topLayout = new QVBoxLayout(parent, 2, KDialog::spacingHint()); const int spacing = KDialog::spacingHint(); QHBox* hBox = new QHBox(parent); hBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); hBox->setSpacing(spacing); hBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Ignored); m_listView = new KListView(hBox); m_listView->addColumn(i18n("Icon")); m_listView->addColumn(i18n("Name")); m_listView->addColumn(i18n("Location")); m_listView->setResizeMode(QListView::LastColumn); m_listView->setColumnAlignment(0, Qt::AlignHCenter); m_listView->setAllColumnsShowFocus(true); m_listView->setSorting(-1); connect(m_listView, SIGNAL(selectionChanged()), this, SLOT(updateButtons())); connect(m_listView, SIGNAL(pressed(QListViewItem*)), this, SLOT(slotBookmarkPressed(QListViewItem*))); connect(m_listView, SIGNAL(doubleClicked(QListViewItem*, const QPoint&, int)), this, SLOT(slotBookmarkDoubleClicked(QListViewItem*, const QPoint&, int))); QVBox* buttonBox = new QVBox(hBox); buttonBox->setSpacing(spacing); const QSizePolicy buttonSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum); m_addButton = new KPushButton(i18n("Add..."), buttonBox); connect(m_addButton, SIGNAL(clicked()), this, SLOT(slotAddButtonClicked())); m_addButton->setSizePolicy(buttonSizePolicy); m_editButton = new KPushButton(i18n("Edit..."), buttonBox); connect(m_editButton, SIGNAL(clicked()), this, SLOT(slotEditButtonClicked())); m_editButton->setSizePolicy(buttonSizePolicy); m_removeButton = new KPushButton(i18n("Remove"), buttonBox); connect(m_removeButton, SIGNAL(clicked()), this, SLOT(slotRemoveButtonClicked())); m_removeButton->setSizePolicy(buttonSizePolicy); m_moveUpButton = new KPushButton(i18n("Move Up"), buttonBox); connect(m_moveUpButton, SIGNAL(clicked()), this, SLOT(slotMoveUpButtonClicked())); m_moveUpButton->setSizePolicy(buttonSizePolicy); m_moveDownButton = new KPushButton(i18n("Move Down"), buttonBox); connect(m_moveDownButton, SIGNAL(clicked()), this, SLOT(slotMoveDownButtonClicked())); m_moveDownButton->setSizePolicy(buttonSizePolicy); // Add a dummy widget with no restriction regarding a vertical resizing. // This assures that the spacing between the buttons is not increased. new QWidget(buttonBox); topLayout->addWidget(hBox); // insert all editable bookmarks. KBookmarkGroup root = DolphinSettings::instance().bookmarkManager()->root(); KBookmark bookmark = root.first(); QListViewItem* prev = 0; while (!bookmark.isNull()) { QListViewItem* item = new QListViewItem(m_listView); item->setPixmap(PixmapIdx, SmallIcon(bookmark.icon())); item->setText(NameIdx, bookmark.text()); item->setText(URLIdx, bookmark.url().prettyURL()); // add hidden column to be able to retrieve the icon name again item->setText(IconIdx, bookmark.icon()); m_listView->insertItem(item); if (prev != 0) { item->moveItem(prev); } prev = item; bookmark = root.next(bookmark); } m_listView->setSelected(m_listView->firstChild(), true); updateButtons(); }
void BookmarkHandler::openBookmark(const KBookmark& bm, Qt::MouseButtons, Qt::KeyboardModifiers) { emit openUrl(bm.url()); }
void BookmarksSidebarPage::slotContextMenuRequested(QListBoxItem* item, const QPoint& pos) { const int insertID = 1; const int editID = 2; const int deleteID = 3; const int addID = 4; QPopupMenu* popup = new QPopupMenu(); if (item == 0) { popup->insertItem(SmallIcon("filenew"), i18n("Add Bookmark..."), addID); } else { popup->insertItem(SmallIcon("filenew"), i18n("Insert Bookmark..."), insertID); popup->insertItem(SmallIcon("edit"), i18n("Edit..."), editID); popup->insertItem(SmallIcon("editdelete"), i18n("Delete"), deleteID); } KBookmarkManager* manager = DolphinSettings::instance().bookmarkManager(); KBookmarkGroup root = manager->root(); const int index = m_bookmarksList->index(m_bookmarksList->selectedItem()); const int result = popup->exec(pos); switch (result) { case insertID: { KBookmark newBookmark = EditBookmarkDialog::getBookmark(i18n("Insert Bookmark"), i18n("New bookmark"), KURL(), "bookmark"); if (!newBookmark.isNull()) { root.addBookmark(manager, newBookmark); if (index > 0) { KBookmark prevBookmark = DolphinSettings::instance().bookmark(index - 1); root.moveItem(newBookmark, prevBookmark); } else { // insert bookmark at first position (is a little bit tricky as KBookmarkGroup // only allows to move items after existing items) KBookmark firstBookmark = root.first(); root.moveItem(newBookmark, firstBookmark); root.moveItem(firstBookmark, newBookmark); } manager->emitChanged(root); } break; } case editID: { KBookmark oldBookmark = DolphinSettings::instance().bookmark(index); KBookmark newBookmark = EditBookmarkDialog::getBookmark(i18n("Edit Bookmark"), oldBookmark.text(), oldBookmark.url(), oldBookmark.icon()); if (!newBookmark.isNull()) { root.addBookmark(manager, newBookmark); root.moveItem(newBookmark, oldBookmark); root.deleteBookmark(oldBookmark); manager->emitChanged(root); } break; } case deleteID: { KBookmark bookmark = DolphinSettings::instance().bookmark(index); root.deleteBookmark(bookmark); manager->emitChanged(root); break; } case addID: { KBookmark bookmark = EditBookmarkDialog::getBookmark(i18n("Add Bookmark"), "New bookmark", KURL(), "bookmark"); if (!bookmark.isNull()) { root.addBookmark(manager, bookmark); manager->emitChanged(root); } } default: break; } delete popup; popup = 0; DolphinView* view = Dolphin::mainWin().activeView(); adjustSelection(view->url()); }
// SHUFFLE all these functions around, the order is just plain stupid void BookmarkInfoWidget::showBookmark(const KBookmark &bk) { // Fast exit if already shown, otherwise editing a title leads to a command after each keypress if (m_bk == bk) return; commitChanges(); m_bk = bk; if (m_bk.isNull()) { // all read only and blank m_title_le->setReadOnly(true); m_title_le->setText(QString()); m_url_le->setReadOnly(true); m_url_le->setText(QString()); m_comment_le->setReadOnly(true); m_comment_le->setText(QString()); m_visitdate_le->setReadOnly(true); m_visitdate_le->setText(QString()); m_credate_le->setReadOnly(true); m_credate_le->setText(QString()); m_visitcount_le->setReadOnly(true); m_visitcount_le->setText(QString()); return; } // read/write fields m_title_le->setReadOnly( (bk.isSeparator()|| !bk.hasParent() )? true : false); if (bk.fullText() != m_title_le->text()) m_title_le->setText(bk.fullText()); m_url_le->setReadOnly(bk.isGroup() || bk.isSeparator()); if (bk.isGroup()) { m_url_le->setText(QString()); } else { // Update the text if and only if the text represents a different URL to that // of the current bookmark - the old method, "m_url_le->text() != bk.url().pathOrUrl()", // created difficulties due to the ambiguity of converting URLs to text. (#172647) if (QUrl::fromUserInput(m_url_le->text()) != bk.url()) { const int cursorPosition = m_url_le->cursorPosition(); m_url_le->setText(bk.url().url(QUrl::PreferLocalFile)); m_url_le->setCursorPosition(cursorPosition); } } m_comment_le->setReadOnly((bk.isSeparator()|| !bk.hasParent()) ? true : false ); QString commentText = bk.description(); if (m_comment_le->text() != commentText) { const int cursorPosition = m_comment_le->cursorPosition(); m_comment_le->setText(commentText); m_comment_le->setCursorPosition(cursorPosition); } // readonly fields updateStatus(); }
void URLNavigator::updateContent() { const QObjectList* list = children(); if (list == 0) { return; } // set the iterator to the first URL navigator button QObjectListIterator it(*list); QObject* object = 0; while ((object = it.current()) != 0) { if (object->inherits("URLNavigatorButton")) { break; } ++it; } // delete all existing URL navigator buttons QPtrList<QWidget> deleteList; while ((object = it.current()) != 0) { if (object->inherits("URLNavigatorButton")) { // Don't close and delete the navigator button immediatly, otherwise // the iterator won't work anymore and an object would get deleted more // than once (-> crash). deleteList.append(static_cast<QWidget*>(object)); } ++it; } // now close and delete all unused navigator buttons QPtrListIterator<QWidget> deleteIter(deleteList); QWidget* widget = 0; while ((widget = deleteIter.current()) != 0) { widget->close(); widget->deleteLater(); ++deleteIter; } m_bookmarkSelector->updateSelection(url()); QToolTip::remove(m_toggleButton); QString path(url().prettyURL()); if (m_toggleButton->state() == QButton::On) { // TODO: don't hardcode the shortcut as part of the text QToolTip::add(m_toggleButton, i18n("Browse (Ctrl+B, Escape)")); setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); m_pathBox->show(); m_pathBox->setURL(url()); } else { // TODO: don't hardcode the shortcut as part of the text QToolTip::add(m_toggleButton, i18n("Edit location (Ctrl+L)")); setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); m_pathBox->hide(); QString dir_name; // get the data from the currently selected bookmark KBookmark bookmark = m_bookmarkSelector->selectedBookmark(); //int bookmarkIndex = m_bookmarkSelector->selectedIndex(); QString bookmarkPath; if (bookmark.isNull()) { // No bookmark is a part of the current URL. // The following code tries to guess the bookmark // path. E. g. "fish://[email protected]/var/lib" writes // "fish://[email protected]" to 'bookmarkPath', which leads to the // navigation indication 'Custom Path > var > lib". int idx = path.find(QString("//")); idx = path.find("/", (idx < 0) ? 0 : idx + 2); bookmarkPath = (idx < 0) ? path : path.left(idx); } else { bookmarkPath = bookmark.url().prettyURL(); } const uint len = bookmarkPath.length(); // calculate the start point for the URL navigator buttons by counting // the slashs inside the bookmark URL int slashCount = 0; for (uint i = 0; i < len; ++i) { if (bookmarkPath.at(i) == QChar('/')) { ++slashCount; } } if ((len > 0) && bookmarkPath.at(len - 1) == QChar('/')) { assert(slashCount > 0); --slashCount; } // create URL navigator buttons int idx = slashCount; bool hasNext = true; do { dir_name = path.section('/', idx, idx); const bool isFirstButton = (idx == slashCount); hasNext = isFirstButton || !dir_name.isEmpty(); if (hasNext) { URLNavigatorButton* button = new URLNavigatorButton(idx, this); if (isFirstButton) { // the first URL navigator button should get the name of the bookmark // instead of the directory name QString text = bookmark.text(); if (text.isEmpty()) { text = bookmarkPath; } button->setText(text); } button->show(); ++idx; } } while (hasNext); } }
void MainWindow::openBookmark(const KBookmark& bookmark, Qt::MouseButtons mb, Qt::KeyboardModifiers km) { Q_UNUSED(mb); Q_UNUSED(km); ConnectionDialog::openDialog(bookmark.url()); }
static bool isTrash(const KBookmark &bk) { return bk.url().toString() == QLatin1String("trash:/"); }