27 #include "ui_DoubleListWidgetForm.h" 36 m_ui(new
Ui::DoubleListWidgetForm)
41 m_ui->m_addToolButton->setIcon(QIcon::fromTheme(
"go-next"));
42 m_ui->m_addAllToolButton->setIcon(QIcon::fromTheme(
"go-last"));
43 m_ui->m_removeToolButton->setIcon(QIcon::fromTheme(
"go-previous"));
44 m_ui->m_removeAllToolButton->setIcon(QIcon::fromTheme(
"go-first"));
45 m_ui->m_upToolButton->setIcon(QIcon::fromTheme(
"go-up"));
46 m_ui->m_downToolButton->setIcon(QIcon::fromTheme(
"go-down"));
49 m_ui->m_leftListWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);
50 m_ui->m_rightListWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);
72 m_ui->m_leftListWidget->clear();
74 if(values.empty() ==
false)
75 m_ui->m_addAllToolButton->setEnabled(
true);
77 m_ui->m_addAllToolButton->setEnabled(
false);
79 for(
size_t i = 0; i < values.size(); ++i)
81 m_ui->m_leftListWidget->addItem(QString::fromUtf8(values[i].c_str()));
87 m_ui->m_leftListWidget->clear();
89 if (values.size() != ids.size())
92 if (values.empty() ==
false)
93 m_ui->m_addAllToolButton->setEnabled(
true);
95 m_ui->m_addAllToolButton->setEnabled(
false);
97 for (
size_t i = 0; i < values.size(); ++i)
99 QListWidgetItem* item =
new QListWidgetItem(
m_ui->m_leftListWidget);
100 item->setText(QString::fromUtf8(values[i].c_str()));
101 item->setData(Qt::UserRole, QVariant(ids[i]));
103 m_ui->m_leftListWidget->addItem(item);
109 m_ui->m_rightListWidget->clear();
111 if(values.empty() ==
false)
112 m_ui->m_removeAllToolButton->setEnabled(
true);
114 m_ui->m_removeAllToolButton->setEnabled(
false);
116 for(
size_t i = 0; i < values.size(); ++i)
118 m_ui->m_rightListWidget->addItem(QString::fromUtf8(values[i].c_str()));
124 m_ui->m_rightListWidget->clear();
126 if (values.size() != ids.size())
129 if (values.empty() ==
false)
130 m_ui->m_removeAllToolButton->setEnabled(
true);
132 m_ui->m_removeAllToolButton->setEnabled(
false);
134 for (
size_t i = 0; i < values.size(); ++i)
136 QListWidgetItem* item =
new QListWidgetItem(
m_ui->m_rightListWidget);
137 item->setText(QString::fromUtf8(values[i].c_str()));
138 item->setData(Qt::UserRole, QVariant(ids[i]));
140 m_ui->m_rightListWidget->addItem(item);
146 for(
size_t i = 0; i < values.size(); ++i)
148 QListWidgetItem* item =
new QListWidgetItem(
m_ui->m_rightListWidget);
149 item->setText(QString::fromUtf8(values[i].c_str()));
150 item->setFlags(Qt::ItemIsEnabled);
151 item->setIcon(QIcon::fromTheme(iconName.c_str()));
157 m_ui->m_leftItemsLabel->setText(value);
162 m_ui->m_rightItemsLabel->setText(value);
167 std::vector<std::string> vec;
169 int count =
m_ui->m_rightListWidget->count();
171 for(
int i = 0; i < count; ++i)
173 vec.push_back(
m_ui->m_rightListWidget->item(i)->text().toUtf8().data());
181 std::vector<int> vec;
183 int count =
m_ui->m_rightListWidget->count();
185 for (
int i = 0; i < count; ++i)
187 QVariant v =
m_ui->m_rightListWidget->item(i)->data(Qt::UserRole);
190 vec.push_back(v.toInt());
198 m_ui->m_leftListWidget->clear();
200 m_ui->m_addToolButton->setEnabled(
false);
201 m_ui->m_addAllToolButton->setEnabled(
false);
206 m_ui->m_rightListWidget->clear();
208 m_ui->m_removeToolButton->setEnabled(
false);
209 m_ui->m_removeAllToolButton->setEnabled(
false);
214 m_ui->m_upToolButton->setVisible(state);
215 m_ui->m_downToolButton->setVisible(state);
220 std::vector<int> itemList;
222 for (
int i = 0; i < list.size(); ++i)
224 int row =
m_ui->m_leftListWidget->row(list[i]);
226 QListWidgetItem* item =
m_ui->m_leftListWidget->takeItem(row);
228 m_ui->m_rightListWidget->addItem(item);
230 QVariant v = item->data(Qt::UserRole);
233 itemList.push_back(v.toInt());
236 m_ui->m_addToolButton->setEnabled(
false);
237 m_ui->m_addAllToolButton->setEnabled(
m_ui->m_leftListWidget->count() != 0);
245 QList<QListWidgetItem*> listItem;
247 for (std::size_t i = 0; i < ids.size(); ++i)
252 listItem.push_back(item);
255 if (!listItem.isEmpty())
261 std::vector<int> itemList;
263 for (
int i = 0; i < list.size(); ++i)
265 int row =
m_ui->m_rightListWidget->row(list[i]);
267 QListWidgetItem* item =
m_ui->m_rightListWidget->takeItem(row);
269 m_ui->m_leftListWidget->addItem(item);
271 QVariant v = item->data(Qt::UserRole);
274 itemList.push_back(v.toInt());
277 m_ui->m_removeToolButton->setEnabled(
false);
278 m_ui->m_removeAllToolButton->setEnabled(
m_ui->m_rightListWidget->count() != 0);
279 m_ui->m_upToolButton->setEnabled(
m_ui->m_rightListWidget->count() != 0);
280 m_ui->m_downToolButton->setEnabled(
m_ui->m_rightListWidget->count() != 0);
288 QList<QListWidgetItem*> listItem;
290 for (std::size_t i = 0; i < ids.size(); ++i)
295 listItem.push_back(item);
298 if (!listItem.isEmpty())
304 QList<QListWidgetItem*> list =
m_ui->m_leftListWidget->selectedItems();
306 if(list.empty() ==
false)
307 m_ui->m_removeAllToolButton->setEnabled(
true);
314 m_ui->m_leftListWidget->selectAll();
316 QList<QListWidgetItem*> list =
m_ui->m_leftListWidget->selectedItems();
318 if(list.empty() ==
false)
319 m_ui->m_removeAllToolButton->setEnabled(
true);
326 QList<QListWidgetItem*> list =
m_ui->m_rightListWidget->selectedItems();
328 if(list.empty() ==
false)
329 m_ui->m_addAllToolButton->setEnabled(
true);
336 m_ui->m_rightListWidget->selectAll();
338 QList<QListWidgetItem*> list =
m_ui->m_rightListWidget->selectedItems();
340 if(list.empty() ==
false)
341 m_ui->m_addAllToolButton->setEnabled(
true);
348 int count =
m_ui->m_rightListWidget->count();
350 if(count ==
m_ui->m_rightListWidget->selectedItems().size())
353 for(
int i = count-1; i >= 0; --i)
355 QListWidgetItem* currentItem =
m_ui->m_rightListWidget->item(i);
360 if(currentItem->isSelected())
362 QListWidgetItem* itemAfter =
m_ui->m_rightListWidget->item(i+1);
364 bool wasSelected = itemAfter->isSelected();
366 m_ui->m_rightListWidget->takeItem(i);
367 m_ui->m_rightListWidget->takeItem(i);
369 m_ui->m_rightListWidget->insertItem(i, itemAfter);
370 m_ui->m_rightListWidget->insertItem(i+1, currentItem);
372 currentItem->setSelected(
true);
375 itemAfter->setSelected(
true);
382 int count =
m_ui->m_rightListWidget->count();
384 if(count ==
m_ui->m_rightListWidget->selectedItems().size())
387 for(
int i = 0; i < count; ++i)
389 QListWidgetItem* currentItem =
m_ui->m_rightListWidget->item(i);
394 if(currentItem->isSelected())
396 QListWidgetItem* itemBefore =
m_ui->m_rightListWidget->item(i-1);
398 bool wasSelected = itemBefore->isSelected();
400 m_ui->m_rightListWidget->takeItem(i);
401 m_ui->m_rightListWidget->takeItem(i-1);
403 m_ui->m_rightListWidget->insertItem(i-1, currentItem);
404 m_ui->m_rightListWidget->insertItem(i, itemBefore);
406 currentItem->setSelected(
true);
409 itemBefore->setSelected(
true);
416 if(
m_ui->m_leftListWidget->selectedItems().size() > 0)
418 m_ui->m_addToolButton->setEnabled(
true);
419 m_ui->m_addAllToolButton->setEnabled(
true);
423 m_ui->m_addToolButton->setEnabled(
false);
429 if(
m_ui->m_rightListWidget->selectedItems().size() > 0)
431 m_ui->m_removeToolButton->setEnabled(
true);
432 m_ui->m_removeAllToolButton->setEnabled(
true);
433 m_ui->m_upToolButton->setEnabled(
true);
434 m_ui->m_downToolButton->setEnabled(
true);
438 m_ui->m_removeToolButton->setEnabled(
false);
439 m_ui->m_upToolButton->setEnabled(
false);
440 m_ui->m_downToolButton->setEnabled(
false);
448 int count =
m_ui->m_leftListWidget->count();
450 for (
int i = 0; i < count; ++i)
452 QVariant v =
m_ui->m_leftListWidget->item(i)->data(Qt::UserRole);
457 return m_ui->m_leftListWidget->item(i);
460 count =
m_ui->m_rightListWidget->count();
462 for (
int i = 0; i < count; ++i)
464 QVariant v =
m_ui->m_rightListWidget->item(i)->data(Qt::UserRole);
469 return m_ui->m_rightListWidget->item(i);