summaryrefslogtreecommitdiffstats
path: root/scribus/pageitempointer.cpp
diff options
context:
space:
mode:
authorcraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
committercraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
commit7ed83b6c6666eb8b6b104c211ae7e52907350372 (patch)
tree4430b556abac0ad660a0aacf1887d77f85d8be02 /scribus/pageitempointer.cpp
downloadscribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.gz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.xz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.zip
Branch 1.3.5 tree to 1.4.x tree, goodbye 1.3.x
git-svn-id: svn://scribus.net/branches/Version14x/Scribus@17163 11d20701-8431-0410-a711-e3c959e3b870
Diffstat (limited to 'scribus/pageitempointer.cpp')
-rw-r--r--scribus/pageitempointer.cpp71
1 files changed, 71 insertions, 0 deletions
diff --git a/scribus/pageitempointer.cpp b/scribus/pageitempointer.cpp
new file mode 100644
index 0000000..69e8f90
--- /dev/null
+++ b/scribus/pageitempointer.cpp
@@ -0,0 +1,71 @@
+//
+// C++ Implementation: pageitempointer
+//
+// Description:
+//
+//
+// Author: Pierre Marchand <pierremarc@oep-h.com>, (C) 2008
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+
+#include "pageitempointer.h"
+
+#include "pageitem.h"
+
+void PageItemPointerDB::addToDB(const QString & key, PageItem * value)
+{
+ insert(key,value);
+ connect ( value,SIGNAL( destroyed ( QObject* ) ),this,SLOT( removeFromDB ( QObject* ) ) );
+}
+
+void PageItemPointerDB::removeFromDB ( QObject * obj )
+{
+ if ( obj )
+ {
+ QString k ( obj->objectName() );
+ remove ( k );
+ }
+}
+
+/// PageItemPointer
+PageItemPointerDB PageItemPointer::PIdb;
+PageItemPointer::PageItemPointer ( PageItem * pi ) :QPointer<PageItem> ( pi )
+{
+ if ( !isNull() )
+ {
+ PIdb.addToDB( pi->objectName(), pi);
+
+ }
+}
+
+PageItemPointer::PageItemPointer ( const PageItemPointer & pip ) :QPointer<PageItem> (PIdb[ pip->objectName() ])
+{
+}
+
+PageItemPointer::PageItemPointer(const QString & objname):QPointer<PageItem>(PIdb[objname])
+{
+}
+
+PageItemPointer::~PageItemPointer()
+{
+
+}
+
+QDataStream &operator << ( QDataStream & out , const PageItemPointer& pip )
+{
+ out << pip->objectName();
+ return out;
+}
+
+QDataStream &operator >> ( QDataStream & in , PageItemPointer& pip )
+{
+ QString piName;
+ in >> piName;
+ pip = PageItemPointer(piName);
+ return in;
+}
+
+
+