browsercore/appfw/Api/Managers/bookmarkscontroller.cpp
changeset 12 afcd8e6d025b
child 14 6aeb7a756187
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/browsercore/appfw/Api/Managers/bookmarkscontroller.cpp	Fri Sep 17 12:11:40 2010 -0400
@@ -0,0 +1,115 @@
+/*
+ * bookmarkscontroller.cpp
+ *
+ *  Created on: Aug 25, 2010
+ *      Author: mmoretti
+ */
+
+
+#include <QObject>
+#include <QWidget>
+#include <QDebug>
+
+#include "bookmarkscontroller.h"
+#include "BookmarksManager.h"
+#include "BookmarkFav.h"
+#include "BookmarkResults.h"
+
+BookmarksController::BookmarksController(QWidget *parent) :
+	    QObject(parent)
+{
+	setObjectName("bookmarksController");
+	m_bm = new BookmarksManager(parent);
+}
+
+BookmarksController::~BookmarksController() {
+	// TODO Auto-generated destructor stub
+}
+
+BookmarksController* BookmarksController::getSingleton()
+{
+    static BookmarksController* singleton = 0;
+
+    if(!singleton){
+           singleton = new BookmarksController;
+    }
+
+    //assert(singleton);
+    return singleton;
+}
+
+
+int BookmarksController::addBookmark(QString title, QString URL)
+{
+	int bmid = m_bm->addBookmark(title, URL);
+//	qDebug() << __PRETTY_FUNCTION__ << "added bookmark" << title << URL  << bmid << "emitting bookmarkAdded";
+	emit bookmarkAdded(title, URL, bmid);
+	return(bmid);
+}
+
+int BookmarksController::modifyBookmark(int origBookmarkId, QString newTitle, QString newURL)
+{
+	int retstat = m_bm->modifyBookmark(origBookmarkId, newTitle, newURL);
+	emit bookmarkModified(newTitle, newURL, origBookmarkId);
+	return retstat;
+}
+
+int BookmarksController::deleteBookmark(int bookmarkId)
+{
+	return m_bm->deleteBookmark(bookmarkId);
+}
+
+int BookmarksController::clearAll()
+{
+	int retstat = m_bm->clearAll();
+	emit bookmarksCleared();
+	return retstat;
+}
+
+int BookmarksController::findAllBookmarks()
+{
+	m_bmr = m_bm->findAllBookmarks();
+	if (!m_bmr)
+		return -1;
+	return(0);
+}
+
+// This is only necessary because JS can't handle null objects being returned by nextBookmark
+bool BookmarksController::hasMoreBookmarks()
+{
+	if (!m_bmr)
+		return false;
+
+	m_bmf = m_bmr->nextBookmark();
+	if (!m_bmf) {
+		delete m_bmr;
+		m_bmr = 0;
+		return false;
+	}
+
+	return true;
+}
+
+
+QObject *BookmarksController::nextBookmark()
+{
+	return m_bmf;
+}
+
+int BookmarksController::reorderBookmark(int bookmarkID, int newIndex)
+{
+	return m_bm->reorderBookmark(bookmarkID, newIndex);
+}
+
+QObject *BookmarksController::findBookmark(int bookmarkID)
+{
+	return m_bm->findBookmark(bookmarkID);
+}
+
+void BookmarksController::showBookmarkEditDialog(QString title, QString url, int bookmarkID)
+{
+	// This is SOOOO convoluted; in our js, in order to call a function in another scope, we have to call a function here that emits a signal that is connected to that function, wtf?
+	emit launchBookmarkEditDailog(title, url, bookmarkID);
+}
+
+// TODO add tag stuff when we get a ui for it