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

List:       kde-core-devel
Subject:    Re: [PATCH] KEditToolbar/KEditToolbarWidget extension
From:       Andras Mantia <amantia () freemail ! hu>
Date:       2003-03-04 17:52:29
[Download RAW message or body]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 2003. March 04., Tuesday 19:38, Andras Mantia wrote:
> It's source incompatible... New patch will come soon.
 Here it is. It's not so nice, but without ambiguously overloaded ctors.

Andras
- -- 
Quanta Plus developer - http://quanta.sourceforge.net
K Desktop Environment - http://www.kde.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE+ZOfdTQdfac6L/08RArncAKDDKr4tqwt97ps/mXi+n7EJOf5CVQCgi8WI
1NQOrn1zWZpPvax8WzlKlSs=
=QmuC
-----END PGP SIGNATURE-----

["kedittoolbar.cpp.diff" (text/x-diff)]

--- kedittoolbar.cpp.orig	Sun Jan  5 17:57:57 2003
+++ kedittoolbar.cpp	Tue Mar  4 19:50:16 2003
@@ -198,6 +198,15 @@
     init();
 }
 
+KEditToolbar::KEditToolbar(const QString& defaultToolbar, KActionCollection *collection,
+                           const QString& file, bool global,
+                           QWidget* parent, const char* name)
+  : KDialogBase(Swallow, i18n("Configure Toolbars"), Ok|Apply|Cancel, Ok, parent, name),
+    m_widget(new KEditToolbarWidget(defaultToolbar, collection, file, global, this))
+{
+    init();
+}
+
 KEditToolbar::KEditToolbar(KXMLGUIFactory* factory, QWidget* parent, const char* name)
     : KDialogBase(Swallow, i18n("Configure Toolbars"), Ok|Apply|Cancel, Ok, parent, name),
       m_widget(new KEditToolbarWidget(factory, this))
@@ -205,6 +214,14 @@
     init();
 }
 
+KEditToolbar::KEditToolbar(const QString& defaultToolbar,KXMLGUIFactory* factory,
+                           QWidget* parent, const char* name)
+    : KDialogBase(Swallow, i18n("Configure Toolbars"), Ok|Apply|Cancel, Ok, parent, name),
+      m_widget(new KEditToolbarWidget(defaultToolbar, factory, this))
+{
+    init();
+}
+
 void KEditToolbar::init()
 {
     d = new KEditToolbarPrivate();
@@ -261,6 +278,60 @@
   : QWidget(parent),
     d(new KEditToolbarWidgetPrivate(instance(), collection))
 {
+  initNonKPart(collection, file, global);
+  // now load in our toolbar combo box
+  loadToolbarCombo();
+  adjustSize();
+  setMinimumSize(sizeHint());
+}
+
+KEditToolbarWidget::KEditToolbarWidget(const QString& defaultToolbar,
+                                       KActionCollection *collection,
+                                       const QString& file, bool global,
+                                       QWidget *parent)
+  : QWidget(parent),
+    d(new KEditToolbarWidgetPrivate(instance(), collection))
+{
+  initNonKPart(collection, file, global);
+  // now load in our toolbar combo box
+  loadToolbarCombo(defaultToolbar);
+  adjustSize();
+  setMinimumSize(sizeHint());
+}
+
+KEditToolbarWidget::KEditToolbarWidget( KXMLGUIFactory* factory,
+                                        QWidget *parent)
+  : QWidget(parent),
+    d(new KEditToolbarWidgetPrivate(instance(), KXMLGUIClient::actionCollection() /*create new one*/))
+{
+  initKPart(factory);
+  // now load in our toolbar combo box
+  loadToolbarCombo();
+  adjustSize();
+  setMinimumSize(sizeHint());
+}
+
+KEditToolbarWidget::KEditToolbarWidget( const QString& defaultToolbar,
+                                        KXMLGUIFactory* factory,
+                                        QWidget *parent)
+  : QWidget(parent),
+    d(new KEditToolbarWidgetPrivate(instance(), KXMLGUIClient::actionCollection() /*create new one*/))
+{
+  initKPart(factory);
+  // now load in our toolbar combo box
+  loadToolbarCombo(defaultToolbar);
+  adjustSize();
+  setMinimumSize(sizeHint());
+}
+
+KEditToolbarWidget::~KEditToolbarWidget()
+{
+    delete d;
+}
+
+void KEditToolbarWidget::initNonKPart(KActionCollection *collection,
+                                      const QString& file, bool global)
+{
   // let's not forget the stuff that's not xml specific
   //d->m_collection = *collection;
   d->m_actionList = collection->actions();
@@ -295,19 +366,9 @@
 
   // okay, that done, we concern ourselves with the GUI aspects
   setupLayout();
-
-  // now load in our toolbar combo box
-  loadToolbarCombo();
-  adjustSize();
-
-  //kdDebug() << "kedittoolbarwidget " << sizeHint() << endl;
-  setMinimumSize(sizeHint());
 }
 
-KEditToolbarWidget::KEditToolbarWidget( KXMLGUIFactory* factory,
-                                        QWidget *parent)
-  : QWidget(parent),
-    d(new KEditToolbarWidgetPrivate(instance(), KXMLGUIClient::actionCollection() /*create new one*/))
+void KEditToolbarWidget::initKPart(KXMLGUIFactory* factory)
 {
   // reusable vars
   QDomElement elem;
@@ -342,15 +403,6 @@
 
   // okay, that done, we concern ourselves with the GUI aspects
   setupLayout();
-  setMinimumSize(sizeHint());
-
-  // now load in our toolbar combo box
-  loadToolbarCombo();
-}
-
-KEditToolbarWidget::~KEditToolbarWidget()
-{
-    delete d;
 }
 
 bool KEditToolbarWidget::save()
@@ -534,7 +586,7 @@
   top_layout->addWidget(new KSeparator(this));
 }
 
