diff --git a/src/blackgui/components/dbmappingcomponentaware.cpp b/src/blackgui/components/dbmappingcomponentaware.cpp new file mode 100644 index 000000000..817c400d6 --- /dev/null +++ b/src/blackgui/components/dbmappingcomponentaware.cpp @@ -0,0 +1,27 @@ +/* Copyright (C) 2015 + * swift project Community / Contributors + * + * This file is part of swift Project. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, + * including this file, may be copied, modified, propagated, or distributed except according to the terms + * contained in the LICENSE file. + */ + +#include "dbmappingcomponent.h" +#include "dbmappingcomponentaware.h" + +namespace BlackGui +{ + namespace Components + { + CDbMappingComponentAware::CDbMappingComponentAware(QObject *parent) + { + // if we get a mapping component we use it + if (!parent) { return; } + if (!parent->isWidgetType()) { return; } + CDbMappingComponent *m = qobject_cast(parent); + if (!m) { return; } + m_mappingComponent = m; + } + } // ns +} // ns diff --git a/src/blackgui/components/dbmappingcomponentaware.h b/src/blackgui/components/dbmappingcomponentaware.h new file mode 100644 index 000000000..2094522c6 --- /dev/null +++ b/src/blackgui/components/dbmappingcomponentaware.h @@ -0,0 +1,45 @@ +/* Copyright (C) 2015 + * swift project Community / Contributors + * + * This file is part of swift Project. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, + * including this file, may be copied, modified, propagated, or distributed except according to the terms + * contained in the LICENSE file. + */ + +//! \file + +#ifndef BLACKGUI_COMPONENTS_DBMAPPINGCOMPONENTAWARE_H +#define BLACKGUI_COMPONENTS_DBMAPPINGCOMPONENTAWARE_H + +#include "blackgui/blackguiexport.h" + +namespace BlackGui +{ + namespace Components + { + class CDbMappingComponent; + + //! Allows subcomponents to gain access to model component + class BLACKGUI_EXPORT CDbMappingComponentAware + { + public: + //! Set the corresponding component + void setMappingComponent(CDbMappingComponent *component) { m_mappingComponent = component; } + + protected: + //! Constructor + CDbMappingComponentAware(QObject *parent); + + //! Get the mapping component + const CDbMappingComponent *getMappingComponent() const { return m_mappingComponent; } + + //! Get mapping component + CDbMappingComponent *getMappingComponent() { return m_mappingComponent; } + + private : + CDbMappingComponent *m_mappingComponent = nullptr; + }; + } // ns +} // ns +#endif // guard diff --git a/src/blackgui/components/dbmodelcomponent.cpp b/src/blackgui/components/dbmodelcomponent.cpp index 6775915c0..0a8ee6bb0 100644 --- a/src/blackgui/components/dbmodelcomponent.cpp +++ b/src/blackgui/components/dbmodelcomponent.cpp @@ -8,6 +8,7 @@ */ #include "dbmodelcomponent.h" +#include "dbmappingcomponent.h" #include "blackgui/stylesheetutility.h" #include "ui_dbmodelcomponent.h" #include @@ -23,6 +24,7 @@ namespace BlackGui { CDbModelComponent::CDbModelComponent(QWidget *parent) : QFrame(parent), + CDbMappingComponentAware(parent), ui(new Ui::CDbModelComponent) { ui->setupUi(this); diff --git a/src/blackgui/components/dbmodelcomponent.h b/src/blackgui/components/dbmodelcomponent.h index 616e89117..bf5b5b3be 100644 --- a/src/blackgui/components/dbmodelcomponent.h +++ b/src/blackgui/components/dbmodelcomponent.h @@ -15,6 +15,7 @@ #include "blackgui/blackguiexport.h" #include "blackgui/enableforviewbasedindicator.h" #include "blackgui/components/enablefordockwidgetinfoarea.h" +#include "blackgui/components/dbmappingcomponentaware.h" #include "blackmisc/network/webdataservicesprovider.h" #include #include @@ -30,6 +31,7 @@ namespace BlackGui */ class BLACKGUI_EXPORT CDbModelComponent : public QFrame, + public CDbMappingComponentAware, public CEnableForDockWidgetInfoArea, public BlackGui::CEnableForViewBasedIndicator, public BlackMisc::Network::CWebDataServicesAware