browsercore/appfw/Api/Managers/BookmarksManager.cpp
author hgs
Fri, 06 Aug 2010 17:23:08 -0400
changeset 9 b39122337a00
parent 3 0954f5dd2cd0
permissions -rw-r--r--
201031
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
*
3
hgs
parents: 0
diff changeset
     5
* This program is free software: you can redistribute it and/or modify
hgs
parents: 0
diff changeset
     6
* it under the terms of the GNU Lesser General Public License as published by
hgs
parents: 0
diff changeset
     7
* the Free Software Foundation, version 2.1 of the License.
hgs
parents: 0
diff changeset
     8
* 
hgs
parents: 0
diff changeset
     9
* This program is distributed in the hope that it will be useful,
hgs
parents: 0
diff changeset
    10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
hgs
parents: 0
diff changeset
    11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
hgs
parents: 0
diff changeset
    12
* GNU Lesser General Public License for more details.
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
3
hgs
parents: 0
diff changeset
    14
* You should have received a copy of the GNU Lesser General Public License
hgs
parents: 0
diff changeset
    15
* along with this program.  If not, 
hgs
parents: 0
diff changeset
    16
* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
*
3
hgs
parents: 0
diff changeset
    18
* Description:
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
*
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
*/
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include <QtCore/QDir>
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include <QtCore/QFile>
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#include <QtGui/QIcon>
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include <QtGui>
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#include <QtCore/QDebug>
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#include <QtCore/QUrl>
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
#include <QString>
3
hgs
parents: 0
diff changeset
    30
#include "actionjsobject.h"
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
#include "BookmarksManager_p.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
#include "BookmarksManager.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
//#include "wrtsettings.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
#include "bedrockprovisioning.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
#include "bookmarks.h"
3
hgs
parents: 0
diff changeset
    37
