#ifndef LISTVIEWDRAGDROP_H
#define LISTVIEWDRAGDROP_H
#include <QMainWindow>
#include <QPushButton>
#include "modmodel.h"
namespace Ui {
class ListViewDragDrop;
}
class ModModel;
class ModListView;
{
Q_OBJECT
public:
explicit ListViewDragDrop
(QWidget *parent
= 0);
~ListViewDragDrop();
void receive_strings();
private:
//void slot_test();
Ui::ListViewDragDrop *ui;
public:
//QStringListModel *m_ModelA;
//QStringListModel *m_ModelB;
ModModel *m_ModelA;
ModModel *m_ModelB;
ModListView *m_ViewA;
ModListView *m_ViewB;
};
#include "listviewdragdrop.h"
#include "ui_listviewdragdrop.h"
#include <QListView>
#include <QStringListModel>
#include <QSplitter>
#include <QDebug>
#include "modmodel.h"
#include "modlistview.h"
ListViewDragDrop
::ListViewDragDrop(QWidget *parent
) : ui(new Ui::ListViewDragDrop)
{
ui->setupUi(this);
listA << "A1" << "A2" << "A3" << "A4";
//m_ModelA = new QStringListModel(this);
m_ModelA = new ModModel(this);
m_ModelA->setStringList(listA);
listB << "B1" << "B2" << "B3" << "B4";
//m_ModelB = new QStringListModel(this);
m_ModelB = new ModModel(this);
m_ModelB->setStringList(listB);
m_ViewA = new ModListView(this);
m_ViewA->setModel( m_ModelA );
m_ViewA->setDragEnabled( true );
m_ViewA->setAcceptDrops( true );
m_ViewB = new ModListView(this);
m_ViewB->setModel( m_ModelB );
m_ViewB->setDragEnabled( true );
m_ViewB->setAcceptDrops( true );
pSplitter->addWidget(m_ViewA);
pSplitter->addWidget(m_ViewB);
pSplitter->addWidget(m_button);
setCentralWidget( pSplitter );
}
ListViewDragDrop::~ListViewDragDrop()
{
delete ui;
}
void ListViewDragDrop::receive_strings()
{
int ARC = m_ModelA->rowCount();
int BRC = m_ModelB->rowCount();
qDebug() << "ListViewDragDrop::receive_strings: rowo count:" << ARC << "listeB" << listeA << BRC << "listeB" << listeB;
}
#ifndef MODLISTVIEW_H
#define MODLISTVIEW_H
#include <QListView>
#include <QDropEvent>
class ListViewDragDrop;
{
Q_OBJECT
public:
ModListView(ListViewDragDrop *parent);
~ModListView();
private:
ListViewDragDrop *m_parent;
};
#endif // MODLISTVIEW_H
#include "modlistview.h"
#include <QDebug>
#include <QDropEvent>
#include <QApplication>
#include <QMimeData>
#include <QAbstractItemView>
#include "listviewdragdrop.h"
ModListView::ModListView(ListViewDragDrop *parent) : m_parent(parent)
{
}
ModListView::~ModListView()
{
}
{
qDebug() << "ModListView::dropEvent: rowo count:";
m_parent->receive_strings();
}
#ifndef MODMODEL_H
#define MODMODEL_H
#include <QStringListModel>
#include <QDropEvent>
class ListViewDragDrop;
{
Q_OBJECT
public:
ModModel(ListViewDragDrop *parent);
~ModModel();
virtual Qt::DropActions supportedDropActions() const override
{
return Qt::MoveAction;
}
private:
ListViewDragDrop *m_parent;
};
#endif // MODMODEL_H
#include "modmodel.h"
#include <QDebug>
#include "listviewdragdrop.h"
ModModel::ModModel(ListViewDragDrop *parent) : m_parent(parent)
{
}
ModModel::~ModModel()
{
}