/* * This file is part of smolbote. It's copyrighted by the contributors recorded * in the version control history of the file, available from its original * location: https://neueland.iserlohn-fortress.net/smolbote.hg * * SPDX-License-Identifier: GPL-3.0 */ #include "bookmarksview.h" inline QTreeWidgetItem *createTreeWidgetItem(QTreeWidget *widget, QTreeWidgetItem *parentItem) { if(parentItem) return new QTreeWidgetItem(parentItem); else return new QTreeWidgetItem(widget); } BookmarksView::BookmarksView(QWidget *parent) : QTreeWidget(parent) { QStyle *qStyle = style(); folderIcon.addPixmap(qStyle->standardPixmap(QStyle::SP_DirClosedIcon), QIcon::Normal, QIcon::Off); folderIcon.addPixmap(qStyle->standardPixmap(QStyle::SP_DirOpenIcon), QIcon::Normal, QIcon::On); bookmarkIcon.addPixmap(qStyle->standardPixmap(QStyle::SP_FileIcon)); } QTreeWidgetItem *BookmarksView::createBookmark(QTreeWidgetItem *parentItem) { QTreeWidgetItem *item = createTreeWidgetItem(this, parentItem); item->setFlags(item->flags().setFlag(Qt::ItemIsDropEnabled, false) | Qt::ItemIsEditable | Qt::ItemIsDragEnabled); item->setData(0, Qt::UserRole, Type::Bookmark); item->setIcon(0, bookmarkIcon); return item; } QTreeWidgetItem *BookmarksView::createFolder(QTreeWidgetItem *parentItem) { QTreeWidgetItem *item = createTreeWidgetItem(this, parentItem); item->setFlags(item->flags() | Qt::ItemIsEditable | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled); item->setData(0, Qt::UserRole, Type::Folder); item->setIcon(0, folderIcon); return item; } BookmarksView::Type BookmarksView::itemType(QTreeWidgetItem *item) const { if(item == nullptr) return Invalid; return item->data(0, Qt::UserRole).value(); }