Gui::Add mergeoverlay function to ViewProviderExtension
This commit is contained in:
@@ -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)
|
||||
@@ -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())) {
|
||||
|
||||
@@ -32,7 +32,6 @@
|
||||
#include <boost/signals2.hpp>
|
||||
|
||||
#include <App/TransactionalObject.h>
|
||||
#include <Gui/BitmapFactory.h>
|
||||
#include <Base/Vector3D.h>
|
||||
|
||||
class SbVec2s;
|
||||
@@ -371,10 +370,6 @@ protected:
|
||||
*/
|
||||
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;
|
||||
|
||||
@@ -29,10 +29,10 @@
|
||||
#include "ViewProviderDocumentObject.h"
|
||||
|
||||
namespace Gui {
|
||||
|
||||
|
||||
/**
|
||||
* @brief Extension with special viewprovider calls
|
||||
*
|
||||
*
|
||||
*/
|
||||
class GuiExport ViewProviderExtension : public App::Extension
|
||||
{
|
||||
@@ -48,13 +48,13 @@ public:
|
||||
|
||||
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; }
|
||||
@@ -69,7 +69,7 @@ public:
|
||||
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;}
|
||||
@@ -79,7 +79,9 @@ public:
|
||||
|
||||
//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;
|
||||
};
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user