From 0b3fbaa8bda51a0276815e543170638f6e9967db 2017-12-07 17:07:24 From: trabillard Date: 2017-12-07 17:07:24 Subject: [PATCH] Merge pull request #382 from SciQLop-fork develop Develop --- diff --git a/gui/include/Actions/ActionsGuiController.h b/gui/include/Actions/ActionsGuiController.h new file mode 100644 index 0000000..7dab26c --- /dev/null +++ b/gui/include/Actions/ActionsGuiController.h @@ -0,0 +1,27 @@ +#ifndef SCIQLOP_ACTIONSGUICONTROLLER_H +#define SCIQLOP_ACTIONSGUICONTROLLER_H + +#include +#include + +#include + +class ActionsGuiController { +public: + ActionsGuiController(); + + std::shared_ptr + addSectionZoneAction(const QString &name, SelectionZoneAction::ExecuteFunction function); + + std::shared_ptr + addSectionZoneAction(const QStringList &subMenuList, const QString &name, + SelectionZoneAction::ExecuteFunction function); + + QVector > selectionZoneActions() const; + +private: + class ActionsGuiControllerPrivate; + spimpl::unique_impl_ptr impl; +}; + +#endif // SCIQLOP_ACTIONSGUICONTROLLER_H diff --git a/gui/include/Actions/SelectionZoneAction.h b/gui/include/Actions/SelectionZoneAction.h new file mode 100644 index 0000000..93f6b4b --- /dev/null +++ b/gui/include/Actions/SelectionZoneAction.h @@ -0,0 +1,75 @@ +#ifndef SCIQLOP_SELECTIONZONEACTION_H +#define SCIQLOP_SELECTIONZONEACTION_H + +#include + +#include +#include + +#include + +class VisualizationSelectionZoneItem; + +Q_DECLARE_LOGGING_CATEGORY(LOG_SelectionZoneAction) + +/** + * @brief The SelectionZoneAction class represents an action on a selection zone in the + * visualization. + * + * The action is a function that will be executed when the slot execute() is called. + */ +class SelectionZoneAction : public QObject { + + Q_OBJECT + +public: + /// Signature of the function associated to the action + using ExecuteFunction + = std::function &item)>; + + using EnableFunction + = std::function &item)>; + + /** + * @param name the name of the action, displayed to the user + * @param fun the function that will be called when the action is executed + * @sa execute() + */ + explicit SelectionZoneAction(const QString &name, ExecuteFunction fun); + + /** + * @param name the name of the action, displayed to the user + * @param subMenusList the list of sub menus where the action should be inserted + * @param fun the function that will be called when the action is executed + * @sa execute() + */ + explicit SelectionZoneAction(const QStringList &subMenuList, const QString &name, + ExecuteFunction fun); + + /// Sets the function which determine if the action should be enabled or disabled + void setEnableFunction(EnableFunction fun); + + /// Sets the shortcut displayed by the action. + /// Note: The shortcut is only displayed and not active because it is not permanently stored + void setDisplayedShortcut(const QKeySequence &shortcut); + QKeySequence displayedShortcut() const; + + /// The name of the action + QString name() const noexcept; + + /// The path in the sub menus, if any + QStringList subMenuList() const noexcept; + +public slots: + /// Executes the action + void execute(const QVector &item); + + /// Returns true if the action is enabled + bool isEnabled(const QVector &item); + +private: + class SelectionZoneActionPrivate; + spimpl::unique_impl_ptr impl; +}; + +#endif // SCIQLOP_SELECTIONZONEACTION_H diff --git a/gui/include/DragAndDrop/DragDropHelper.h b/gui/include/DragAndDrop/DragDropGuiController.h similarity index 85% rename from gui/include/DragAndDrop/DragDropHelper.h rename to gui/include/DragAndDrop/DragDropGuiController.h index 7274376..9d223b4 100644 --- a/gui/include/DragAndDrop/DragDropHelper.h +++ b/gui/include/DragAndDrop/DragDropGuiController.h @@ -1,5 +1,5 @@ -#ifndef SCIQLOP_DRAGDROPHELPER_H -#define SCIQLOP_DRAGDROPHELPER_H +#ifndef SCIQLOP_DRAGDROPGUICONTROLLER_H +#define SCIQLOP_DRAGDROPGUICONTROLLER_H #include #include @@ -12,7 +12,7 @@ class VisualizationDragWidget; class VisualizationDragDropContainer; class QMimeData; -Q_DECLARE_LOGGING_CATEGORY(LOG_DragDropHelper) +Q_DECLARE_LOGGING_CATEGORY(LOG_DragDropGuiController) /** * @brief Helper class for drag&drop operations. @@ -21,15 +21,15 @@ Q_DECLARE_LOGGING_CATEGORY(LOG_DragDropHelper) * can interect with the gui. * @see SqpApplication */ -class DragDropHelper { +class DragDropGuiController { public: static const QString MIME_TYPE_GRAPH; static const QString MIME_TYPE_ZONE; enum class PlaceHolderType { Default, Graph, Zone }; - DragDropHelper(); - virtual ~DragDropHelper(); + DragDropGuiController(); + virtual ~DragDropGuiController(); /// Resets some internal variables. Must be called before any new drag&drop operation. void resetDragAndDrop(); @@ -68,8 +68,8 @@ public: void doCloseWidgets(); private: - class DragDropHelperPrivate; - spimpl::unique_impl_ptr impl; + class DragDropGuiControllerPrivate; + spimpl::unique_impl_ptr impl; }; -#endif // SCIQLOP_DRAGDROPHELPER_H +#endif // SCIQLOP_DRAGDROPGUICONTROLLER_H diff --git a/gui/include/SqpApplication.h b/gui/include/SqpApplication.h index c9d37a2..91f5f13 100644 --- a/gui/include/SqpApplication.h +++ b/gui/include/SqpApplication.h @@ -20,7 +20,8 @@ class NetworkController; class TimeController; class VariableController; class VisualizationController; -class DragDropHelper; +class DragDropGuiController; +class ActionsGuiController; /** * @brief The SqpApplication class aims to make the link between SciQlop @@ -47,7 +48,8 @@ public: /// Accessors for the differents sciqlop helpers, these helpers classes are like controllers but /// doesn't live in a thread and access gui - DragDropHelper &dragDropHelper() noexcept; + DragDropGuiController &dragDropGuiController() noexcept; + ActionsGuiController &actionsGuiController() noexcept; enum class PlotsInteractionMode { None, ZoomBox, DragAndDrop, SelectionZones }; diff --git a/gui/include/Visualization/VisualizationActionManager.h b/gui/include/Visualization/VisualizationActionManager.h new file mode 100644 index 0000000..cd2255f --- /dev/null +++ b/gui/include/Visualization/VisualizationActionManager.h @@ -0,0 +1,12 @@ +#ifndef SCIQLOP_VISUALIZATIONACTIONMANAGER_H +#define SCIQLOP_VISUALIZATIONACTIONMANAGER_H + + +class VisualizationActionManager { +public: + VisualizationActionManager(); + + void installSelectionZoneActions(); +}; + +#endif // SCIQLOP_VISUALIZATIONACTIONMANAGER_H diff --git a/gui/include/Visualization/VisualizationDragDropContainer.h b/gui/include/Visualization/VisualizationDragDropContainer.h index 25150ae..b3e6436 100644 --- a/gui/include/Visualization/VisualizationDragDropContainer.h +++ b/gui/include/Visualization/VisualizationDragDropContainer.h @@ -9,7 +9,7 @@ #include -#include +#include Q_DECLARE_LOGGING_CATEGORY(LOG_VisualizationDragDropContainer) @@ -41,7 +41,7 @@ public: void setAcceptDragWidgetFunction(AcceptDragWidgetFunction fun); - void setPlaceHolderType(DragDropHelper::PlaceHolderType type, + void setPlaceHolderType(DragDropGuiController::PlaceHolderType type, const QString &placeHolderText = QString()); protected: diff --git a/gui/include/Visualization/VisualizationGraphWidget.h b/gui/include/Visualization/VisualizationGraphWidget.h index 56ba511..8f97ea9 100644 --- a/gui/include/Visualization/VisualizationGraphWidget.h +++ b/gui/include/Visualization/VisualizationGraphWidget.h @@ -19,6 +19,7 @@ class SqpRange; class Variable; class VisualizationWidget; class VisualizationZoneWidget; +class VisualizationSelectionZoneItem; namespace Ui { class VisualizationGraphWidget; @@ -56,11 +57,13 @@ public: SqpRange graphRange() const noexcept; void setGraphRange(const SqpRange &range); + // Zones /// Returns the ranges of all the selection zones on the graph QVector selectionZoneRanges() const; - /// Adds new selection zones in the graph void addSelectionZones(const QVector &ranges); + /// Removes the specified selection zone + void removeSelectionZone(VisualizationSelectionZoneItem *selectionZone); /// Undo the last zoom done with a zoom box void undoZoom(); diff --git a/gui/include/Visualization/VisualizationMultiZoneSelectionDialog.h b/gui/include/Visualization/VisualizationMultiZoneSelectionDialog.h new file mode 100644 index 0000000..f3ebcfb --- /dev/null +++ b/gui/include/Visualization/VisualizationMultiZoneSelectionDialog.h @@ -0,0 +1,30 @@ +#ifndef SCIQLOP_VISUALIZATIONMULTIZONESELECTIONDIALOG_H +#define SCIQLOP_VISUALIZATIONMULTIZONESELECTIONDIALOG_H + +#include +#include + +namespace Ui { +class VisualizationMultiZoneSelectionDialog; +} + +class VisualizationSelectionZoneItem; + +class VisualizationMultiZoneSelectionDialog : public QDialog { + Q_OBJECT + +public: + explicit VisualizationMultiZoneSelectionDialog(QWidget *parent = 0); + ~VisualizationMultiZoneSelectionDialog(); + + void setZones(const QVector &zones); + QMap selectedZones() const; + +private: + Ui::VisualizationMultiZoneSelectionDialog *ui; + + class VisualizationMultiZoneSelectionDialogPrivate; + spimpl::unique_impl_ptr impl; +}; + +#endif // SCIQLOP_VISUALIZATIONMULTIZONESELECTIONDIALOG_H diff --git a/gui/include/Visualization/VisualizationSelectionZoneItem.h b/gui/include/Visualization/VisualizationSelectionZoneItem.h index 2bc3c93..d7b6e58 100644 --- a/gui/include/Visualization/VisualizationSelectionZoneItem.h +++ b/gui/include/Visualization/VisualizationSelectionZoneItem.h @@ -5,12 +5,16 @@ #include #include +class VisualizationGraphWidget; + class VisualizationSelectionZoneItem : public QCPItemRect { public: VisualizationSelectionZoneItem(QCustomPlot *plot); virtual ~VisualizationSelectionZoneItem(); + VisualizationGraphWidget *parentGraphWidget() const noexcept; + void setName(const QString &name); QString name() const; @@ -24,11 +28,29 @@ public: void setEditionEnabled(bool value); bool isEditionEnabled() const; + /// Moves the item at the top of its QCPLayer. It will then receive the mouse events if multiple + /// items are stacked on top of each others. + void moveToTop(); + Qt::CursorShape curshorShapeForPosition(const QPoint &position) const; void setHovered(bool value); + /// Sets the zones which should be moved or reisized together with this zone void setAssociatedEditedZones(const QVector &associatedZones); + /// Align the specified zones with this one, vertically with the left border + bool alignZonesVerticallyOnLeft(const QVector &zonesToAlign, + bool allowResize); + /// Align the specified zones with this one, vertically with the right border + bool alignZonesVerticallyOnRight(const QVector &zonesToAlign, + bool allowResize); + /// Align the specified zones with this one, temporally with the left border + bool alignZonesTemporallyOnLeft(const QVector &zonesToAlign, + bool allowResize); + /// Align the specified zones with this one, temporally with the right border + bool alignZonesTemporallyOnRight(const QVector &zonesToAlign, + bool allowResize); + protected: void mousePressEvent(QMouseEvent *event, const QVariant &details) override; void mouseMoveEvent(QMouseEvent *event, const QPointF &startPos) override; @@ -38,7 +60,6 @@ protected: void resizeRight(double pixelDiff); void move(double pixelDiff); - private: class VisualizationSelectionZoneItemPrivate; spimpl::unique_impl_ptr impl; diff --git a/gui/meson.build b/gui/meson.build index d923004..6e63bb2 100644 --- a/gui/meson.build +++ b/gui/meson.build @@ -17,7 +17,9 @@ gui_moc_headers = [ 'include/Visualization/VisualizationZoneWidget.h', 'include/Visualization/VisualizationDragDropContainer.h', 'include/Visualization/VisualizationDragWidget.h', - 'include/Visualization/ColorScaleEditor.h' + 'include/Visualization/ColorScaleEditor.h', + 'include/Actions/SelectionZoneAction.h', + 'include/Visualization/VisualizationMultiZoneSelectionDialog.h' ] gui_ui_files = [ @@ -33,7 +35,8 @@ gui_ui_files = [ 'ui/Visualization/VisualizationTabWidget.ui', 'ui/Visualization/VisualizationWidget.ui', 'ui/Visualization/VisualizationZoneWidget.ui', - 'ui/Visualization/ColorScaleEditor.ui' + 'ui/Visualization/ColorScaleEditor.ui', + 'ui/Visualization/VisualizationMultiZoneSelectionDialog.ui' ] gui_qresources = ['resources/sqpguiresources.qrc'] @@ -44,7 +47,7 @@ gui_moc_files = qt5.preprocess(moc_headers : gui_moc_headers, gui_sources = [ 'src/SqpApplication.cpp', - 'src/DragAndDrop/DragDropHelper.cpp', + 'src/DragAndDrop/DragDropGuiController.cpp', 'src/DragAndDrop/DragDropScroller.cpp', 'src/DragAndDrop/DragDropTabSwitcher.cpp', 'src/Common/ColorUtils.cpp', @@ -84,7 +87,11 @@ gui_sources = [ 'src/Visualization/SqpColorScale.cpp', 'src/Visualization/QCPColorMapIterator.cpp', 'src/Visualization/VisualizationSelectionZoneItem.cpp', - 'src/Visualization/VisualizationSelectionZoneManager.cpp' + 'src/Visualization/VisualizationSelectionZoneManager.cpp', + 'src/Actions/SelectionZoneAction.cpp', + 'src/Actions/ActionsGuiController.cpp', + 'src/Visualization/VisualizationActionManager.cpp', + 'src/Visualization/VisualizationMultiZoneSelectionDialog.cpp' ] gui_inc = include_directories(['include']) diff --git a/gui/src/Actions/ActionsGuiController.cpp b/gui/src/Actions/ActionsGuiController.cpp new file mode 100644 index 0000000..b69e6c3 --- /dev/null +++ b/gui/src/Actions/ActionsGuiController.cpp @@ -0,0 +1,36 @@ +#include "Actions/ActionsGuiController.h" + +struct ActionsGuiController::ActionsGuiControllerPrivate { + + QVector > m_SelectionZoneActions; +}; + +ActionsGuiController::ActionsGuiController() + : impl{spimpl::make_unique_impl()} +{ +} + +std::shared_ptr +ActionsGuiController::addSectionZoneAction(const QString &name, + SelectionZoneAction::ExecuteFunction function) +{ + auto action = std::make_shared(name, function); + impl->m_SelectionZoneActions.push_back(action); + + return action; +} + +std::shared_ptr +ActionsGuiController::addSectionZoneAction(const QStringList &subMenuList, const QString &name, + SelectionZoneAction::ExecuteFunction function) +{ + auto action = std::make_shared(subMenuList, name, function); + impl->m_SelectionZoneActions.push_back(action); + + return action; +} + +QVector > ActionsGuiController::selectionZoneActions() const +{ + return impl->m_SelectionZoneActions; +} diff --git a/gui/src/Actions/SelectionZoneAction.cpp b/gui/src/Actions/SelectionZoneAction.cpp new file mode 100644 index 0000000..0fcae06 --- /dev/null +++ b/gui/src/Actions/SelectionZoneAction.cpp @@ -0,0 +1,66 @@ +#include +#include + +Q_LOGGING_CATEGORY(LOG_SelectionZoneAction, "SelectionZoneAction") + +struct SelectionZoneAction::SelectionZoneActionPrivate { + explicit SelectionZoneActionPrivate(const QString &name, const QStringList &subMenuList, + SelectionZoneAction::ExecuteFunction fun) + : m_Name{name}, m_SubMenuList{subMenuList}, m_Fun{std::move(fun)} + { + } + + QString m_Name; + QStringList m_SubMenuList; + QKeySequence m_DisplayedShortcut; + SelectionZoneAction::ExecuteFunction m_Fun; + SelectionZoneAction::EnableFunction m_EnableFun = [](auto zones) { return true; }; +}; + +SelectionZoneAction::SelectionZoneAction(const QString &name, ExecuteFunction fun) + : impl{spimpl::make_unique_impl(name, QStringList{}, + std::move(fun))} +{ +} + +SelectionZoneAction::SelectionZoneAction(const QStringList &subMenuList, const QString &name, + SelectionZoneAction::ExecuteFunction fun) + : impl{spimpl::make_unique_impl(name, subMenuList, + std::move(fun))} +{ +} + +void SelectionZoneAction::setEnableFunction(EnableFunction fun) +{ + impl->m_EnableFun = std::move(fun); +} + +void SelectionZoneAction::setDisplayedShortcut(const QKeySequence &shortcut) +{ + impl->m_DisplayedShortcut = shortcut; +} + +QKeySequence SelectionZoneAction::displayedShortcut() const +{ + return impl->m_DisplayedShortcut; +} + +QString SelectionZoneAction::name() const noexcept +{ + return impl->m_Name; +} + +QStringList SelectionZoneAction::subMenuList() const noexcept +{ + return impl->m_SubMenuList; +} + +void SelectionZoneAction::execute(const QVector &item) +{ + impl->m_Fun(item); +} + +bool SelectionZoneAction::isEnabled(const QVector &item) +{ + return impl->m_EnableFun(item); +} diff --git a/gui/src/DataSource/DataSourceTreeWidget.cpp b/gui/src/DataSource/DataSourceTreeWidget.cpp index d8bc863..c95ebcd 100644 --- a/gui/src/DataSource/DataSourceTreeWidget.cpp +++ b/gui/src/DataSource/DataSourceTreeWidget.cpp @@ -4,7 +4,7 @@ #include "DataSource/DataSourceItem.h" #include "DataSource/DataSourceTreeWidgetItem.h" -#include "DragAndDrop/DragDropHelper.h" +#include "DragAndDrop/DragDropGuiController.h" #include "SqpApplication.h" #include @@ -42,6 +42,6 @@ QMimeData *DataSourceTreeWidget::mimeData(const QList items) void DataSourceTreeWidget::startDrag(Qt::DropActions supportedActions) { // Resets the drag&drop operations before it's starting - sqpApp->dragDropHelper().resetDragAndDrop(); + sqpApp->dragDropGuiController().resetDragAndDrop(); QTreeWidget::startDrag(supportedActions); } diff --git a/gui/src/DragAndDrop/DragDropHelper.cpp b/gui/src/DragAndDrop/DragDropGuiController.cpp similarity index 77% rename from gui/src/DragAndDrop/DragDropHelper.cpp rename to gui/src/DragAndDrop/DragDropGuiController.cpp index 88a6756..1546c22 100644 --- a/gui/src/DragAndDrop/DragDropHelper.cpp +++ b/gui/src/DragAndDrop/DragDropGuiController.cpp @@ -1,4 +1,4 @@ -#include "DragAndDrop/DragDropHelper.h" +#include "DragAndDrop/DragDropGuiController.h" #include "DragAndDrop/DragDropScroller.h" #include "DragAndDrop/DragDropTabSwitcher.h" #include "SqpApplication.h" @@ -19,10 +19,10 @@ #include -Q_LOGGING_CATEGORY(LOG_DragDropHelper, "DragDropHelper") +Q_LOGGING_CATEGORY(LOG_DragDropGuiController, "DragDropGuiController") -struct DragDropHelper::DragDropHelperPrivate { +struct DragDropGuiController::DragDropGuiControllerPrivate { VisualizationDragWidget *m_CurrentDragWidget = nullptr; std::unique_ptr m_PlaceHolder = nullptr; @@ -40,7 +40,7 @@ struct DragDropHelper::DragDropHelperPrivate { QList m_WidgetToClose; - explicit DragDropHelperPrivate() + explicit DragDropGuiControllerPrivate() : m_PlaceHolder{std::make_unique()}, m_DragDropScroller{std::make_unique()}, m_DragDropTabSwitcher{std::make_unique()} @@ -64,7 +64,8 @@ struct DragDropHelper::DragDropHelperPrivate { m_ImageTempUrl = QDir::temp().absoluteFilePath("Sciqlop_graph.png"); } - void preparePlaceHolder(DragDropHelper::PlaceHolderType type, const QString &topLabelText) const + void preparePlaceHolder(DragDropGuiController::PlaceHolderType type, + const QString &topLabelText) const { if (m_CurrentDragWidget) { m_PlaceHolder->setMinimumSize(m_CurrentDragWidget->size()); @@ -79,12 +80,12 @@ struct DragDropHelper::DragDropHelperPrivate { } switch (type) { - case DragDropHelper::PlaceHolderType::Graph: + case DragDropGuiController::PlaceHolderType::Graph: m_PlaceBackground->setStyleSheet( "background-color: #BBD5EE; border: 1px solid #2A7FD4"); break; - case DragDropHelper::PlaceHolderType::Zone: - case DragDropHelper::PlaceHolderType::Default: + case DragDropGuiController::PlaceHolderType::Zone: + case DragDropGuiController::PlaceHolderType::Default: m_PlaceBackground->setStyleSheet( "background-color: #BBD5EE; border: 2px solid #2A7FD4"); m_PlaceHolderLabel->setStyleSheet("color: #2A7FD4"); @@ -97,22 +98,23 @@ struct DragDropHelper::DragDropHelperPrivate { }; -DragDropHelper::DragDropHelper() : impl{spimpl::make_unique_impl()} +DragDropGuiController::DragDropGuiController() + : impl{spimpl::make_unique_impl()} { } -DragDropHelper::~DragDropHelper() +DragDropGuiController::~DragDropGuiController() { QFile::remove(impl->m_ImageTempUrl); } -void DragDropHelper::resetDragAndDrop() +void DragDropGuiController::resetDragAndDrop() { setCurrentDragWidget(nullptr); impl->m_HighlightedDragWidget = nullptr; } -void DragDropHelper::setCurrentDragWidget(VisualizationDragWidget *dragWidget) +void DragDropGuiController::setCurrentDragWidget(VisualizationDragWidget *dragWidget) { if (impl->m_CurrentDragWidget) { @@ -129,18 +131,18 @@ void DragDropHelper::setCurrentDragWidget(VisualizationDragWidget *dragWidget) impl->m_CurrentDragWidget = dragWidget; } -VisualizationDragWidget *DragDropHelper::getCurrentDragWidget() const +VisualizationDragWidget *DragDropGuiController::getCurrentDragWidget() const { return impl->m_CurrentDragWidget; } -QWidget &DragDropHelper::placeHolder() const +QWidget &DragDropGuiController::placeHolder() const { return *impl->m_PlaceHolder; } -void DragDropHelper::insertPlaceHolder(QVBoxLayout *layout, int index, PlaceHolderType type, - const QString &topLabelText) +void DragDropGuiController::insertPlaceHolder(QVBoxLayout *layout, int index, PlaceHolderType type, + const QString &topLabelText) { removePlaceHolder(); impl->preparePlaceHolder(type, topLabelText); @@ -148,7 +150,7 @@ void DragDropHelper::insertPlaceHolder(QVBoxLayout *layout, int index, PlaceHold impl->m_PlaceHolder->show(); } -void DragDropHelper::removePlaceHolder() +void DragDropGuiController::removePlaceHolder() { auto parentWidget = impl->m_PlaceHolder->parentWidget(); if (parentWidget) { @@ -158,38 +160,38 @@ void DragDropHelper::removePlaceHolder() } } -bool DragDropHelper::isPlaceHolderSet() const +bool DragDropGuiController::isPlaceHolderSet() const { return impl->m_PlaceHolder->parentWidget(); } -void DragDropHelper::addDragDropScrollArea(QScrollArea *scrollArea) +void DragDropGuiController::addDragDropScrollArea(QScrollArea *scrollArea) { impl->m_DragDropScroller->addScrollArea(scrollArea); } -void DragDropHelper::removeDragDropScrollArea(QScrollArea *scrollArea) +void DragDropGuiController::removeDragDropScrollArea(QScrollArea *scrollArea) { impl->m_DragDropScroller->removeScrollArea(scrollArea); } -void DragDropHelper::addDragDropTabBar(QTabBar *tabBar) +void DragDropGuiController::addDragDropTabBar(QTabBar *tabBar) { impl->m_DragDropTabSwitcher->addTabBar(tabBar); } -void DragDropHelper::removeDragDropTabBar(QTabBar *tabBar) +void DragDropGuiController::removeDragDropTabBar(QTabBar *tabBar) { impl->m_DragDropTabSwitcher->removeTabBar(tabBar); } -QUrl DragDropHelper::imageTemporaryUrl(const QImage &image) const +QUrl DragDropGuiController::imageTemporaryUrl(const QImage &image) const { image.save(impl->m_ImageTempUrl); return QUrl::fromLocalFile(impl->m_ImageTempUrl); } -void DragDropHelper::setHightlightedDragWidget(VisualizationDragWidget *dragWidget) +void DragDropGuiController::setHightlightedDragWidget(VisualizationDragWidget *dragWidget) { if (impl->m_HighlightedDragWidget) { impl->m_HighlightedDragWidget->highlightForMerge(false); @@ -208,18 +210,18 @@ void DragDropHelper::setHightlightedDragWidget(VisualizationDragWidget *dragWidg impl->m_HighlightedDragWidget = dragWidget; } -VisualizationDragWidget *DragDropHelper::getHightlightedDragWidget() const +VisualizationDragWidget *DragDropGuiController::getHightlightedDragWidget() const { return impl->m_HighlightedDragWidget; } -void DragDropHelper::delayedCloseWidget(QWidget *widget) +void DragDropGuiController::delayedCloseWidget(QWidget *widget) { widget->hide(); impl->m_WidgetToClose << widget; } -void DragDropHelper::doCloseWidgets() +void DragDropGuiController::doCloseWidgets() { for (auto widget : impl->m_WidgetToClose) { widget->close(); @@ -228,12 +230,12 @@ void DragDropHelper::doCloseWidgets() impl->m_WidgetToClose.clear(); } -bool DragDropHelper::checkMimeDataForVisualization(const QMimeData *mimeData, - VisualizationDragDropContainer *dropContainer) +bool DragDropGuiController::checkMimeDataForVisualization( + const QMimeData *mimeData, VisualizationDragDropContainer *dropContainer) { if (!mimeData || !dropContainer) { - qCWarning(LOG_DragDropHelper()) << QObject::tr( - "DragDropHelper::checkMimeDataForVisualization, invalid input parameters."); + qCWarning(LOG_DragDropGuiController()) << QObject::tr( + "DragDropGuiController::checkMimeDataForVisualization, invalid input parameters."); Q_ASSERT(false); return false; } @@ -270,8 +272,8 @@ bool DragDropHelper::checkMimeDataForVisualization(const QMimeData *mimeData, } } else { - qCWarning(LOG_DragDropHelper()) << QObject::tr( - "DragDropHelper::checkMimeDataForVisualization, the parent " + qCWarning(LOG_DragDropGuiController()) << QObject::tr( + "DragDropGuiController::checkMimeDataForVisualization, the parent " "VisualizationWidget cannot be found. Cannot check if the variable is " "already used or not."); } diff --git a/gui/src/SqpApplication.cpp b/gui/src/SqpApplication.cpp index 4e676ed..c2c5337 100644 --- a/gui/src/SqpApplication.cpp +++ b/gui/src/SqpApplication.cpp @@ -1,9 +1,10 @@ #include "SqpApplication.h" +#include #include #include #include -#include +#include #include #include #include