Skip to content
Snippets Groups Projects
Commit 467fab99 authored by Martin Hanzik's avatar Martin Hanzik Committed by Jan Trávníček
Browse files

Remove AlgorithmList and drag related things

parent cb06b043
No related branches found
No related tags found
No related merge requests found
...@@ -44,8 +44,6 @@ add_executable(${PROJECT_NAME} ...@@ -44,8 +44,6 @@ add_executable(${PROJECT_NAME}
src/Algorithm/Registry.hpp src/Algorithm/Registry.hpp
src/Converter.cpp src/Converter.cpp
src/Converter.hpp src/Converter.hpp
src/Graphics/AlgorithmList.cpp
src/Graphics/AlgorithmList.hpp
src/Graphics/Connection/Connection.cpp src/Graphics/Connection/Connection.cpp
src/Graphics/Connection/Connection.hpp src/Graphics/Connection/Connection.hpp
src/Graphics/Connection/ConnectionBox.cpp src/Graphics/Connection/ConnectionBox.cpp
......
...@@ -61,28 +61,3 @@ std::map<std::string, std::vector<Algorithm*>> Registry::getGroups() { ...@@ -61,28 +61,3 @@ std::map<std::string, std::vector<Algorithm*>> Registry::getGroups() {
   
return res; return res;
} }
std::unique_ptr<QStandardItemModel> Registry::createAlgorithmModel() {
auto model = std::make_unique<QStandardItemModel>();
for (const auto& group: Registry::getGroups()) {
auto groupName = QString::fromStdString(group.first);
auto* groupItem = new QStandardItem(groupName);
groupItem->setToolTip(groupName);
model->appendRow(groupItem);
for (const auto* algo: group.second) {
auto name = QString::fromStdString(algo->getPrettyName());
auto fullName = QString::fromStdString(algo->getFullName());
auto* item = new QStandardItem(name);
item->setToolTip(fullName);
item->setData(fullName);
groupItem->appendRow(item);
}
}
return model;
}
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
#include <string> #include <string>
   
#include <Algorithm/Algorithm.hpp> #include <Algorithm/Algorithm.hpp>
#include <QtGui/QStandardItemModel>
   
class Registry { class Registry {
public: public:
...@@ -13,8 +12,6 @@ public: ...@@ -13,8 +12,6 @@ public:
static Algorithm* getAlgorithm(const std::string& name); static Algorithm* getAlgorithm(const std::string& name);
static std::map<std::string, std::vector<Algorithm*>> getGroups(); static std::map<std::string, std::vector<Algorithm*>> getGroups();
   
static std::unique_ptr<QStandardItemModel> createAlgorithmModel();
private: private:
Registry() = default; Registry() = default;
   
......
#include <Graphics/AlgorithmList.hpp>
#include <QDrag>
#include <QtGui/QDragMoveEvent>
#include <QtGui/QStandardItemModel>
#include <QMimeData>
void AlgorithmList::startDrag(Qt::DropActions supportedActions) {
auto* item = dynamic_cast<QStandardItemModel*>(this->model())->itemFromIndex(this->currentIndex());
if (!item)
return;
auto algorithm = item->data();
if (algorithm.isNull())
return;
auto algorithmName = algorithm.toString();
if (algorithmName.isEmpty())
return;
auto* mimeData = new QMimeData;
mimeData->setData("application/x-algorithm", algorithmName.toUtf8());
auto* drag = new QDrag(this);
drag->setMimeData(mimeData);
drag->exec(Qt::MoveAction);
}
AlgorithmList::AlgorithmList(QWidget* parent)
: QTreeView(parent) {
this->setDragEnabled(true);
}
#pragma once
#include <QtWidgets/QTreeView>
class AlgorithmList : public QTreeView {
public:
explicit AlgorithmList(QWidget* parent);
protected:
void startDrag(Qt::DropActions supportedActions) override;
};
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
   
#include <utility> #include <utility>
   
#include <QtGui/QDrag>
#include <QtWidgets/QApplication> #include <QtWidgets/QApplication>
   
#include <Graphics/Connection/InputConnectionBox.hpp> #include <Graphics/Connection/InputConnectionBox.hpp>
......
#include <Graphics/GraphicsView.hpp> #include <Graphics/GraphicsView.hpp>
   
#include <QDragEnterEvent> #include <QMouseEvent>
#include <QMimeData>
#include <QtWidgets/QGraphicsScene> #include <QtWidgets/QGraphicsScene>
#include <QtWidgets/QWidget> #include <QtWidgets/QWidget>
   
...@@ -11,34 +10,6 @@ ...@@ -11,34 +10,6 @@
#include <MainWindow.hpp> #include <MainWindow.hpp>
#include <Models/AlgorithmModelBox.hpp> #include <Models/AlgorithmModelBox.hpp>
   
GraphicsView::GraphicsView(QWidget* parent)
: QGraphicsView(parent)
{
this->setAcceptDrops(true);
}
void GraphicsView::dragEnterEvent(QDragEnterEvent* event) {
if (event->mimeData()->hasFormat("application/x-algorithm"))
event->acceptProposedAction();
}
void GraphicsView::dropEvent(QDropEvent* event) {
auto name = event->mimeData()->data("application/x-algorithm").toStdString();
if (auto* algo = Registry::getAlgorithm(name)) {
this->scene()->addItem(new GraphicsBox(std::make_unique<AlgorithmModelBox>(algo), this->mapToScene(event->pos())));
event->acceptProposedAction();
}
else {
event->ignore();
}
}
void GraphicsView::dragMoveEvent(QDragMoveEvent* event) {
if (event->mimeData()->hasFormat("application/x-algorithm"))
event->acceptProposedAction();
}
void GraphicsView::mousePressEvent(QMouseEvent* event) { void GraphicsView::mousePressEvent(QMouseEvent* event) {
auto* w = MainWindow::getInstance(); auto* w = MainWindow::getInstance();
const auto& data = w->getCursorData(); const auto& data = w->getCursorData();
......
...@@ -3,13 +3,8 @@ ...@@ -3,13 +3,8 @@
   
class GraphicsView : public QGraphicsView { class GraphicsView : public QGraphicsView {
public: public:
GraphicsView(QWidget* parent); using QGraphicsView::QGraphicsView;
protected: protected:
void dragEnterEvent(QDragEnterEvent* event) override;
void dragMoveEvent(QDragMoveEvent* event) override;
void dropEvent(QDropEvent* event) override;
void mousePressEvent(QMouseEvent* event) override; void mousePressEvent(QMouseEvent* event) override;
}; };
   
......
...@@ -25,7 +25,6 @@ const std::string MainWindow::ADD_INPUT_CURSOR_DATA = "__ADD_INPUT__"; ...@@ -25,7 +25,6 @@ const std::string MainWindow::ADD_INPUT_CURSOR_DATA = "__ADD_INPUT__";
MainWindow::MainWindow() MainWindow::MainWindow()
: ui(new Ui::MainWindow) : ui(new Ui::MainWindow)
, scene(new GraphicsScene(this)) , scene(new GraphicsScene(this))
, algorithmModel(std::make_unique<QStandardItemModel>())
{ {
Q_ASSERT(MainWindow::instance == nullptr); Q_ASSERT(MainWindow::instance == nullptr);
MainWindow::instance = this; MainWindow::instance = this;
...@@ -37,11 +36,6 @@ MainWindow::MainWindow() ...@@ -37,11 +36,6 @@ MainWindow::MainWindow()
   
this->setupMenu(); this->setupMenu();
   
this->algorithmModel = Registry::createAlgorithmModel();
this->ui->algorithmList->setModel(this->algorithmModel.get());
this->ui->algorithmList->expandAll();
this->scene->addItem(new InputGraphicsBox(std::make_unique<InputModelBox>(), {0, 200})); this->scene->addItem(new InputGraphicsBox(std::make_unique<InputModelBox>(), {0, 200}));
this->outputBox = new GraphicsBox(std::make_unique<OutputModelBox>(), {400, 200});; this->outputBox = new GraphicsBox(std::make_unique<OutputModelBox>(), {400, 200});;
this->scene->addItem(outputBox); this->scene->addItem(outputBox);
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
#include <QGraphicsView> #include <QGraphicsView>
#include <QMainWindow> #include <QMainWindow>
#include <QtCore/QStringListModel> #include <QtCore/QStringListModel>
#include <QtGui/QStandardItemModel>
   
#include <Algorithm/Algorithm.hpp> #include <Algorithm/Algorithm.hpp>
#include <Graphics/GraphicsScene.hpp> #include <Graphics/GraphicsScene.hpp>
...@@ -42,7 +41,6 @@ public: ...@@ -42,7 +41,6 @@ public:
private: private:
std::unique_ptr<Ui::MainWindow> ui; std::unique_ptr<Ui::MainWindow> ui;
std::unique_ptr<GraphicsScene> scene; std::unique_ptr<GraphicsScene> scene;
std::unique_ptr<QStandardItemModel> algorithmModel;
GraphicsBox* outputBox = nullptr; GraphicsBox* outputBox = nullptr;
std::string cursorData; std::string cursorData;
   
......
...@@ -35,42 +35,6 @@ ...@@ -35,42 +35,6 @@
<layout class="QVBoxLayout" name="verticalLayout_4"> <layout class="QVBoxLayout" name="verticalLayout_4">
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout_3" stretch="0,0">
<property name="spacing">
<number>0</number>
</property>
<property name="sizeConstraint">
<enum>QLayout::SetFixedSize</enum>
</property>
<item>
<widget class="QPushButton" name="AddInputBtn">
<property name="text">
<string>Add Input</string>
</property>
</widget>
</item>
<item>
<widget class="AlgorithmList" name="algorithmList">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>300</width>
<height>0</height>
</size>
</property>
<attribute name="headerVisible">
<bool>false</bool>
</attribute>
</widget>
</item>
</layout>
</item>
<item> <item>
<widget class="GraphicsView" name="graphicsView"> <widget class="GraphicsView" name="graphicsView">
<property name="sizePolicy"> <property name="sizePolicy">
...@@ -141,11 +105,6 @@ ...@@ -141,11 +105,6 @@
<extends>QGraphicsView</extends> <extends>QGraphicsView</extends>
<header>Graphics/GraphicsView.hpp</header> <header>Graphics/GraphicsView.hpp</header>
</customwidget> </customwidget>
<customwidget>
<class>AlgorithmList</class>
<extends>QTreeView</extends>
<header>Graphics/AlgorithmList.hpp</header>
</customwidget>
</customwidgets> </customwidgets>
<resources/> <resources/>
<connections/> <connections/>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment