add signal to scroll to view object
This commit is contained in:
@@ -114,6 +114,8 @@ public:
|
||||
/// signal on changed Object, the 2nd argument is the highlite mode to use
|
||||
mutable boost::signal<void (const Gui::ViewProviderDocumentObject&,
|
||||
const Gui::TreeItemMode&)> signalExpandObject;
|
||||
/// signal on scrolling to an object
|
||||
mutable boost::signal<void (const Gui::ViewProviderDocumentObject&)> signalScrollToObject;
|
||||
/// signal on undo Document
|
||||
mutable boost::signal<void (const Gui::Document& doc)> signalUndoDocument;
|
||||
/// signal on redo Document
|
||||
|
||||
@@ -96,7 +96,12 @@
|
||||
<UserDocu>toggleTreeItem(DocObject,int=0) - change TreeItem of a document object 0:Toggle,1:Collaps,2:Expand</UserDocu>
|
||||
</Documentation>
|
||||
</Methode>
|
||||
<Attribute Name="ActiveObject" ReadOnly="false">
|
||||
<Methode Name="scrollToTreeItem">
|
||||
<Documentation>
|
||||
<UserDocu>scrollToTreeItem(ViewObject) - scroll the tree view to the item of a view object</UserDocu>
|
||||
</Documentation>
|
||||
</Methode>
|
||||
<Attribute Name="ActiveObject" ReadOnly="false">
|
||||
<Documentation>
|
||||
<UserDocu>The active object of the document</UserDocu>
|
||||
</Documentation>
|
||||
@@ -121,4 +126,4 @@
|
||||
<Parameter Name="Modified" Type="Boolean" />
|
||||
</Attribute>
|
||||
</PythonExport>
|
||||
</GenerateModel>
|
||||
</GenerateModel>
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
#include "Tree.h"
|
||||
#include "ViewProviderDocumentObject.h"
|
||||
#include "ViewProviderPy.h"
|
||||
#include "ViewProviderDocumentObjectPy.h"
|
||||
|
||||
|
||||
using namespace Gui;
|
||||
@@ -308,6 +309,18 @@ PyObject* DocumentPy::toggleTreeItem(PyObject *args)
|
||||
Py_Return;
|
||||
}
|
||||
|
||||
PyObject* DocumentPy::scrollToTreeItem(PyObject *args)
|
||||
{
|
||||
PyObject *view;
|
||||
if (!PyArg_ParseTuple(args,"O!",&(Gui::ViewProviderDocumentObjectPy::Type), &view))
|
||||
return 0;
|
||||
|
||||
Gui::ViewProviderDocumentObject* vp = static_cast<ViewProviderDocumentObjectPy*>
|
||||
(view)->getViewProviderDocumentObjectPtr();
|
||||
getDocumentPtr()->signalScrollToObject(*vp);
|
||||
Py_Return;
|
||||
}
|
||||
|
||||
Py::Object DocumentPy::getActiveObject(void) const
|
||||
{
|
||||
App::DocumentObject *object = getDocumentPtr()->getDocument()->getActiveObject();
|
||||
|
||||
@@ -939,6 +939,7 @@ DocumentItem::DocumentItem(const Gui::Document* doc, QTreeWidgetItem * parent)
|
||||
connectResObject = doc->signalResetEdit.connect(boost::bind(&DocumentItem::slotResetEdit, this, _1));
|
||||
connectHltObject = doc->signalHighlightObject.connect(boost::bind(&DocumentItem::slotHighlightObject, this, _1,_2,_3));
|
||||
connectExpObject = doc->signalExpandObject.connect(boost::bind(&DocumentItem::slotExpandObject, this, _1,_2));
|
||||
connectScrObject = doc->signalScrollToObject.connect(boost::bind(&DocumentItem::slotScrollToObject, this, _1));
|
||||
|
||||
setFlags(Qt::ItemIsEnabled/*|Qt::ItemIsEditable*/);
|
||||
}
|
||||
@@ -954,6 +955,7 @@ DocumentItem::~DocumentItem()
|
||||
connectResObject.disconnect();
|
||||
connectHltObject.disconnect();
|
||||
connectExpObject.disconnect();
|
||||
connectScrObject.disconnect();
|
||||
}
|
||||
|
||||
#define FOREACH_ITEM(_item, _obj) \
|
||||
@@ -1317,6 +1319,14 @@ void DocumentItem::slotExpandObject (const Gui::ViewProviderDocumentObject& obj,
|
||||
END_FOREACH_ITEM
|
||||
}
|
||||
|
||||
void DocumentItem::slotScrollToObject(const Gui::ViewProviderDocumentObject& obj)
|
||||
{
|
||||
FOREACH_ITEM(item,obj)
|
||||
QTreeWidget* tree = item->treeWidget();
|
||||
tree->scrollToItem(item, QAbstractItemView::PositionAtTop);
|
||||
END_FOREACH_ITEM
|
||||
}
|
||||
|
||||
const Gui::Document* DocumentItem::document() const
|
||||
{
|
||||
return this->pDocument;
|
||||
|
||||
@@ -174,6 +174,7 @@ protected:
|
||||
void slotResetEdit (const Gui::ViewProviderDocumentObject&);
|
||||
void slotHighlightObject (const Gui::ViewProviderDocumentObject&,const Gui::HighlightMode&,bool);
|
||||
void slotExpandObject (const Gui::ViewProviderDocumentObject&,const Gui::TreeItemMode&);
|
||||
void slotScrollToObject (const Gui::ViewProviderDocumentObject&);
|
||||
|
||||
bool createNewItem(const Gui::ViewProviderDocumentObject&,
|
||||
QTreeWidgetItem *parent=0, int index=-1,
|
||||
@@ -193,6 +194,7 @@ private:
|
||||
Connection connectResObject;
|
||||
Connection connectHltObject;
|
||||
Connection connectExpObject;
|
||||
Connection connectScrObject;
|
||||
};
|
||||
|
||||
/** The link between the tree and a document object.
|
||||
|
||||
Reference in New Issue
Block a user