2014-02-04 08:13:40 +00:00
|
|
|
|
2014-02-01 18:06:41 +00:00
|
|
|
#ifndef TABLEMIMEDATA_H
|
|
|
|
#define TABLEMIMEDATA_H
|
|
|
|
|
2014-02-04 17:30:47 +00:00
|
|
|
#include <vector>
|
|
|
|
|
2014-02-09 14:33:00 +00:00
|
|
|
#include <QtCore/QMimeData>
|
2014-02-04 10:40:48 +00:00
|
|
|
#include <QStringList>
|
|
|
|
|
|
|
|
#include "universalid.hpp"
|
2014-02-13 09:21:49 +00:00
|
|
|
#include "columnbase.hpp"
|
2014-02-04 10:40:48 +00:00
|
|
|
|
2014-02-15 11:40:07 +00:00
|
|
|
namespace CSMDoc
|
|
|
|
{
|
|
|
|
class Document;
|
|
|
|
}
|
2014-02-01 18:06:41 +00:00
|
|
|
|
2014-02-04 08:13:40 +00:00
|
|
|
namespace CSMWorld
|
2014-02-01 18:06:41 +00:00
|
|
|
{
|
2014-02-14 13:04:36 +00:00
|
|
|
|
|
|
|
/// \brief Subclass of QmimeData, augmented to contain and transport UniversalIds.
|
|
|
|
///
|
|
|
|
/// This class provides way to construct mimedata object holding the universalid copy
|
|
|
|
/// Universalid is used in the majority of the tables to store type, id, argument types.
|
|
|
|
/// This way universalid grants a way to retrive record from the concrete table.
|
|
|
|
/// Please note, that tablemimedata object can hold multiple universalIds in the vector.
|
|
|
|
|
2014-02-04 08:13:40 +00:00
|
|
|
class TableMimeData : public QMimeData
|
|
|
|
{
|
|
|
|
public:
|
2014-02-15 11:40:07 +00:00
|
|
|
TableMimeData(UniversalId id, const CSMDoc::Document& document);
|
|
|
|
|
|
|
|
TableMimeData(std::vector<UniversalId>& id, const CSMDoc::Document& document);
|
|
|
|
|
2014-02-04 08:13:40 +00:00
|
|
|
~TableMimeData();
|
2014-02-15 11:40:07 +00:00
|
|
|
|
2014-02-04 08:13:40 +00:00
|
|
|
virtual QStringList formats() const;
|
2014-02-15 11:40:07 +00:00
|
|
|
|
2014-02-04 17:30:47 +00:00
|
|
|
std::string getIcon() const;
|
2014-02-15 11:40:07 +00:00
|
|
|
|
2014-02-04 18:42:52 +00:00
|
|
|
std::vector<UniversalId> getData() const;
|
2014-02-15 11:40:07 +00:00
|
|
|
|
2014-02-13 09:21:49 +00:00
|
|
|
bool holdsType(UniversalId::Type type) const;
|
2014-02-15 11:40:07 +00:00
|
|
|
|
2014-02-13 12:54:09 +00:00
|
|
|
bool holdsType(CSMWorld::ColumnBase::Display type) const;
|
2014-02-15 11:40:07 +00:00
|
|
|
|
|
|
|
bool fromDocument(const CSMDoc::Document& document) const;
|
|
|
|
|
2014-02-13 09:21:49 +00:00
|
|
|
UniversalId returnMatching(UniversalId::Type type) const;
|
2014-02-15 11:40:07 +00:00
|
|
|
|
2014-02-13 12:54:09 +00:00
|
|
|
UniversalId returnMatching(CSMWorld::ColumnBase::Display type) const;
|
2014-02-01 18:06:41 +00:00
|
|
|
|
2014-02-04 08:13:40 +00:00
|
|
|
private:
|
2014-02-04 17:30:47 +00:00
|
|
|
std::vector<UniversalId> mUniversalId;
|
|
|
|
QStringList mObjectsFormats;
|
2014-02-13 09:21:49 +00:00
|
|
|
|
2014-02-15 11:40:07 +00:00
|
|
|
const CSMDoc::Document& mDocument;
|
2014-02-13 12:54:09 +00:00
|
|
|
CSMWorld::UniversalId::Type convertEnums(CSMWorld::ColumnBase::Display type) const;
|
2014-02-04 08:13:40 +00:00
|
|
|
};
|
|
|
|
}
|
2014-02-14 14:12:34 +00:00
|
|
|
#endif // TABLEMIMEDATA_H
|