refs #535, allow acces to mapping component is sub components

* aware classe
* using aware class in mapping component
This commit is contained in:
Klaus Basan
2015-12-17 20:12:08 +01:00
parent 24788b03c6
commit c067c871c9
4 changed files with 76 additions and 0 deletions

View File

@@ -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<CDbMappingComponent *>(parent);
if (!m) { return; }
m_mappingComponent = m;
}
} // ns
} // ns

View File

@@ -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

View File

@@ -8,6 +8,7 @@
*/
#include "dbmodelcomponent.h"
#include "dbmappingcomponent.h"
#include "blackgui/stylesheetutility.h"
#include "ui_dbmodelcomponent.h"
#include <functional>
@@ -23,6 +24,7 @@ namespace BlackGui
{
CDbModelComponent::CDbModelComponent(QWidget *parent) :
QFrame(parent),
CDbMappingComponentAware(parent),
ui(new Ui::CDbModelComponent)
{
ui->setupUi(this);

View File

@@ -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 <QFrame>
#include <QScopedPointer>
@@ -30,6 +31,7 @@ namespace BlackGui
*/
class BLACKGUI_EXPORT CDbModelComponent :
public QFrame,
public CDbMappingComponentAware,
public CEnableForDockWidgetInfoArea,
public BlackGui::CEnableForViewBasedIndicator,
public BlackMisc::Network::CWebDataServicesAware