Skip to content

Commit

Permalink
Gui::Add mergeoverlay function to ViewProviderExtension
Browse files Browse the repository at this point in the history
  • Loading branch information
abdullahtahiriyo authored and wwmayer committed Jun 22, 2019
1 parent db5ef31 commit 4150488
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 32 deletions.
25 changes: 9 additions & 16 deletions src/Gui/ViewProvider.cpp
Expand Up @@ -271,7 +271,15 @@ QIcon ViewProvider::getIcon(void) const

QIcon ViewProvider::mergeOverlayIcons (const QIcon & orig) const
{
return orig;
auto vector = getExtensionsDerivedFromType<Gui::ViewProviderExtension>();

QIcon overlayedIcon = orig;

for (Gui::ViewProviderExtension* ext : vector) {
overlayedIcon = ext->extensionMergeOverlayIcons(overlayedIcon);
}

return overlayedIcon;
}

void ViewProvider::setTransformation(const Base::Matrix4D &rcMatrix)
Expand Down Expand Up @@ -500,21 +508,6 @@ void addNodes(Graph& graph, std::map<SoNode*, Vertex>& vertexNodeMap, SoNode* no
}
}

QIcon ViewProvider::mergePixmap (const QIcon &base, const QPixmap &px, Gui::BitmapFactoryInst::Position position) const
{
QIcon overlayedIcon;

int w = QApplication::style()->pixelMetric(QStyle::PM_ListViewIconSize);

overlayedIcon.addPixmap(Gui::BitmapFactory().merge(base.pixmap(w, w, QIcon::Normal, QIcon::Off),
px,position), QIcon::Normal, QIcon::Off);

overlayedIcon.addPixmap(Gui::BitmapFactory().merge(base.pixmap(w, w, QIcon::Normal, QIcon::On ),
px,position), QIcon::Normal, QIcon::Off);

return overlayedIcon;
}

bool ViewProvider::checkRecursion(SoNode* node)
{
if (node->getTypeId().isDerivedFrom(SoGroup::getClassTypeId())) {
Expand Down
5 changes: 0 additions & 5 deletions src/Gui/ViewProvider.h
Expand Up @@ -32,7 +32,6 @@
#include <boost/signals2.hpp>

#include <App/TransactionalObject.h>
#include <Gui/BitmapFactory.h>
#include <Base/Vector3D.h>

class SbVec2s;
Expand Down Expand Up @@ -371,10 +370,6 @@ class GuiExport ViewProvider : public App::TransactionalObject
*/
virtual QIcon mergeOverlayIcons (const QIcon & orig) const;

/// Helper method to merge a pixmap into one corner of a QIcon
QIcon mergePixmap (const QIcon &base, const QPixmap &px, Gui::BitmapFactoryInst::Position position) const;


protected:
/// The root Separator of the ViewProvider
SoSeparator *pcRoot;
Expand Down
24 changes: 13 additions & 11 deletions src/Gui/ViewProviderExtension.h
Expand Up @@ -29,10 +29,10 @@
#include "ViewProviderDocumentObject.h"

namespace Gui {

/**
* @brief Extension with special viewprovider calls
*
*
*/
class GuiExport ViewProviderExtension : public App::Extension
{
Expand All @@ -48,13 +48,13 @@ class GuiExport ViewProviderExtension : public App::Extension

Gui::ViewProviderDocumentObject* getExtendedViewProvider();
const Gui::ViewProviderDocumentObject* getExtendedViewProvider() const;
virtual std::vector<App::DocumentObject*> extensionClaimChildren3D(void) const {

virtual std::vector<App::DocumentObject*> extensionClaimChildren3D(void) const {
return std::vector<App::DocumentObject*>(); }

virtual bool extensionOnDelete(const std::vector<std::string> &){ return true;}
virtual std::vector<App::DocumentObject*> extensionClaimChildren(void) const {

virtual std::vector<App::DocumentObject*> extensionClaimChildren(void) const {
return std::vector<App::DocumentObject*>(); }

virtual bool extensionCanDragObjects() const { return false; }
Expand All @@ -69,7 +69,7 @@ class GuiExport ViewProviderExtension : public App::Extension
virtual void extensionHide(void) { }
/// Shows the view provider
virtual void extensionShow(void) { }

virtual SoSeparator* extensionGetFrontRoot(void) const {return nullptr;}
virtual SoGroup* extensionGetChildRoot(void) const {return nullptr;}
virtual SoSeparator* extensionGetBackRoot(void) const {return nullptr;}
Expand All @@ -79,7 +79,9 @@ class GuiExport ViewProviderExtension : public App::Extension

//update data of extended opject
virtual void extensionUpdateData(const App::Property*);


virtual QIcon extensionMergeOverlayIcons(const QIcon & orig) const {return orig;}

private:
//Gui::ViewProviderDocumentObject* m_viewBase = nullptr;
};
Expand All @@ -95,11 +97,11 @@ class ViewProviderExtensionPythonT : public ExtensionT

public:
typedef ExtensionT Inherited;

ViewProviderExtensionPythonT() {
ExtensionT::m_isPythonExtension = true;
ExtensionT::initExtensionType(ViewProviderExtensionPythonT::getExtensionClassTypeId());

EXTENSION_ADD_PROPERTY(ExtensionProxy,(Py::Object()));
}
virtual ~ViewProviderExtensionPythonT() {
Expand Down

0 comments on commit 4150488

Please sign in to comment.