~ubuntu-branches/ubuntu/lucid/kdebase/lucid

« back to all changes in this revision

Viewing changes to kicker/menuext/konsole/konsolebookmarkhandler.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Riddell
  • Date: 2008-05-27 12:09:48 UTC
  • mfrom: (1.1.13 upstream)
  • Revision ID: james.westby@ubuntu.com-20080527120948-dottsyd5rcwhzd36
Tags: 4:4.0.80-1ubuntu1
* Merge with Debian
 - remove 97_fix_target_link_libraries.diff
 - Add replaces/conflicts on -kde4 packages

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// Born as kdelibs/kio/kfile/kfilebookmarkhandler.cpp
2
 
 
3
 
#include <stdio.h>
4
 
#include <stdlib.h>
5
 
 
6
 
#include <qtextstream.h>
7
 
 
8
 
#include <kbookmarkimporter.h>
9
 
#include <kmimetype.h>
10
 
#include <kpopupmenu.h>
11
 
#include <ksavefile.h>
12
 
#include <kstandarddirs.h>
13
 
 
14
 
#include "konsole_mnu.h"
15
 
#include "konsolebookmarkmenu.h"
16
 
#include "konsolebookmarkhandler.h"
17
 
 
18
 
KonsoleBookmarkHandler::KonsoleBookmarkHandler( KonsoleMenu *konsole, bool )
19
 
    : QObject( konsole, "KonsoleBookmarkHandler" ),
20
 
      KBookmarkOwner(),
21
 
      m_konsole( konsole ),
22
 
      m_importStream( 0L )
23
 
{
24
 
    m_menu = new KPopupMenu( konsole, "bookmark menu" );
25
 
 
26
 
    QString file = locate( "data", "konsole/bookmarks.xml" );
27
 
    if ( file.isEmpty() )
28
 
        file = locateLocal( "data", "konsole/bookmarks.xml" );
29
 
 
30
 
    // import old bookmarks
31
 
    if ( !KStandardDirs::exists( file ) ) {
32
 
        QString oldFile = locate( "data", "kfile/bookmarks.html" );
33
 
        if ( !oldFile.isEmpty() )
34
 
            importOldBookmarks( oldFile, file );
35
 
    }
36
 
 
37
 
    KBookmarkManager *manager = KBookmarkManager::managerForFile( file, false);
38
 
    manager->setUpdate( true );
39
 
    manager->setShowNSBookmarks( false );
40
 
 
41
 
    connect( manager, SIGNAL( changed(const QString &, const QString &) ),
42
 
             SLOT( slotBookmarksChanged(const QString &, const QString &) ) );
43
 
    m_bookmarkMenu = new KonsoleBookmarkMenu( manager, this, m_menu,
44
 
                             NULL, false, /*Not toplevel*/
45
 
                             false /*No 'Add Bookmark'*/ );
46
 
}
47
 
 
48
 
QString KonsoleBookmarkHandler::currentURL() const
49
 
{
50
 
    return m_konsole->baseURL().url();
51
 
}
52
 
 
53
 
void KonsoleBookmarkHandler::importOldBookmarks( const QString& path,
54
 
                                                 const QString& destinationPath )
55
 
{
56
 
    KSaveFile file( destinationPath );
57
 
    if ( file.status() != 0 )
58
 
        return;
59
 
 
60
 
    m_importStream = file.textStream();
61
 
    *m_importStream << "<!DOCTYPE xbel>\n<xbel>\n";
62
 
 
63
 
    KNSBookmarkImporter importer( path );
64
 
    connect( &importer,
65
 
             SIGNAL( newBookmark( const QString&, const QCString&, const QString& )),
66
 
             SLOT( slotNewBookmark( const QString&, const QCString&, const QString& )));
67
 
    connect( &importer,
68
 
             SIGNAL( newFolder( const QString&, bool, const QString& )),
69
 
             SLOT( slotNewFolder( const QString&, bool, const QString& )));
70
 
    connect( &importer, SIGNAL( newSeparator() ), SLOT( newSeparator() ));
71
 
    connect( &importer, SIGNAL( endMenu() ), SLOT( endMenu() ));
72
 
 
73
 
    importer.parseNSBookmarks( false );
74
 
 
75
 
    *m_importStream << "</xbel>";
76
 
 
77
 
    file.close();
78
 
    m_importStream = 0L;
79
 
}
80
 
 
81
 
void KonsoleBookmarkHandler::slotNewBookmark( const QString& /*text*/,
82
 
                                            const QCString& url,
83
 
                                            const QString& additionalInfo )
84
 
{
85
 
    *m_importStream << "<bookmark icon=\"" << KMimeType::iconForURL( KURL( url ) );
86
 
    *m_importStream << "\" href=\"" << QString::fromUtf8(url) << "\">\n";
87
 
    *m_importStream << "<title>" << (additionalInfo.isEmpty() ? QString::fromUtf8(url) : additionalInfo) << "</title>\n</bookmark>\n";
88
 
}
89
 
 
90
 
void KonsoleBookmarkHandler::slotNewFolder( const QString& text, bool /*open*/,
91
 
                                          const QString& /*additionalInfo*/ )
92
 
{
93
 
    *m_importStream << "<folder icon=\"bookmark_folder\">\n<title=\"";
94
 
    *m_importStream << text << "\">\n";
95
 
}
96
 
 
97
 
void KonsoleBookmarkHandler::slotBookmarksChanged( const QString &,
98
 
                                                   const QString & )
99
 
{
100
 
    // This is called when someone changes bookmarks in konsole....
101
 
    m_bookmarkMenu->slotBookmarksChanged("");
102
 
}
103
 
 
104
 
void KonsoleBookmarkHandler::newSeparator()
105
 
{
106
 
    *m_importStream << "<separator/>\n";
107
 
}
108
 
 
109
 
void KonsoleBookmarkHandler::endFolder()
110
 
{
111
 
    *m_importStream << "</folder>\n";
112
 
}
113
 
 
114
 
void KonsoleBookmarkHandler::virtual_hook( int id, void* data )
115
 
{ KBookmarkOwner::virtual_hook( id, data ); }
116
 
 
117
 
#include "konsolebookmarkhandler.moc"