#include "engine.h"
+#include <QtCore/QDir>
+#include <QtCore/QStandardPaths>
+#include <QStringBuilder>
+
+Engine::Engine(QObject *parent)
+ : QObject(parent)
+ , m_bookmarks(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) % QDir::separator() % "bookmarks.ini", QSettings::IniFormat, this)
+{
+ qsrand(255);
+}
+
QUrl Engine::fromUserInput(const QString& userInput)
{
QFileInfo fileInfo(userInput);
const QColor c(QColor(color).toHsv());
return QColor::fromHsv(c.hue(), c.saturation(), c.value() < 127 ? 255 : c.value() - 100).name();
}
+
+QString Engine::restoreBookmarks()
+{
+ return m_bookmarks.value("bookmarks").toString();
+}
+
+void Engine::saveBookmarks(const QString & list)
+{
+ m_bookmarks.setValue("bookmarks", list);
+}
#include <QtCore/QEvent>
#include <QtCore/QFileInfo>
+#include <QtCore/QSettings>
#include <QtCore/QUrl>
#include <QtGui/QColor>
#include <QtQuick/QQuickItemGrabResult>
Q_PROPERTY(QObject * rootWindow READ rootWindow FINAL CONSTANT)
+ QSettings m_bookmarks;
+
public:
- Engine(QObject *parent)
- : QObject(parent)
- {
- qsrand(255);
- }
+ Engine(QObject *parent);
QObject *rootWindow()
{
return parent();
}
- Q_INVOKABLE static QUrl fromUserInput(const QString& userInput);
- Q_INVOKABLE static QString domainFromString(const QString& urlString);
- Q_INVOKABLE static QString randomColor();
- Q_INVOKABLE static QString colorForIcon(QQuickItemGrabResult *result);
- Q_INVOKABLE static QString oppositeColor(const QString & color);
+ Q_INVOKABLE QUrl fromUserInput(const QString& userInput);
+ Q_INVOKABLE QString domainFromString(const QString& urlString);
+ Q_INVOKABLE QString randomColor();
+ Q_INVOKABLE QString colorForIcon(QQuickItemGrabResult *result);
+ Q_INVOKABLE QString oppositeColor(const QString & color);
+ Q_INVOKABLE QString restoreBookmarks();
+ Q_INVOKABLE void saveBookmarks(const QString & list);
};
#endif // ENGINE_H
listModel.append(element)
}
+ function get(index) {
+ return listModel.get(index)
+ }
+
function contains(url) {
for (var idx = 0; idx < listModel.count; ++idx) {
if (listModel.get(idx).url === url)
ListModel {
id: listModel
+ Component.onCompleted: {
+ listModel.clear()
+ var string = engine.restoreBookmarks()
+ var list = JSON.parse(string)
+ for (var i = 0; i < list.length; ++i) {
+ listModel.append(list[i])
+ }
+ }
+ Component.onDestruction: {
+ var list = []
+ for (var i = 0; i < listModel.count; ++i) {
+ list[i] = listModel.get(i)
+ }
+ engine.saveBookmarks(JSON.stringify(list))
+ }
}
GridView {
color: "transparent"
anchors.centerIn: parent
width: 500
- height: 100
+ height: 300
Text {
anchors.centerIn: parent
color: placeholderColor
if (!webView)
return
+ console.log(webView.loading)
+ var icon = webView.loading ? "" : webView.icon
var idx = homeScreen.contains(webView.url.toString())
if (idx != -1) {
+ homeScreen.get(idx).iconUrl = icon.toString()
homeScreen.state = "enabled"
- homeScreen.currentIndex = idx
+ homeScreen.set(idx)
return
}
- var icon = webView.loading ? "" : webView.icon
homeScreen.add(webView.title, webView.url, icon, engine.randomColor())
}
}
#include <QDateTime>
-#include "utils.h"
+#include "engine.h"
using namespace utils;