-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaddimgthread.cpp
More file actions
58 lines (45 loc) · 1.53 KB
/
addimgthread.cpp
File metadata and controls
58 lines (45 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include "addimgthread.h"
std::atomic_int AddingImgThread::m_size_limit = 1;
AddingImgThread::AddingImgThread(MyStandardItemModel *model)
{
connect(this, &AddingImgThread::addRow, model, &MyStandardItemModel::addRow);
connect(this, &AddingImgThread::clear, model, &MyStandardItemModel::clear);
emit clear();
}
int AddingImgThread::getGroupSizeLimit()
{
return AddingImgThread::m_size_limit;
}
void AddingImgThread::setGroupSizeLimit(int limit){
AddingImgThread::m_size_limit = limit;
}
void AddingImgThread::addStringList(const std::vector<std::wstring> &l)
{
if(l.size() < m_size_limit)return;
for(auto & x : l){
//std::wcout << L"adding " << x <<std::endl;
m_path_list.append(QString::fromStdWString(x));
}
run();
}
void AddingImgThread::run()
{
QList<QString>::const_iterator first = m_path_list.cbegin();
QStandardItem *group = new QStandardItem(QIcon(*first),
QVariant(m_path_list.length()).toString());
for(;first != m_path_list.cend(); ++first)
{
QStandardItem *child = new QStandardItem(QIcon(*first) ,*first);
child->setToolTip(*first);
child->setCheckable(true);
child->setDragEnabled(true);
child->setDropEnabled(true);
child->setEditable(false);
if(first!=m_path_list.cbegin())
child->setCheckState(Qt::Checked);
group->appendRow(std::move(child));
}
group->setCheckable(false);
emit addRow(std::move(group));
m_path_list.clear();
}