XMLGUI, actions and dialogs

Dirk Sch�nberger dirk.schoenberger at sz-online.de
Thu Sep 11 09:25:13 BST 2003


If I develop GUIs for KDE applications, I currently have three way to do
this

- menubars, toolbars and popup menus are defined by an XML .rc file, the
behaviour behind this is implemented in C++
- popup dialogs are implemented by a mix of C++ declarations (dialog
definitions, pages, ...), Qt Designer files which are used to generate 
  source code and subclasses of these generated classes which implement the
behaviour. Theoretically there exist the possibility to load the UI files 
  directly by using a factory, somehow this feature is not used (this would
allow to change the GUI of an application on a local base)
- custom GUIs are implemented fully manually with variable approaches. This
includes container level GUIs like the different sidebars and tabs in
applications 
  like KDevelop, or Karbon or Krita from KOffice. At least in Karbon and
Krita there is no clear distinction between "view functionality", i.e. the
display of the 
  document data, and "controller functionality", i.e. the display of the
sidebars / tabs. So e.g. the sidebar as part of an embedded object (to see
what I mean 
  please try to embed a Krita part inside a KWord document in current CVS).
Instead the sidebar should somehow be merged with the container GUI, i.e.
the 
  toolbars, menubars ...

Would it be possible/useful to extend the XMLGUI framework to be able to
display popup dialogs and tabs, sidebars? So that it is possible to define
a popup dialogs with something like this in an external resource file:

<!DOCTYPE kpartgui>
<kpartgui name="krita">
  <SideBar>
    <Page name="fill" >
      <Action name="cmykColor" />
      <Action name="rgbColor" />
      <Action name="hsvColor" />
    </Menu>
  </SideBar>
</kpartgui>

<!DOCTYPE kpartgui>
<kpartgui name="xxx">
  <Dialog title="Properties">
    <Page title="Page 1" >
      <Action name="editName" />
      <Action name="editFirstName" />
    </Page>
    <Page title="Page 2" >
      <Action name="editAddress" />
      <Action name="editEmail" />
    </Page>
  </Dialog>
</kpartgui>

Using this approach would allow to use the features of the existing XMLGUI
framework, namely the merging of multiple UI trees (e.g. the Krita sidebar
with the KWord menu and toolbars, or the dialog UI with some shared UI
resource (think "dialog layout" and "button order" here)

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




More information about the kde-core-devel mailing list