Newer
Older
#include "OE_ui_stitchlist.h"
#include "lib/qtmaterialtheme.h"
#include <iostream>
OE_ui_stitchList::OE_ui_stitchList(MainWindow* window, OE_root* root)
this->root = root;
this->window = window;
this->setSelectionMode(QAbstractItemView::ExtendedSelection);
setDragEnabled(true);
setDragDropMode(QAbstractItemView::InternalMove);
viewport()->setAcceptDrops(true);
setDropIndicatorShown(true);
setDefaultDropAction(Qt::TargetMoveAction);
setMinimumSize(100,0);
setDragDropMode(QAbstractItemView::InternalMove);
model = new QStandardItemModel();
listdelegate = new ListviewDelegate();
setItemDelegate(listdelegate);
setModel(model);
//getItems();
refreshStitches();
connect(this->root->interfaceDisplay, SIGNAL(refreshStitchList()), this, SLOT(on_refreshStitchList()));
connect(this->root->interfaceDisplay, SIGNAL(refreshStitch(OE_stitchs*)), this, SLOT(on_refreshStitch(OE_stitchs*)));
showMaximized();
void OE_ui_stitchList::addItem(QColor color, QIcon icon, QIcon type, QIcon pattern, int stitchCount)
QStandardItem *item = new QStandardItem();
item->setData(color,ListviewDelegate::threadRole);
item->setData(QString::number(model->rowCount()+1),ListviewDelegate::IndexRole);
item->setData(QString::number(stitchCount),ListviewDelegate::NbpointsRole);
item->setData(icon,ListviewDelegate::IconRole);
item->setData(type,ListviewDelegate::typeRole);
item->setData(pattern,ListviewDelegate::patternole);
item->setFlags(item->flags() & ~(Qt::ItemIsDropEnabled));//& ~Qt::ItemIsDragEnabled);
model->appendRow(item);
void OE_ui_stitchList::addItem(QColor color, int stitchCount)
{
QStandardItem *item = new QStandardItem();
item->setData(color,ListviewDelegate::threadRole);
item->setData(QString::number(stitchCount),ListviewDelegate::NbpointsRole);
item->setFlags(item->flags() & ~(Qt::ItemIsDropEnabled));// & ~Qt::ItemIsDragEnabled);
model->appendRow(item);
}
void OE_ui_stitchList::addStitch(OE_stitchs* stitch)
{
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
OE_linkstitch* tmpLinkStitch = dynamic_cast<OE_linkstitch*>(stitch);
if (tmpLinkStitch)
{
addItem(QColor(Qt::red), 10);
return;
}
OE_linestitch* tmpLineStitch = dynamic_cast<OE_linestitch*>(stitch);
if (tmpLineStitch)
{
QIcon lineStitchIcon;
lineStitchIcon.addFile(":/resources/line_stitch.svg", QSize(), QIcon::Normal, QIcon::Off);
addItem(QColor(Qt::red), lineStitchIcon, lineStitchIcon, lineStitchIcon, 10);
return;
}
OE_birailstitch* tmpBirailStitch = dynamic_cast<OE_birailstitch*>(stitch);
if (tmpBirailStitch)
{
QIcon birailStitchIcon;
birailStitchIcon.addFile(":/resources/birail_stitch.svg", QSize(), QIcon::Normal, QIcon::Off);
addItem(QColor(Qt::red), birailStitchIcon, birailStitchIcon, birailStitchIcon, 10);
return;
}
OE_fillstitch* tmpFillStitch = dynamic_cast<OE_fillstitch*>(stitch);
if (tmpFillStitch)
{
QIcon fillStitchIcon;
fillStitchIcon.addFile(":/resources/fill_stitch.svg", QSize(), QIcon::Normal, QIcon::Off);
addItem(QColor(Qt::red), fillStitchIcon, fillStitchIcon, fillStitchIcon, 10);
return;
}
//root->document->stitchs
//root->document->selectedStitchs
}
void OE_ui_stitchList::refreshStitches()
{
if (root->interfaceDisplay->getDocument())
{
model->clear();
for (auto stitch : root->interfaceDisplay->getDocument()->stitchs)
{
addStitch(stitch);
}
}
}
void OE_ui_stitchList::getItems()
{
//QStandardItem *item = new QStandardItem();
QIcon icon(this->style()->standardIcon(QStyle::SP_DialogOpenButton));
QIcon type(this->style()->standardIcon(QStyle::SP_DialogOpenButton));
QIcon pattern(this->style()->standardIcon(QStyle::SP_DialogOpenButton));
QIcon lineStitchIcon;
lineStitchIcon.addFile(":/resources/line_stitch.svg", QSize(), QIcon::Normal, QIcon::Off);
QIcon birailStitchIcon;
birailStitchIcon.addFile(":/resources/birail_stitch.svg", QSize(), QIcon::Normal, QIcon::Off);
QIcon fillStitchIcon;
fillStitchIcon.addFile(":/resources/fill_stitch.svg", QSize(), QIcon::Normal, QIcon::Off);
addItem(QColor(Qt::red), icon, lineStitchIcon, pattern, 52);
addItem(QColor(Qt::red), 8);
addItem(QColor(Qt::blue), icon, birailStitchIcon, pattern, 485);
addItem(QColor(Qt::blue), 5);
addItem(QColor(Qt::blue), icon, fillStitchIcon, pattern, 5885);
}*/
void OE_ui_stitchList::on_refreshStitchList()
{
refreshStitches();
}
void OE_ui_stitchList::on_refreshStitch(OE_stitchs* stitch)
{
refreshStitches();