swift
dropbase.h
1 // SPDX-FileCopyrightText: Copyright (C) 2015 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
4 #ifndef SWIFT_GUI_DROPBASE_H
5 #define SWIFT_GUI_DROPBASE_H
6 
7 #include <QList>
8 #include <QMimeData>
9 
10 #include "gui/swiftguiexport.h"
11 #include "misc/variant.h"
12 
13 namespace swift::gui
14 {
19  {
20  public:
22  virtual ~CDropBase();
23 
25  void setAcceptedMetaTypeIds(const QList<int> &ids);
26 
28  void addAcceptedMetaTypeId(int id);
29 
31  virtual bool isDropAllowed() const { return m_allowDrop; }
32 
34  virtual bool isJsonFileDropAllowed() const { return m_acceptJsonFile; }
35 
37  virtual void allowDrop(bool allowed) { m_allowDrop = allowed; }
38 
40  virtual void allowJsonFileDrop(bool allow) { m_acceptJsonFile = allow; }
41 
43  bool acceptDrop(const QMimeData *mime) const;
44 
46  swift::misc::CVariant toCVariant(const QMimeData *mime) const;
47 
48  protected:
50  CDropBase();
51 
52  private:
53  bool m_allowDrop = true;
54  bool m_acceptJsonFile = false;
55  QList<int> m_acceptedMetaTypes;
56  };
57 } // namespace swift::gui
58 
59 #endif // SWIFT_GUI_DROPBASE_H
Utilities for dropping swift value objects.
Definition: dropbase.h:19
virtual bool isJsonFileDropAllowed() const
File drop allowed?
Definition: dropbase.h:34
virtual void allowDrop(bool allowed)
Drop allowed.
Definition: dropbase.h:37
virtual void allowJsonFileDrop(bool allow)
Allow JSON file drop.
Definition: dropbase.h:40
virtual bool isDropAllowed() const
Drop allowed?
Definition: dropbase.h:31
Wrapper around QVariant which provides transparent access to CValueObject methods of the contained ob...
Definition: variant.h:66
GUI related classes.
#define SWIFT_GUI_EXPORT
Export a class or function from the library.