-void KEditToolbarWidget::loadToolbarCombo()
+void KEditToolbarWidget::loadToolbarCombo(const QString& defaultToolbar)
 {
   static const QString &attrName = KGlobal::staticQString( "name" );
   static const QString &tagText = KGlobal::staticQString( "text" );
@@ -543,6 +595,8 @@
   // just in case, we clear our combo
   m_toolbarCombo->clear();
 
+  int defaultToolbarId = 0;
+  int count = 0;
   // load in all of the toolbar names into this combo box
   XmlDataList::Iterator xit = d->m_xmlFiles.begin();
   for ( ; xit != d->m_xmlFiles.end(); ++xit)
@@ -575,11 +629,15 @@
 
       m_toolbarCombo->setEnabled( true );
       m_toolbarCombo->insertItem( name );
+      if (name == defaultToolbar)
+          defaultToolbarId = count;
+      count++;
     }
   }
 
-  // we want to the first item selected and its actions loaded
-  slotToolbarSelected( m_toolbarCombo->currentText() );
+  // we want to the specified item selected and its actions loaded
+  m_toolbarCombo->setCurrentItem(defaultToolbarId);
+  slotToolbarSelected(m_toolbarCombo->currentText());
 }
 
 void KEditToolbarWidget::loadActionList(QDomElement& elem)

["kedittoolbar.h.diff" (text/x-diff)]

--- kedittoolbar.h.orig	Sat Feb  8 13:06:12 2003
+++ kedittoolbar.h	Tue Mar  4 19:49:10 2003
@@ -140,6 +140,21 @@
                const QString& xmlfile = QString::null, bool global = true,
 			   QWidget* parent = 0, const char* name = 0);
 
+  //KDE 4.0: merge the two constructors
+  /* Constructor for apps that do not use components, which has an extra argument
+   * specifying the toolbar to be shown.
+   * @param collection The collection of actions to work on.
+   * @param xmlfile The application's local resource file.
+   * @param global If @p true, then the global resource file will also
+   *               be parsed.
+   * @param defaultToolbar The toolbar with this name will appear for editing.
+   * @param parent The parent of the dialog.
+   * @param name An internal name.
+   * @since 3.2
+   */
+  KEditToolbar(const QString& defaultToolbar, KActionCollection *collection,
+               const QString& xmlfile = QString::null, bool global = true,
+               QWidget* parent = 0, const char* name = 0);
   /**
    * Constructor for KParts based apps.
    *
@@ -165,6 +180,19 @@
    */
   KEditToolbar(KXMLGUIFactory* factory, QWidget* parent = 0, const char* name = 0);
 
+  //KDE 4.0: merge the two constructors
+  /* Constructor for KParts based apps, which has an extra argument
+   * specifying the toolbar to be shown.
+   *
+   * @param factory Your application's factory object
+   * @param defaultToolbar The toolbar with this name will appear for editing.
+   * @param parent The usual parent for the dialog.
+   * @param name An internal name.
+   * @since 3.2
+   */
+  KEditToolbar(const QString& defaultToolbar, KXMLGUIFactory* factory,
+               QWidget* parent = 0, const char* name = 0);
+
   /// destructor
   ~KEditToolbar();
 
@@ -257,6 +285,23 @@
                      const QString& file = QString::null,
                      bool global = true, QWidget *parent = 0L);
 
+   //KDE 4.0: merge the two constructors
+   /* Same as above, with an extra agrument specifying the toolbar to be shown.
+   *
+   * @param collection The collection of actions to work on
+   * @param xmlfile The application's local resource file
+   * @param global If true, then the global resource file will also
+   *               be parsed
+   * @param defaultToolbar The toolbar with this name will appear for editing.
+   * @param parent This widget's parent
+   * @since 3.2
+   */
+  KEditToolbarWidget(const QString& defaultToolbar,
+                     KActionCollection *collection,
+                     const QString& file = QString::null,
+                     bool global = true,
+                     QWidget *parent = 0L);
+
   /**
    * Constructor for KParts based apps.
    *
@@ -279,6 +324,19 @@
    */
   KEditToolbarWidget(KXMLGUIFactory* factory, QWidget *parent = 0L);
 
+   //KDE 4.0: merge the two constructors
+   /* Same as above, with an extra agrument specifying the toolbar to be shown.
+   *
+   *
+   * @param factory Your application's factory object
+   * @param defaultToolbar The toolbar with this name will appear for editing.
+   * @param parent This widget's parent
+   * @since 3.2
+   */
+  KEditToolbarWidget(const QString& defaultToolbar,
+                     KXMLGUIFactory* factory,
+                     QWidget *parent = 0L);
+
   /**
    * Destructor.  Note that any changes done in this widget will
    * @p NOT be saved in the destructor.  You @p must call @ref save()
@@ -321,7 +379,9 @@
 protected:
   void setupLayout();
 
-  void loadToolbarCombo();
+  void initNonKPart(KActionCollection *collection, const QString& file, bool global);
+  void initKPart(KXMLGUIFactory* factory);
+  void loadToolbarCombo(const QString& defaultToolbar = QString::null);
   void loadActionList(QDomElement& elem);
   void updateLocal(QDomElement& elem);
 


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

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