diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-02-07 12:42:38 +0100 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-02-07 12:42:38 +0100 |
commit | f59e1e7a57e5b79858997aab317b15f556ff1d62 (patch) | |
tree | 0bf93844112471bca22728741653a237d6435fb9 /lib/bookmarks/bookmarksmodel.cpp | |
parent | Bookmarks drag and drop (diff) | |
download | smolbote-f59e1e7a57e5b79858997aab317b15f556ff1d62.tar.xz |
Bookmarks bugfixes
- Overwriting bookmarks file when saving
- Added BookmarksModel::removeItem with mystery crash on QVector::count
Diffstat (limited to 'lib/bookmarks/bookmarksmodel.cpp')
-rw-r--r-- | lib/bookmarks/bookmarksmodel.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/bookmarks/bookmarksmodel.cpp b/lib/bookmarks/bookmarksmodel.cpp index ba537ba..5b91216 100644 --- a/lib/bookmarks/bookmarksmodel.cpp +++ b/lib/bookmarks/bookmarksmodel.cpp @@ -7,8 +7,8 @@ */ #include "bookmarksmodel.h" -#include <QMimeData> #include <QBuffer> +#include <QMimeData> BookmarksModel::BookmarksModel(QStyle *style, QObject *parent) : QAbstractItemModel(parent) @@ -148,6 +148,21 @@ QModelIndex BookmarksModel::insertItem(BookmarkItem::BookmarkItemType type, cons return index(node); } +bool BookmarksModel::removeItem(const QModelIndex &node) +{ + if(!node.isValid()) + return false; + + auto *item = static_cast<BookmarkItem *>(node.internalPointer()); + auto *parentItem = item->parentItem(); + + beginRemoveRows(node, node.row(), node.row()); + parentItem->removeChild(item); + delete item; + endRemoveRows(); + return true; +} + int BookmarksModel::columnCount(const QModelIndex &parent) const { if(parent.isValid()) { |