Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browser: Abstract creation of custom data items into QgsDataItemProvider
- Loading branch information
Showing
12 changed files
with
267 additions
and
78 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
|
||
class QgsDataItemProvider | ||
{ | ||
%TypeHeaderCode | ||
#include <qgsdataitemprovider.h> | ||
%End | ||
public: | ||
virtual ~QgsDataItemProvider(); | ||
|
||
//! Human-readable name of the provider name | ||
virtual QString name() = 0; | ||
|
||
//! Return combination of flags from QgsDataProvider::DataCapabilities | ||
virtual int capabilities() = 0; | ||
|
||
//! Create a new instance of QgsDataItem (or null) for given path and parent item. | ||
//! Caller takes responsibility of deleting created items. | ||
virtual QgsDataItem* createDataItem( const QString& path, QgsDataItem* parentItem ) = 0 /Factory/; | ||
|
||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
|
||
class QgsDataItemProviderRegistry | ||
{ | ||
%TypeHeaderCode | ||
#include <qgsdataitemproviderregistry.h> | ||
%End | ||
public: | ||
//! Returns the instance pointer, creating the object on the first call | ||
static QgsDataItemProviderRegistry * instance(); | ||
|
||
~QgsDataItemProviderRegistry(); | ||
|
||
//! Get list of available providers | ||
QList<QgsDataItemProvider*> providers() const; | ||
|
||
private: | ||
QgsDataItemProviderRegistry(); | ||
|
||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
/*************************************************************************** | ||
qgsdataitemprovider.cpp | ||
-------------------------------------- | ||
Date : March 2015 | ||
Copyright : (C) 2015 by Martin Dobias | ||
Email : wonder dot sk at gmail dot com | ||
*************************************************************************** | ||
* * | ||
* This program is free software; you can redistribute it and/or modify * | ||
* it under the terms of the GNU General Public License as published by * | ||
* the Free Software Foundation; either version 2 of the License, or * | ||
* (at your option) any later version. * | ||
* * | ||
***************************************************************************/ | ||
|
||
#include "qgsdataitemprovider.h" | ||
|
||
// no implementation currently |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
/*************************************************************************** | ||
qgsdataitemprovider.h | ||
-------------------------------------- | ||
Date : March 2015 | ||
Copyright : (C) 2015 by Martin Dobias | ||
Email : wonder dot sk at gmail dot com | ||
*************************************************************************** | ||
* * | ||
* This program is free software; you can redistribute it and/or modify * | ||
* it under the terms of the GNU General Public License as published by * | ||
* the Free Software Foundation; either version 2 of the License, or * | ||
* (at your option) any later version. * | ||
* * | ||
***************************************************************************/ | ||
|
||
#ifndef QGSDATAITEMPROVIDER_H | ||
#define QGSDATAITEMPROVIDER_H | ||
|
||
class QgsDataItem; | ||
|
||
class QString; | ||
|
||
/** | ||
* This is the interface for those who want to add custom data items to the browser tree. | ||
* | ||
* The method createDataItem() is ever called only if capabilities() return non-zero value. | ||
* There are two occasions when createDataItem() is called: | ||
* 1. to create root items (passed path is empty, parent item is null). | ||
* 2. to create items in directory structure. For this capabilities have to return at least | ||
* of the following: QgsDataProider::Dir or QgsDataProvider::File. Passed path is the file | ||
* or directory being inspected, parent item is a valid QgsDirectoryItem | ||
* | ||
* @note added in 2.10 | ||
*/ | ||
class CORE_EXPORT QgsDataItemProvider | ||
{ | ||
public: | ||
virtual ~QgsDataItemProvider() {} | ||
|
||
//! Human-readable name of the provider name | ||
virtual QString name() = 0; | ||
|
||
//! Return combination of flags from QgsDataProvider::DataCapabilities | ||
virtual int capabilities() = 0; | ||
|
||
//! Create a new instance of QgsDataItem (or null) for given path and parent item. | ||
//! Caller takes responsibility of deleting created items. | ||
virtual QgsDataItem* createDataItem( const QString& path, QgsDataItem* parentItem ) = 0; | ||
|
||
}; | ||
|
||
#endif // QGSDATAITEMPROVIDER_H |
Oops, something went wrong.