diff options
| author | Felix (xq) Queißner <git@mq32.de> | 2020-06-06 23:14:21 +0200 |
|---|---|---|
| committer | Felix (xq) Queißner <git@mq32.de> | 2020-06-06 23:14:21 +0200 |
| commit | 3aed883402dc8da829fc304434c5efd0570cbb97 (patch) | |
| tree | 48c46ab087a950d80f78819ceb609e93d246b040 /favouritecollection.cpp | |
| parent | 44e85dce678e7e36f436a6d0a25c212c9a2d3657 (diff) | |
| download | kristall-3aed883402dc8da829fc304434c5efd0570cbb97.tar.gz | |
Moves source code into subdirectory.
Diffstat (limited to 'favouritecollection.cpp')
| -rw-r--r-- | favouritecollection.cpp | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/favouritecollection.cpp b/favouritecollection.cpp deleted file mode 100644 index 161eacf..0000000 --- a/favouritecollection.cpp +++ /dev/null @@ -1,140 +0,0 @@ -#include "favouritecollection.hpp" - -#include <QFile> - -FavouriteCollection::FavouriteCollection(QObject *parent) : - QAbstractListModel(parent) -{ - -} - -void FavouriteCollection::add(QUrl const & url) -{ - if(contains(url)) - return; - - beginInsertRows(QModelIndex{}, items.size(), items.size() + 1); - items.push_back(url); - endInsertRows(); -} - -void FavouriteCollection::remove(QUrl const & url) -{ - for(int i = 0; i < items.size(); i++) - { - if(items.at(i) == url) { - beginRemoveRows(QModelIndex{}, i, i + 1); - items.removeAt(i); - endRemoveRows(); - return; - } - } -} - -bool FavouriteCollection::contains(const QUrl &url) -{ - for(auto const & item : items) { - if(item == url) - return true; - } - return false; -} - -QUrl FavouriteCollection::get(const QModelIndex &index) const -{ - if(index.isValid()) { - return items.at(index.row()); - } else { - return QUrl { }; - } -} - -bool FavouriteCollection::save(const QString &fileName) const -{ - QFile file(fileName); - if(not file.open(QFile::WriteOnly)) - return false; - - for(auto const & url: items) - { - QByteArray blob = (url.toString() + "\n").toUtf8(); - - qint64 offset = 0; - while(offset < blob.size()) - { - auto len = file.write(blob.data() + offset, blob.size() - offset); - if(len <= 0) { - file.close(); - return false; - } - offset += len; - } - } - - file.close(); - return true; -} - -bool FavouriteCollection::save(QSettings &settings) const -{ - settings.beginWriteArray("favourites", items.size()); - for(int i = 0; i < items.size(); i++) - { - settings.setArrayIndex(i); - settings.setValue("url", items[i].toString()); - } - settings.endArray(); - return true; -} - -bool FavouriteCollection::load(const QString &fileName) -{ - QFile file(fileName); - if(not file.open(QFile::ReadOnly)) - return false; - auto data = file.readAll(); - - beginResetModel(); - - items.clear(); - for(auto line : data.split('\n')) { - if(line.size() > 0) { - items.push_back(QUrl(QString::fromUtf8(line))); - } - } - endResetModel(); - - return true; -} - -bool FavouriteCollection::load(QSettings & settings) -{ - int len = settings.beginReadArray("favourites"); - items.resize(len); - for(int i = 0; i < items.size(); i++) - { - settings.setArrayIndex(i); - items[i] = settings.value("url").toString(); - } - settings.endArray(); - return true; -} - -int FavouriteCollection::rowCount(const QModelIndex &parent) const -{ - return items.size(); -} - -bool FavouriteCollection::setData(const QModelIndex &index, const QVariant &value, int role) -{ - return false; -} - -QVariant FavouriteCollection::data(const QModelIndex &index, int role) const -{ - if(role != Qt::DisplayRole) { - return QVariant{}; - } - return items.at(index.row()).toString(); -} - |
