1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-11 09:36:37 +00:00
OpenMW/apps/opencs/view/widget/droplineedit.hpp

52 lines
1.5 KiB
C++

#ifndef CSV_WIDGET_DROPLINEEDIT_HPP
#define CSV_WIDGET_DROPLINEEDIT_HPP
#include <QLineEdit>
#include "../../model/world/columnbase.hpp"
#include "../../model/world/universalid.hpp"
namespace CSMDoc
{
class Document;
}
namespace CSMWorld
{
class TableMimeData;
}
namespace CSVWidget
{
class DropLineEdit : public QLineEdit
{
Q_OBJECT
CSMWorld::UniversalId::Type mDropType;
///< The accepted ID type for this LineEdit.
///< If \a mDropType has Type_None type, this LineEdit accepts all ID types
bool canAcceptEventData(QDropEvent *event) const;
///< Checks whether the \a event contains CSMWorld::TableMimeData with a proper ID type
int getAcceptedDataIndex(const CSMWorld::TableMimeData &data) const;
///< Checks whether the \a data has a proper type
///< \return -1 if there is no suitable data (ID type)
public:
DropLineEdit(CSMWorld::UniversalId::Type type, QWidget *parent = 0);
DropLineEdit(CSMWorld::ColumnBase::Display display, QWidget *parent = 0);
protected:
void dragEnterEvent(QDragEnterEvent *event);
void dragMoveEvent(QDragMoveEvent *event);
void dropEvent(QDropEvent *event);
signals:
void tableMimeDataDropped(const std::vector<CSMWorld::UniversalId> &data,
const CSMDoc::Document *document);
};
}
#endif