#include <browsercontentdll.h>
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
#include "xbel.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
#include "webpagecontroller.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
#include "wrtbrowsercontainer.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
namespace WRT {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
9
hgs
parents: 3
diff changeset
    45
BookmarksManagerPrivate::BookmarksManagerPrivate(BookmarksManager * mgr) :
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
    q(mgr),
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
    m_connectedToBookmarks(false),
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
    m_maxUrls(10) // TODO: read from settings
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
{
3
hgs
parents: 0
diff changeset
    50
    QFileInfo dbFile("browserContent.db");
9
hgs
parents: 3
diff changeset
    51
hgs
parents: 3
diff changeset
    52
#ifdef Q_WS_MAEMO_5
hgs
parents: 3
diff changeset
    53
    m_import = false;    
3
hgs
parents: 0
diff changeset
    54
    if (dbFile.exists()){
hgs
parents: 0
diff changeset
    55
      m_import = false;
hgs
parents: 0
diff changeset
    56
    }
hgs
parents: 0
diff changeset
    57
    else {
hgs
parents: 0
diff changeset
    58
      m_import = true;
hgs
parents: 0
diff changeset
    59
    }
9
hgs
parents: 3
diff changeset
    60
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
3
hgs
parents: 0
diff changeset
    62
    m_bookmarkSession=new BrowserContent("Bedrock");
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
    if (m_bookmarkSession) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
        m_connectedToBookmarks = true;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
    } else {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
        qDebug() << "BookmarksManagerPrivate: Failed to connect to bookmarks";
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
    }
3
hgs
parents: 0
diff changeset
    68
hgs
parents: 0
diff changeset
    69
    m_actionsParent = new QObject(mgr);
hgs
parents: 0
diff changeset
    70
    m_actionsParent->setObjectName("actions");
hgs
parents: 0
diff changeset
    71
    
hgs
parents: 0
diff changeset
    72
    m_actionClearHistory = new QAction("clearHistory", m_actionsParent);
hgs
parents: 0
diff changeset
    73
    
hgs
parents: 0
diff changeset
    74
    m_actionClearJSO  = new ActionJSObject(m_actionsParent, m_actionClearHistory);
hgs
parents: 0
diff changeset
    75
    
hgs
parents: 0
diff changeset
    76
    m_actionClearHistory->setObjectName("clearHistory");
hgs
parents: 0
diff changeset
    77
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
BookmarksManagerPrivate::~BookmarksManagerPrivate()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
    delete m_bookmarkSession;
3
hgs
parents: 0
diff changeset
    83
    delete m_actionClearHistory;
hgs
parents: 0
diff changeset
    84
    delete m_actionClearJSO;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
/*!
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
 * \class BookmarksManager
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
 *
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
 * This class is responsible for managing bookmarks, This class could be used 
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
 * mainly for Creating, adding bookmarks, adding recent history items, deleting 
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
 * and editing bookmarks.
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
 *
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
 */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
 
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
/*!
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
 * Basic constructor
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
 * @param parent : parent widget (Defaulted to NULL ) if not specified
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
 */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
BookmarksManager::BookmarksManager(QWidget *parent) :
9
hgs
parents: 3
diff changeset
   101
    QObject(parent),
hgs
parents: 3
diff changeset
   102
    d(new BookmarksManagerPrivate(this))
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
{
9
hgs
parents: 3
diff changeset
   104
hgs
parents: 3
diff changeset
   105
#ifdef Q_WS_MAEMO_5    
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
    if (d->m_import)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
       importNativeBookmarks();
9
hgs
parents: 3
diff changeset
   108
#endif
3
hgs
parents: 0
diff changeset
   109
    
hgs
parents: 0
diff changeset
   110
    m_isBookmarkDbreadRequired=true;
hgs
parents: 0
diff changeset
   111
    //connect(d->m_actionClearHistory, SIGNAL(triggered()), this, SIGNAL(historyCleared()));
hgs
parents: 0
diff changeset
   112
    connect(d->m_actionClearHistory, SIGNAL(triggered()), this, SIGNAL(confirmHistoryClear()));
hgs
parents: 0
diff changeset
   113
     
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
}
3
hgs
parents: 0
diff changeset
   115
/*
hgs
parents: 0
diff changeset
   116
void BookmarksManager::actionClearHistory()
hgs
parents: 0
diff changeset
   117
{
hgs
parents: 0
diff changeset
   118
    emit confirmClearHistory();
hgs
parents: 0
diff changeset
   119
}
hgs
parents: 0
diff changeset
   120
*/
hgs
parents: 0
diff changeset
   121
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
BookmarksManager::~BookmarksManager()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
{
3
hgs
parents: 0
diff changeset
   124
    disconnect(d->m_actionClearHistory, SIGNAL(triggered()), this, SIGNAL(historyCleared()));
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
    delete d;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
BookmarksManager* BookmarksManager::getSingleton()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
 {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
    static BookmarksManager* singleton = 0;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
  
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
    if(!singleton){
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
           singleton = new BookmarksManager;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
           singleton->setObjectName("bookmarksManager");
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   136
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   137
    //assert(singleton);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
    return singleton;    
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
 }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
9
hgs
parents: 3
diff changeset
   142
hgs
parents: 3
diff changeset
   143
#ifdef Q_WS_MAEMO_5
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
/*!
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
 * Import the bookmarks grom Native Browser
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
 * Ignores errors (just exists)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
 */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
void BookmarksManager::importNativeBookmarks()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
             
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
      int error = ::MainImport();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
      
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
      if(error)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
          return;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
          
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
    startNativeBookmarksParsing();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
    QString fileName = "c:/data/bookmarks.txt.xml";
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
    
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
    XbelReader reader;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
    BookmarkNode *importRootNode = reader.read(fileName);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
    if (reader.error() != QXmlStreamReader::NoError){
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
        QMessageBox::warning(0, QLatin1String("Loading Bookmark"),
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
            tr("Error when loading bookmarks on line %1, column %2:\n"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
               "%3").arg(reader.lineNumber()).arg(reader.columnNumber()).arg(reader.errorString()));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
    int bookmarkCount = importRootNode->children().count() - 1;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
    for (int i = bookmarkCount; i >= 0; --i) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
        BookmarkNode *node = importRootNode->children()[i];
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
        if (node->type() == BookmarkNode::Bookmark) 
3
hgs
parents: 0
diff changeset
   172
            addBookmark(node->title,node->url,0);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
        
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
    } 
9
hgs
parents: 3
diff changeset
   175
3
hgs
parents: 0
diff changeset
   176
    // add local bookmarks
hgs
parents: 0
diff changeset
   177
    QString localPagesBaseDir(BEDROCK_PROVISIONING::BedrockProvisioning::createBedrockProvisioning()->valueAsString("LocalPagesBaseDirectory"));
hgs
parents: 0
diff changeset
   178
    QString indexStr;
hgs
parents: 0
diff changeset
   179
    for (int index = 2; index >= 0; index--) {
hgs
parents: 0
diff changeset
   180
        indexStr.setNum(index);
hgs
parents: 0
diff changeset
   181
        QString bookmarkTitle = BEDROCK_PROVISIONING::BedrockProvisioning::createBedrockProvisioning()->valueAsString(tr("Bookmark")+indexStr+tr("Title"));
hgs
parents: 0
diff changeset
   182
        if (bookmarkTitle == "")
hgs
parents: 0
diff changeset
   183
            continue;
hgs
parents: 0
diff changeset
   184
        QString bookmarkUrl = BEDROCK_PROVISIONING::BedrockProvisioning::createBedrockProvisioning()->valueAsString(tr("Bookmark")+indexStr+tr("Url"));
hgs
parents: 0
diff changeset
   185
        if (bookmarkUrl == "")
hgs
parents: 0
diff changeset
   186
            continue;
hgs
parents: 0
diff changeset
   187
        if (bookmarkUrl.contains("://") || bookmarkUrl.contains("www."))
hgs
parents: 0
diff changeset
   188
            addBookmark(bookmarkTitle, bookmarkUrl, 0);
hgs
parents: 0
diff changeset
   189
        else {
hgs
parents: 0
diff changeset
   190
            QString localBookmarkUrl = QFileInfo(localPagesBaseDir + bookmarkUrl).absoluteFilePath();
hgs
parents: 0
diff changeset
   191
            addBookmark(bookmarkTitle, tr("file:///") + localBookmarkUrl, 0);
hgs
parents: 0
diff changeset
   192
        }
hgs
parents: 0
diff changeset
   193
    }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
}
9
hgs
parents: 3
diff changeset
   195
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
QString BookmarksManager::getBookmarksJSON()
3
hgs
parents: 0
diff changeset
   198
    {
hgs
parents: 0
diff changeset
   199
    if(m_isBookmarkDbreadRequired==true)
hgs
parents: 0
diff changeset
   200
        {
hgs
parents: 0
diff changeset
   201
    m_bookmakrData=d->m_bookmarkSession->fetchSerializedBookmarks();
hgs
parents: 0
diff changeset
   202
    m_isBookmarkDbreadRequired=false;
hgs
parents: 0
diff changeset
   203
       }
hgs
parents: 0
diff changeset
   204
    return m_bookmakrData;
hgs
parents: 0
diff changeset
   205
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
3
hgs
parents: 0
diff changeset
   208
QString BookmarksManager::normalizeUrl(const QString& url)
hgs
parents: 0
diff changeset
   209
    {
hgs
parents: 0
diff changeset
   210
    // If the URL is relative, add http in front
hgs
parents: 0
diff changeset
   211
    // so that qt doesn't make it absolute using the
hgs
parents: 0
diff changeset
   212
    // local file path
hgs
parents: 0
diff changeset
   213
    QString updatedUrl = url;
hgs
parents: 0
diff changeset
   214
    
hgs
parents: 0
diff changeset
   215
    if (!url.contains("://")) {
hgs
parents: 0
diff changeset
   216
        if (!url.startsWith("www", Qt::CaseInsensitive)) {
hgs
parents: 0
diff changeset
   217
            updatedUrl.prepend("http://www.");
hgs
parents: 0
diff changeset
   218
        } else {
hgs
parents: 0
diff changeset
   219
           updatedUrl.prepend("http://");
hgs
parents: 0
diff changeset
   220
        }
hgs
parents: 0
diff changeset
   221
    }
hgs
parents: 0
diff changeset
   222
    return updatedUrl;
hgs
parents: 0
diff changeset
   223
    
hgs
parents: 0
diff changeset
   224
    }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
3
hgs
parents: 0
diff changeset
   226
int BookmarksManager::addBookmark(const QString &title, const QString &url,int index)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
    QString updatedTitle = title;
3
hgs
parents: 0
diff changeset
   229
	updatedTitle = updatedTitle.trimmed();
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
    //Setting title as url string if title is not available
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
    if(url.isEmpty())
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
        return ErrBookmarkUrlEmpty;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
    
3
hgs
parents: 0
diff changeset
   234
    QVector<QString> nodes;
hgs
parents: 0
diff changeset
   235
    d->m_bookmarkSession->fetchAllBookmarkTitles(nodes);
hgs
parents: 0
diff changeset
   236
    for (int iter = 0 ; iter < nodes.size() ; ++iter)   {
hgs
parents: 0
diff changeset
   237
		if(0==updatedTitle.compare(nodes.at(iter),Qt::CaseInsensitive)){
hgs
parents: 0
diff changeset
   238
      //Node already exists delete existing
hgs
parents: 0
diff changeset
   239
		 deleteBookmark(updatedTitle); 
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   240
      }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   241
    }
3
hgs
parents: 0
diff changeset
   242
hgs
parents: 0
diff changeset
   243
   
hgs
parents: 0
diff changeset
   244
    nodes.clear();
hgs
parents: 0
diff changeset
   245
    
hgs
parents: 0
diff changeset
   246
    QString updatedUrl = normalizeUrl(url);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   247
    
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   248
    //Setting title as url string if title is not available
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
    if(title.isEmpty())
3
hgs
parents: 0
diff changeset
   250
        updatedTitle = updatedUrl;
hgs
parents: 0
diff changeset
   251
    
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   252
    BookmarkLeaf* leaf=new BookmarkLeaf();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   253
    leaf->setTitle(updatedTitle);
3
hgs
parents: 0
diff changeset
   254
    leaf->setUrl(updatedUrl);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   255
    //leaf->setDate(bookmark->date);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   256
    leaf->setTag("unknown");
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   257
    leaf->setIndex(index);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   258
    
3
hgs
parents: 0
diff changeset
   259
    if(ErrNone == d->m_bookmarkSession->addBookmark(leaf)) {
hgs
parents: 0
diff changeset
   260
    emit bookmarkEntryAdded(updatedTitle,updatedUrl);
hgs
parents: 0
diff changeset
   261
    delete leaf;
hgs
parents: 0
diff changeset
   262
    m_isBookmarkDbreadRequired=true;
hgs
parents: 0
diff changeset
   263
    return ErrNone;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   264
    }
3
hgs
parents: 0
diff changeset
   265
    delete leaf;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
    return ErrGeneral;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   268
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   269
void BookmarksManager::deleteBookmark(QString title)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   270
{
3
hgs
parents: 0
diff changeset
   271
    d->m_bookmarkSession->deleteBookmark(title);
hgs
parents: 0
diff changeset
   272
    m_isBookmarkDbreadRequired=true;
hgs
parents: 0
diff changeset
   273
}
hgs
parents: 0
diff changeset
   274
hgs
parents: 0
diff changeset
   275
void BookmarksManager::clearBookmarks()
hgs
parents: 0
diff changeset
   276
{
hgs
parents: 0
diff changeset
   277
    d->m_bookmarkSession->clearBookmarks();
hgs
parents: 0
diff changeset
   278
    m_isBookmarkDbreadRequired=true;
hgs
parents: 0
diff changeset
   279
    emit bookmarksCleared();
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   280
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   281
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   282
int BookmarksManager::reorderBokmarks(QString title,int new_index)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   283
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   284
    d->m_bookmarkSession->reorderBokmarks(title,new_index);
3
hgs
parents: 0
diff changeset
   285
    m_isBookmarkDbreadRequired=true;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   286
    return ErrNone;    
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   287
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
3
hgs
parents: 0
diff changeset
   289
int BookmarksManager::modifyBookmark(QString orgTitle, QString newTitle, QString newUrl)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   290
{
3
hgs
parents: 0
diff changeset
   291
    QString updatedTitle = newTitle;
hgs
parents: 0
diff changeset
   292
	updatedTitle = updatedTitle.trimmed();
hgs
parents: 0
diff changeset
   293
    //Setting title as url string if title is not available
hgs
parents: 0
diff changeset
   294
    if(newUrl.isEmpty())
hgs
parents: 0
diff changeset
   295
        return ErrBookmarkUrlEmpty;
hgs
parents: 0
diff changeset
   296
    
hgs
parents: 0
diff changeset
   297
    QList<BookmarkLeaf*> nodes;
hgs
parents: 0
diff changeset
   298
    nodes = d->m_bookmarkSession->fetchAllBookmarks();
hgs
parents: 0
diff changeset
   299
    for (int iter = 0 ; iter < nodes.count() ; ++iter)   {
hgs
parents: 0
diff changeset
   300
     if((0==updatedTitle.compare(nodes.at(iter)->getTitle(),Qt::CaseInsensitive))
hgs
parents: 0
diff changeset
   301
         && (0 != orgTitle.compare(nodes.at(iter)->getTitle(),Qt::CaseInsensitive))){
hgs
parents: 0
diff changeset
   302
         //Node already exists delete existing
hgs
parents: 0
diff changeset
   303
         deleteBookmark(updatedTitle);
hgs
parents: 0
diff changeset
   304
      }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   305
    }
3
hgs
parents: 0
diff changeset
   306
    
hgs
parents: 0
diff changeset
   307
    qDeleteAll(nodes);
hgs
parents: 0
diff changeset
   308
    nodes.clear();
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   309
3
hgs
parents: 0
diff changeset
   310
   QString updatedUrl = normalizeUrl(newUrl);
hgs
parents: 0
diff changeset
   311
   
hgs
parents: 0
diff changeset
   312
  //Setting title as url string if title is not available
hgs
parents: 0
diff changeset
   313
    if(newTitle.isEmpty())
hgs
parents: 0
diff changeset
   314
        updatedTitle = updatedUrl;
hgs
parents: 0
diff changeset
   315
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   316
3
hgs
parents: 0
diff changeset
   317
    if(ErrNone == d->m_bookmarkSession->modifyBookmark(orgTitle, updatedTitle, updatedUrl)) {
hgs
parents: 0
diff changeset
   318
        emit bookmarkEntryModified(updatedTitle, updatedUrl);
hgs
parents: 0
diff changeset
   319
        m_isBookmarkDbreadRequired=true;
hgs
parents: 0
diff changeset
   320
        return ErrNone;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   321
    }
3
hgs
parents: 0
diff changeset
   322
    return ErrGeneral;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   323
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   324
3
hgs
parents: 0
diff changeset
   325
void BookmarksManager::launchEditBookmark(QString title,QString url)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   326
{
3
hgs
parents: 0
diff changeset
   327
    emit launchBookmarkEditDailog(title,url);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   328
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   329
3
hgs
parents: 0
diff changeset
   330
QString BookmarksManager::getHistoryFoldersJSON(QString folderName)
hgs
parents: 0
diff changeset
   331
    {
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   332
3
hgs
parents: 0
diff changeset
   333
    bool flag = true;
hgs
parents: 0
diff changeset
   334
  
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   335
    QString historyFolders = "[";
3
hgs
parents: 0
diff changeset
   336
    if (folderName == "")
hgs
parents: 0
diff changeset
   337
        {
hgs
parents: 0
diff changeset
   338
    m_historyMap.clear();
hgs
parents: 0
diff changeset
   339
    m_folderVector.clear();
hgs
parents: 0
diff changeset
   340
    d->m_bookmarkSession->fetchSerializedHistory(m_folderVector, m_historyMap);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   341
3
hgs
parents: 0
diff changeset
   342
    for (int i = m_folderVector.size() - 1; i >= 0; i--)
hgs
parents: 0
diff changeset
   343
        {
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   344
        //check for folder nodes
3
hgs
parents: 0
diff changeset
   345
        historyFolders.append("\"");
hgs
parents: 0
diff changeset
   346
        historyFolders.append(m_folderVector[i]);
hgs
parents: 0
diff changeset
   347
        historyFolders.append("\"");
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   348
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   349
3
hgs
parents: 0
diff changeset
   350
        if (i != 0)
hgs
parents: 0
diff changeset
   351
            historyFolders.append(",");
hgs
parents: 0
diff changeset
   352
        if (flag)
hgs
parents: 0
diff changeset
   353
            {
hgs
parents: 0
diff changeset
   354
            if (m_folderVector[i].count() > 0)
hgs
parents: 0
diff changeset
   355
                {
hgs
parents: 0
diff changeset
   356
                d->m_actionClearHistory->setEnabled(true);
hgs
parents: 0
diff changeset
   357
                flag=false;
hgs
parents: 0
diff changeset
   358
                }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   359
3
hgs
parents: 0
diff changeset
   360
            }
hgs
parents: 0
diff changeset
   361
        }
hgs
parents: 0
diff changeset
   362
     if (flag)
hgs
parents: 0
diff changeset
   363
        {
hgs
parents: 0
diff changeset
   364
        d->m_actionClearHistory->setEnabled(false);
hgs
parents: 0
diff changeset
   365
        }
hgs
parents: 0
diff changeset
   366
    historyFolders.append("]");
hgs
parents: 0
diff changeset
   367
    m_folderVector.clear();
hgs
parents: 0
diff changeset
   368
        }
hgs
parents: 0
diff changeset
   369
    if (folderName == "")
hgs
parents: 0
diff changeset
   370
        {
hgs
parents: 0
diff changeset
   371
        return historyFolders;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   372
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   373
        }
3
hgs
parents: 0
diff changeset
   374
    else
hgs
parents: 0
diff changeset
   375
        {
hgs
parents: 0
diff changeset
   376
        return m_historyMap[folderName];
hgs
parents: 0
diff changeset
   377
        }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   378
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   379
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   380
/*!
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   381
 * Add the  node to the folder in proxy model. If the folder doesnt exist in proxy, create
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   382
 * the folder  and add the node to it
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   383
 */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   384
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   385
/*!
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   386
 * Add to recent urls
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   387
 * @param url: url to be added to recent url list
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   388
 * @param title: title for this item in recent url list
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   389
 * @param icon: icon to be added for this item in recent url list
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   390
 */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   391
Q_DECL_EXPORT void BookmarksManager::addHistory(const QString &url, const QString &title)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   392
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   393
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   394
    //Check for a valid history entry
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   395
    if (url.isEmpty() || title.isEmpty())
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   396
        return;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   397
    
3
hgs
parents: 0
diff changeset
   398
    bool enabled = (bool) BEDROCK_PROVISIONING::BedrockProvisioning::createBedrockProvisioning()->valueAsInt("SaveHistory");
hgs
parents: 0
diff changeset
   399
    if(!enabled)
hgs
parents: 0
diff changeset
   400
      return;
hgs
parents: 0
diff changeset
   401
    
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   402
    QDateTime currentDateTime = QDateTime::currentDateTime();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   403
    
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   404
    HistoryLeaf* leaf=new HistoryLeaf();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   405
    leaf->setTitle(title);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   406
    leaf->setUrl(url);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   407
    leaf->setDate(currentDateTime.date());
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   408
    leaf->setLastVisited(currentDateTime.time());
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   409
    
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   410
    if (d->m_connectedToBookmarks){
3
hgs
parents: 0
diff changeset
   411
        if(ErrNone == d->m_bookmarkSession->addHistory(leaf)){
hgs
parents: 0
diff changeset
   412
          d->m_actionClearHistory->setEnabled(true);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   413
        }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   414
    }
3
hgs
parents: 0
diff changeset
   415
    delete leaf;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   416
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   417
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   418
/*!
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   419
 * Add to recent urls
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   420
 * @param url: url to be added to recent url list
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   421
 * @param title: title for this item in recent url list
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   422
 * @param icon: icon to be added for this item in recent url list
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   423
 */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   424
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   425
void BookmarksManager::addHistory(const QUrl &url, const QString &title)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   426
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   427
    addHistory(url.toString(), title);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   428
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   429
3
hgs
parents: 0
diff changeset
   430
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   431
/*!
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   432
 * delete recent urls
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   433
 * clears all the recent url list.
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   434
 */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   435
void BookmarksManager::clearHistory()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   436
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   437
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   438
    if (d->m_connectedToBookmarks) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   439
        d->m_bookmarkSession->clearHistory();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   440
    }
3
hgs
parents: 0
diff changeset
   441
    
hgs
parents: 0
diff changeset
   442
    d->m_actionClearHistory->setEnabled(false);
hgs
parents: 0
diff changeset
   443
    
hgs
parents: 0
diff changeset
   444
    emit historyCleared();
hgs
parents: 0
diff changeset
   445
}
hgs
parents: 0
diff changeset
   446
hgs
parents: 0
diff changeset
   447
QAction * BookmarksManager::getActionClearHistory()
hgs
parents: 0
diff changeset
   448
{
hgs
parents: 0
diff changeset
   449
    return d->m_actionClearHistory;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   450
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   451
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   452
int BookmarksManager::getPageRank(const QString &url)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   453
{
3
hgs
parents: 0
diff changeset
   454
 //Check for a valid entry
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   455
    if (url.isNull())
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   456
        return 0;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   457
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   458
    int rank = 0;
3
hgs
parents: 0
diff changeset
   459
	QList<HistoryLeaf*> historyNodes = d->m_bookmarkSession->fetchHistory();
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   460
3
hgs
parents: 0
diff changeset
   461
    for (int i=0; i < historyNodes.count(); i++) {
hgs
parents: 0
diff changeset
   462
      //Update rank if there is a history for this URL.
hgs
parents: 0
diff changeset
   463
        if (!historyNodes[i]->getUrl().compare(url))
hgs
parents: 0
diff changeset
   464
           rank++;
hgs
parents: 0
diff changeset
   465
    }
hgs
parents: 0
diff changeset
   466
hgs
parents: 0
diff changeset
   467
	while (!historyNodes.isEmpty())
hgs
parents: 0
diff changeset
   468
     delete historyNodes.takeFirst();
hgs
parents: 0
diff changeset
   469
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   470
    return rank;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   471
}