|
|
@@ -2,6 +2,7 @@
|
|
|
|
|
|
#include <QListWidgetItem>
|
|
|
#include <QScrollBar>
|
|
|
+#include <QDebug>
|
|
|
|
|
|
#include "vdoublerowitemwidget.h"
|
|
|
|
|
|
@@ -10,17 +11,10 @@ VListWidgetDoubleRows::VListWidgetDoubleRows(QWidget *p_parent)
|
|
|
{
|
|
|
}
|
|
|
|
|
|
-QListWidgetItem *VListWidgetDoubleRows::addItem(const QIcon &p_icon,
|
|
|
- const QString &p_firstRow,
|
|
|
- const QString &p_secondRow)
|
|
|
-{
|
|
|
- return VListWidgetDoubleRows::insertItem(count(), p_icon, p_firstRow, p_secondRow);
|
|
|
-}
|
|
|
-
|
|
|
-QListWidgetItem *VListWidgetDoubleRows::insertItem(int p_row,
|
|
|
- const QIcon &p_icon,
|
|
|
- const QString &p_firstRow,
|
|
|
- const QString &p_secondRow)
|
|
|
+QListWidgetItem *VListWidgetDoubleRows::insertDoubleRowsItem(int p_row,
|
|
|
+ const QIcon &p_icon,
|
|
|
+ const QString &p_firstRow,
|
|
|
+ const QString &p_secondRow)
|
|
|
{
|
|
|
VDoubleRowItemWidget *itemWidget = new VDoubleRowItemWidget(this);
|
|
|
itemWidget->setText(p_firstRow, p_secondRow);
|
|
|
@@ -42,8 +36,8 @@ QListWidgetItem *VListWidgetDoubleRows::insertItem(int p_row,
|
|
|
|
|
|
item->setSizeHint(sz);
|
|
|
|
|
|
- VListWidget::insertItem(p_row, item);
|
|
|
- VListWidget::setItemWidget(item, itemWidget);
|
|
|
+ insertItem(p_row, item);
|
|
|
+ setItemWidget(item, itemWidget);
|
|
|
return item;
|
|
|
}
|
|
|
|
|
|
@@ -52,8 +46,9 @@ void VListWidgetDoubleRows::clearAll()
|
|
|
// Delete the item widget for each item.
|
|
|
int cnt = count();
|
|
|
for (int i = 0; i < cnt; ++i) {
|
|
|
- QWidget *wid = itemWidget(item(i));
|
|
|
- removeItemWidget(item(i));
|
|
|
+ QListWidgetItem *it = item(i);
|
|
|
+ QWidget *wid = itemWidget(it);
|
|
|
+ removeItemWidget(it);
|
|
|
delete wid;
|
|
|
}
|
|
|
|
|
|
@@ -61,3 +56,20 @@ void VListWidgetDoubleRows::clearAll()
|
|
|
|
|
|
setIconSize(QSize());
|
|
|
}
|
|
|
+
|
|
|
+void VListWidgetDoubleRows::moveItem(int p_srcRow, int p_destRow)
|
|
|
+{
|
|
|
+ QListWidgetItem *it = item(p_srcRow);
|
|
|
+ QWidget *wid = itemWidget(it);
|
|
|
+
|
|
|
+ takeItem(p_srcRow);
|
|
|
+ insertItem(p_destRow, it);
|
|
|
+
|
|
|
+ if (wid) {
|
|
|
+ QWidget *newWid = VDoubleRowItemWidget::cloneWidget(static_cast<VDoubleRowItemWidget *>(wid), this);
|
|
|
+ removeItemWidget(it);
|
|
|
+ delete wid;
|
|
|
+
|
|
|
+ setItemWidget(it, newWid);
|
|
|
+ }
|
|
|
+}
|