[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: KDE4todo #50
From:       "Will Entriken" <kde.org () 2006 ! phor ! net>
Date:       2006-05-02 23:24:28
Message-ID: c0be00e90605021624k3fca01cam13369c8235623a76 () mail ! gmail ! com
[Download RAW message or body]

> > Were all of these pointers and hashes and private magic classes all
> > used just to preserve binary compatibility while stuffing in more
> > member variables? If so, you think they would have a standard way of
> > doing that?
> Well the dptr() magic yes. I don't know why the constructors of RMB were this way. \
> (Didn't write those.)

> And as we don't want to eventually return to this magic, every (non-trivial) class \
> should have a d-pointer. So you should add a member (or rather not remove) pointing \
> to a private class. (Document that it is currently unused.)

How does this look:

--- kbookmarkmanager.h  (revision 536761)
+++ kbookmarkmanager.h  (working copy)
@@ -278,6 +278,13 @@

     QString m_editorCaption;
     bool m_browserEditor;
+
+    /**
+     * If you want to extend KBookmarkManager without breaking binary
compatibility,
+     * put additional members into this class. When you can break
compatibility, move
+     * members into KBookmarkManager and remove the implementation of
this private class.
+     */
+    class KBookmarkManagerPrivate* extraMembers() const;
 };

 /**

This could work similarly with the other classes.

-Will
 
> > Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic