KBookmarkManager::managerForFile and KBookmarkOwner::openBookmark changes.

svn path=/trunk/KDE/kdebase/apps/; revision=596012
This commit is contained in:
Daniel Teske 2006-10-16 13:43:54 +00:00
parent 47d8158400
commit c371faca0b
7 changed files with 38 additions and 22 deletions

View file

@ -231,7 +231,7 @@ void XBELImportCommand::doCreateHoldingFolder(KBookmarkGroup &) {
void XBELImportCommand::doExecute(const KBookmarkGroup &/*bkGroup*/) {
// check if already open first???
KBookmarkManager *pManager = KBookmarkManager::managerForFile(m_fileName, false);
KBookmarkManager *pManager = KBookmarkManager::managerForFile(m_fileName,"", false);
QDomDocument doc = CurrentMgr::self()->mgr()->internalDocument();

View file

@ -117,7 +117,7 @@ int main( int argc, char**argv )
}
const QString absPath = extraBookmarksDir.filePath( fileName );
KBookmarkManager *mgr = KBookmarkManager::managerForFile( absPath, false );
KBookmarkManager *mgr = KBookmarkManager::managerForFile( absPath, "", false );
KBookmarkGroup root = mgr->root();
for ( KBookmark bm = root.first(); !bm.isNull(); bm = root.next( bm ) ) {
if ( bm.isGroup() ) {

View file

@ -53,6 +53,9 @@ static KCmdLineOptions options[] = {
{"address <address>", I18N_NOOP("Open at the given position in the bookmarks file"), 0},
{"customcaption <caption>", I18N_NOOP("Set the user readable caption for example \"Konsole\""), 0},
{"nobrowser", I18N_NOOP("Hide all browser related functions"), 0},
{"dbusObjectName <name>", I18N_NOOP("A unique name that represents this bookmark collection, usually the kinstance name.\n"
"This should be \"konqueror\" for the konqueror bookmarks, \"kfile\" for KFileDialog bookmarks, etc.\n"
"The final DBus object path is /KBookmarkManager/dbusObjectName"), 0},
{"+[file]", I18N_NOOP("File to edit"), 0},
KCmdLineLastOption
};
@ -140,14 +143,14 @@ extern "C" KDE_EXPORT int kdemain(int argc, char **argv) {
//KApplication::disableAutoDcopRegistration();
KApplication app(isGui);
bool gotArg = (args->count() == 1);
bool gotFilenameArg = (args->count() == 1);
QString filename = gotArg
QString filename = gotFilenameArg
? QLatin1String(args->arg(0))
: KStandardDirs::locateLocal("data", QLatin1String("konqueror/bookmarks.xml"));
if (!isGui) {
CurrentMgr::self()->createManager(filename);
CurrentMgr::self()->createManager(filename, QString());
CurrentMgr::ExportType exportType = CurrentMgr::MozillaExport; // uumm.. can i just set it to -1 ?
int got = 0;
const char *arg, *arg2 = 0, *importType = 0;
@ -188,12 +191,25 @@ extern "C" KDE_EXPORT int kdemain(int argc, char **argv) {
? QString::fromLocal8Bit(args->getOption("customcaption"))
: QString();
QString dbusObjectName;
if(args->isSet("dbusObjectName"))
{
dbusObjectName = QString::fromLocal8Bit(args->getOption("dbusObjectName"));
}
else
{
if(gotFilenameArg)
dbusObjectName = QString();
else
dbusObjectName = "konqueror";
}
args->clear();
bool readonly = false; // passed by ref
if (askUser(app, (gotArg ? filename : QString()), readonly)) {
KEBApp *toplevel = new KEBApp(filename, readonly, address, browser, caption);
if (askUser(app, (gotFilenameArg ? filename : QString()), readonly)) {
KEBApp *toplevel = new KEBApp(filename, readonly, address, browser, caption, dbusObjectName);
toplevel->show();
return app.exec();
}

View file

@ -129,14 +129,15 @@ void CurrentMgr::saveAs(const QString &fileName) { mgr()->saveAs(fileName); }
void CurrentMgr::setUpdate(bool update) { mgr()->setUpdate(update); }
QString CurrentMgr::path() const { return mgr()->path(); }
void CurrentMgr::createManager(const QString &filename) {
void CurrentMgr::createManager(const QString &filename, const QString &dbusObjectName) {
if (m_mgr) {
kDebug()<<"ERROR calling createManager twice"<<endl;
disconnect(m_mgr, 0, 0, 0);
// still todo - delete old m_mgr
}
m_mgr = KBookmarkManager::managerForFile(filename, false);
kDebug()<<"DBus Object name: "<<dbusObjectName<<endl;
m_mgr = KBookmarkManager::managerForFile(filename, dbusObjectName, false);
connect(m_mgr, SIGNAL( changed(const QString &, const QString &) ),
SLOT( slotBookmarksChanged(const QString &, const QString &) ));
@ -192,9 +193,12 @@ KEBApp *KEBApp::s_topLevel = 0;
KEBApp::KEBApp(
const QString &bookmarksFile, bool readonly,
const QString &address, bool browser, const QString &caption
const QString &address, bool browser, const QString &caption,
const QString &dbusObjectName
) : KMainWindow(), m_dcopIface(0), m_bookmarksFilename(bookmarksFile),
m_caption(caption), m_readOnly(readonly), m_browser(browser) {
m_caption(caption), m_readOnly(readonly), m_browser(browser),
m_dbusObjectName(dbusObjectName)
{
Q_UNUSED(address);//FIXME sets the current item
@ -219,7 +223,7 @@ KEBApp::KEBApp(
m_canPaste = false;
CurrentMgr::self()->createManager(m_bookmarksFilename);
CurrentMgr::self()->createManager(m_bookmarksFilename, m_dbusObjectName);
mBookmarkListView = new BookmarkListView();
mBookmarkListView->setModel( BookmarkModel::self() );
@ -263,7 +267,7 @@ void KEBApp::reset(const QString & caption, const QString & bookmarksFileName)
{
m_caption = caption;
m_bookmarksFilename = bookmarksFileName;
CurrentMgr::self()->createManager(m_bookmarksFilename); //FIXME this is still a memory leak (iff called by slotLoad)
CurrentMgr::self()->createManager(m_bookmarksFilename, m_dbusObjectName); //FIXME this is still a memory leak (iff called by slotLoad)
BookmarkModel::self()->resetModel();
expandAll();
updateActions();

View file

@ -76,7 +76,7 @@ public:
KBookmarkManager* mgr() const { return m_mgr; }
QString path() const;
void createManager(const QString &filename);
void createManager(const QString &filename, const QString &dbusObjectName);
void notifyManagers(KBookmarkGroup grp);
void notifyManagers();
bool managerSave();
@ -104,7 +104,7 @@ class KEBApp : public KMainWindow {
public:
static KEBApp* self() { return s_topLevel; }
KEBApp(const QString & bookmarksFile, bool readonly, const QString &address, bool browser, const QString &caption);
KEBApp(const QString & bookmarksFile, bool readonly, const QString &address, bool browser, const QString &caption, const QString& dbusObjectName);
virtual ~KEBApp();
void reset(const QString & caption, const QString & bookmarksFileName);
@ -177,8 +177,8 @@ private:
CmdHistory *m_cmdHistory;
QString m_bookmarksFilename;
QString m_caption;
QString m_dbusObjectName;
private:
BookmarkInfoWidget *m_bkinfo;
bool m_canPaste:1;

View file

@ -4002,7 +4002,7 @@ void KonqMainWindow::initActions()
m_paLinkView->setToolTip( i18n("Sets the view as 'linked'. A linked view follows folder changes made in other linked views.") );
}
void KonqExtendedBookmarkOwner::openBookmark(KBookmark bm, Qt::MouseButtons mb, Qt::KeyboardModifiers km)
void KonqExtendedBookmarkOwner::openBookmark(const KBookmark & bm, Qt::MouseButtons mb, Qt::KeyboardModifiers km)
{
kDebug(1202) << "KonqExtendedBookmarkOwner::openBookmark(" << bm.url().prettyUrl() << ", " << km << ", " << mb << ")" << endl;

View file

@ -23,21 +23,17 @@
class KonqExtendedBookmarkOwner : public QObject, public KonqBookmarkOwner
{
Q_OBJECT
public:
KonqExtendedBookmarkOwner(KonqMainWindow *);
virtual QString currentTitle() const;
virtual QString currentUrl() const;
virtual bool supportsTabs() const;
virtual QList<QPair<QString, QString> > currentBookmarkList() const;
virtual void openBookmark(KBookmark bm, Qt::MouseButtons mb, Qt::KeyboardModifiers km);
virtual void openBookmark(const KBookmark & bm, Qt::MouseButtons mb, Qt::KeyboardModifiers km);
virtual void openInNewTab(KBookmark bm);
virtual void openInNewWindow(KBookmark bm);
virtual void openFolderinTabs(KBookmark bm);
Q_SIGNALS:
void openBookmarkSignal(KBookmark bm, Qt::MouseButtons mb, Qt::KeyboardModifiers km);
private:
KonqMainWindow *m_pKonqMainWindow;
};