Kexi API Documentation (2.0 alpha)

KexiDialogBase Class Reference

#include <kexidialogbase.h>

Inheritance diagram for KexiDialogBase:

KMdiChildView KexiActionProxy Kexi::ObjectStatus List of all members.

Detailed Description

Base class for child window of Kexi's main application window.

This class can contain a number of configurable views, switchable using toggle action. It also automatically works as a proxy for shared (application-wide) actions.

Definition at line 75 of file kexidialogbase.h.

Public Slots

virtual void setFocus ()
void updateCaption ()
tristate storeData (bool dontAsk=false)
tristate storeNewData ()
void sendDetachedStateToCurrentView ()
void sendAttachedStateToCurrentView ()

Signals

void updateContextHelp ()
void closing ()
 emitted when the window is about to close
void dirtyChanged (KexiDialogBase *)

Public Member Functions

 KexiDialogBase (KexiMainWindow *parent, const QString &caption=QString::null)
virtual ~KexiDialogBase ()
bool isRegistered ()
KexiViewBaseselectedView () const
KexiViewBaseviewForMode (int mode) const
void addView (KexiViewBase *view)
 Adds view for the dialog. It will be the _only_ view (of unspecified mode) for the dialog.
virtual QSize minimumSizeHint () const
virtual QSize sizeHint () const
KexiMainWindowmainWin () const
void setId (int id)
int id () const
KexiPart::Partpart () const
KexiPart::ItempartItem () const
KexiPart::GUIClientcommonGUIClient () const
 Kexi dialog's gui COMMON client.
KexiPart::GUIClientguiClient () const
 Kexi dialog's gui client for currently selected view.
virtual QString itemIcon ()
bool supportsViewMode (int mode) const
int currentViewMode () const
tristate switchToViewMode (int newViewMode)
void setContextHelp (const QString &caption, const QString &text, const QString &iconName)
virtual bool eventFilter (QObject *obj, QEvent *e)
virtual void attachToGUIClient ()
virtual void detachFromGUIClient ()
bool dirty () const
KexiViewBaseviewThatRecentlySetDirtyFlag () const
bool neverSaved () const
KoProperty::Set * propertySet ()
KexiDB::SchemaDataschemaData () const
KexiDialogTempDatatempData () const
void activate ()
void deactivate ()

Protected Slots

void setDirty (bool dirty)

Protected Member Functions

tristate switchToViewMode (int newViewMode, QMap< QString, QString > *staticObjectArgs, bool &proposeOpeningInTextViewModeBecauseOfProblems)
void registerDialog ()
virtual void closeEvent (QCloseEvent *e)
void addView (KexiViewBase *view, int mode)
void removeView (int mode)
QWidgetStack * stack () const
void dirtyChanged (KexiViewBase *view)
 Used by view to inform the dialog about changing state of the "dirty" flag.
bool isDesignModePreloadedForTextModeHackUsed (int newViewMode) const

Protected Attributes

int m_supportedViewModes
int m_openedViewModes
int m_currentViewMode

Friends

class KexiMainWindow
class KexiPart::Part
class KexiInternalPart
class KexiViewBase


Constructor & Destructor Documentation

KexiDialogBase::KexiDialogBase KexiMainWindow parent,
const QString caption = QString::null
 

Definition at line 44 of file kexidialogbase.cpp.

References m_currentViewMode, m_openedViewModes, m_supportedViewModes, and Kexi::NoViewMode.

KexiDialogBase::~KexiDialogBase  )  [virtual]
 

Definition at line 74 of file kexidialogbase.cpp.


Member Function Documentation

void KexiDialogBase::activate  ) 
 

Called primarily by KexiMainWindowImpl to activate dialog. Selected view (if present) is also informed about activation.

Definition at line 624 of file kexidialogbase.cpp.

References KexiUtils::hasParent(), and selectedView().

Referenced by eventFilter(), and setFocus().

void KexiDialogBase::addView KexiViewBase view,
int  mode
[protected]
 

Definition at line 97 of file kexidialogbase.cpp.

References m_openedViewModes.

void KexiDialogBase::addView KexiViewBase view  ) 
 

Adds view for the dialog. It will be the _only_ view (of unspecified mode) for the dialog.

Definition at line 92 of file kexidialogbase.cpp.

Referenced by KexiInternalPart::findOrCreateKexiDialog(), and switchToViewMode().

void KexiDialogBase::attachToGUIClient  )  [virtual]
 

Used by Main Window

Todo:
js: PROBABLY REMOVE THESE TWO?

Definition at line 160 of file kexidialogbase.cpp.

References guiClient().

Referenced by KexiMainWindowImpl::activeWindowChanged().

void KexiDialogBase::closeEvent QCloseEvent *  e  )  [protected, virtual]
 

Definition at line 186 of file kexidialogbase.cpp.

References KexiMainWindow::acceptPropertySetEditing(), closing(), and KexiViewBase::closing().

void KexiDialogBase::closing  )  [signal]
 

emitted when the window is about to close

Referenced by closeEvent().

KexiPart::GUIClient * KexiDialogBase::commonGUIClient  )  const
 

Kexi dialog's gui COMMON client.

It's obtained by querying part object for this dialog.

Definition at line 274 of file kexidialogbase.cpp.

Referenced by KexiMainWindowImpl::activeWindowChanged(), and KexiMainWindowImpl::closeDialog().

int KexiDialogBase::currentViewMode  )  const [inline]
 

Returns:
current view mode for this dialog.

Definition at line 154 of file kexidialogbase.h.

Referenced by KexiMainWindowImpl::activeWindowChanged(), and KexiTablePart::i18nMessage().

void KexiDialogBase::deactivate  ) 
 

Called primarily by KexiMainWindowImpl to deactivate dialog. Selected view (if present) is also informed about deactivation.

Definition at line 639 of file kexidialogbase.cpp.

References selectedView(), and KexiViewBase::updateActions().

void KexiDialogBase::detachFromGUIClient  )  [virtual]
 

Definition at line 166 of file kexidialogbase.cpp.

References guiClient().

bool KexiDialogBase::dirty  )  const
 

True if contents (data) of the dialog is dirty and need to be saved This may or not be used, depending if changes in the dialog are saved immediately (e.g. like in datatableview) or saved by hand (by user) (e.g. like in alter-table dialog).

Returns:
true if at least on "dirty" flag is set for one of the dialog's view.

Definition at line 223 of file kexidialogbase.cpp.

References m_openedViewModes.

Referenced by KexiMainWindowImpl::closeDialog(), dirtyChanged(), and updateCaption().

void KexiDialogBase::dirtyChanged KexiViewBase view  )  [protected]
 

Used by view to inform the dialog about changing state of the "dirty" flag.

Definition at line 450 of file kexidialogbase.cpp.

References dirty(), dirtyChanged(), and updateCaption().

void KexiDialogBase::dirtyChanged KexiDialogBase  )  [signal]
 

Emited to inform the world that 'dirty' flag changes. Activated by KexiViewBase::setDirty().

Referenced by dirtyChanged(), KexiViewBase::setDirty(), and setDirty().

bool KexiDialogBase::eventFilter QObject *  obj,
QEvent *  e
[virtual]
 

Internal reimplementation.

Definition at line 432 of file kexidialogbase.cpp.

References activate(), and KexiUtils::hasParent().

KexiPart::GUIClient * KexiDialogBase::guiClient  )  const
 

Kexi dialog's gui client for currently selected view.

It's obtained by querying part object for this dialog.

Definition at line 267 of file kexidialogbase.cpp.

References m_currentViewMode.

Referenced by KexiMainWindowImpl::activeWindowChanged(), attachToGUIClient(), KexiMainWindowImpl::closeDialog(), and detachFromGUIClient().

int KexiDialogBase::id  )  const
 

If there is a part item associated with this dialog (see partItem()), partItem()->identifier() is returned, otherwise internal dialog's identifier (previously set by setID()) is returned.

Definition at line 172 of file kexidialogbase.cpp.

References partItem().

Referenced by KexiMainWindowImpl::childClosed(), KexiMainWindowImpl::closeDialog(), KexiViewBase::loadDataBlock(), KexiPart::Part::loadDataBlock(), KexiMainWindowImpl::registerChild(), KexiViewBase::removeDataBlock(), KexiViewBase::storeDataBlock(), and KexiMainWindowImpl::Private::updateDialogId().

bool KexiDialogBase::isDesignModePreloadedForTextModeHackUsed int  newViewMode  )  const [protected]
 

Definition at line 281 of file kexidialogbase.cpp.

References Kexi::DesignViewMode, supportsViewMode(), Kexi::TextViewMode, and viewForMode().

Referenced by switchToViewMode().

bool KexiDialogBase::isRegistered  ) 
 

Definition at line 156 of file kexidialogbase.cpp.

Referenced by KexiMainWindowImpl::activeWindowChanged().

QString KexiDialogBase::itemIcon  )  [virtual]
 

Returns:
name of icon provided by part that created this dialog. The name is used by KexiMainWindow to set/reset icon for this dialog.

Definition at line 255 of file kexidialogbase.cpp.

References KexiViewBase::m_defaultIconName, and selectedView().

Referenced by KexiPart::Part::openInstance().

KexiMainWindow* KexiDialogBase::mainWin  )  const [inline]
 

Definition at line 108 of file kexidialogbase.h.

Referenced by KexiQueryPart::TempData::closeListener(), KexiQueryPart::createTempData(), KexiTablePart::createView(), KexiSimplePrintingPart::createView(), KexiScriptPart::createView(), KexiReportPart::createView(), KexiQueryPart::createView(), KexiMacroPart::createView(), KexiFormPart::createView(), KexiPart::Part::loadDataBlock(), KexiQueryPart::loadSchemaData(), KexiPart::Part::openInstance(), and switchToViewMode().

QSize KexiDialogBase::minimumSizeHint  )  const [virtual]
 

reimplemented: minimum size hint is inherited from currently visible view.

Definition at line 120 of file kexidialogbase.cpp.

References selectedView().

Referenced by KexiPart::Part::openInstance().

bool KexiDialogBase::neverSaved  )  const
 

Returns:
true, if this dialog's data were never saved. If it's true we're usually try to ask a user if the dialog's data should be saved somewhere. After dialog construction, "neverSaved" flag is set to appropriate value. KexiPart::Item::neverSaved() is reused.

Definition at line 495 of file kexidialogbase.cpp.

References KexiPart::Item::neverSaved().

Referenced by KexiQueryDesignerGuiEditor::afterSwitchFrom(), KexiTablePart::i18nMessage(), storeData(), and storeNewData().

KexiPart::Part* KexiDialogBase::part  )  const [inline]
 

Returns:
Kexi part used to create this window

Definition at line 124 of file kexidialogbase.h.

Referenced by KexiMainWindowImpl::closeDialog(), KexiQueryPart::createTempData(), KexiViewBase::part(), and storeNewData().

KexiPart::Item* KexiDialogBase::partItem  )  const [inline]
 

Returns:
Kexi part item used to create this window

Definition at line 127 of file kexidialogbase.h.

Referenced by KexiMainWindowImpl::closeDialog(), KexiQueryPart::createTempData(), id(), and KexiMainWindowImpl::printActionForItem().

KoProperty::Set * KexiDialogBase::propertySet  ) 
 

Returns:
property set provided by a current view, or NULL if there is no view set (or the view has no set assigned).

Definition at line 424 of file kexidialogbase.cpp.

References KexiViewBase::propertySet(), and selectedView().

void KexiDialogBase::registerDialog  )  [protected]
 

Definition at line 141 of file kexidialogbase.cpp.

References KexiMainWindow::registerChild().

Referenced by KexiInternalPart::findOrCreateKexiDialog(), and KexiPart::Part::openInstance().

void KexiDialogBase::removeView int  mode  )  [protected]
 

Definition at line 110 of file kexidialogbase.cpp.

References m_openedViewModes, and viewForMode().

Referenced by switchToViewMode().

KexiDB::SchemaData* KexiDialogBase::schemaData  )  const [inline]
 

Definition at line 198 of file kexidialogbase.h.

Referenced by KexiTableDesignerView::simulateAlterTableExecution(), KexiViewBase::storeData(), KexiTableDesignerView::storeData(), KexiQueryDesignerGuiEditor::storeLayout(), and KexiTableDesignerView::storeNewData().

KexiViewBase * KexiDialogBase::selectedView  )  const
 

Returns:
currently selected view or 0 if there is no current view

Definition at line 79 of file kexidialogbase.cpp.

References m_currentViewMode.

Referenced by KexiMacro::NavigateAction::activate(), activate(), deactivate(), itemIcon(), minimumSizeHint(), KexiPart::Part::openInstance(), KexiMainWindowImpl::printActionForItem(), propertySet(), sendAttachedStateToCurrentView(), sendDetachedStateToCurrentView(), sizeHint(), storeData(), storeNewData(), and switchToViewMode().

void KexiDialogBase::sendAttachedStateToCurrentView  )  [slot]
 

W're informing the current view about performed atttaching by calling KexiViewBase::parentDialogAttached(), so the view can react on this event (by default KexiViewBase::parentDialogAttached() does nothing, you can reimplement it).

Definition at line 653 of file kexidialogbase.cpp.

References KexiViewBase::parentDialogAttached(), and selectedView().

void KexiDialogBase::sendDetachedStateToCurrentView  )  [slot]
 

Reimplemented - we're informing the current view about performed detaching by calling KexiViewBase::parentDialogDetached(), so the view can react on this event (by default KexiViewBase::parentDialogDetached() does nothing, you can reimplement it).

Definition at line 646 of file kexidialogbase.cpp.

References KexiViewBase::parentDialogDetached(), and selectedView().

void KexiDialogBase::setContextHelp const QString caption,
const QString text,
const QString iconName
 

Definition at line 177 of file kexidialogbase.cpp.

References updateContextHelp().

void KexiDialogBase::setDirty bool  dirty  )  [protected, slot]
 

Sets 'dirty' flag on every dialog's view.

Definition at line 240 of file kexidialogbase.cpp.

References dirtyChanged(), and m_openedViewModes.

Referenced by storeData(), and storeNewData().

void KexiDialogBase::setFocus  )  [virtual, slot]
 

Definition at line 409 of file kexidialogbase.cpp.

References activate().

Referenced by KexiMainWindowImpl::activeWindowChanged(), and switchToViewMode().

void KexiDialogBase::setId int  id  )  [inline]
 

This method sets internal identifier for the dialog, but if there is a part item associated with this dialog (see partItem()), partItem()->identifier() will be is used as identifier, so this method is noop. Thus, it's usable only for dialog types when no part item is assigned.

Definition at line 116 of file kexidialogbase.h.

Referenced by KexiScriptPart::execute(), KexiMacroPart::execute(), KexiInternalPart::findOrCreateKexiDialog(), KexiPart::Part::openInstance(), KexiQueryDesignerSQLView::storeNewData(), and KexiQueryDesignerGuiEditor::storeNewData().

QSize KexiDialogBase::sizeHint  )  const [virtual]
 

reimplemented: size hint is inherited from currently visible view.

Definition at line 128 of file kexidialogbase.cpp.

References KexiViewBase::preferredSizeHint(), and selectedView().

Referenced by KexiPart::Part::openInstance().

QWidgetStack* KexiDialogBase::stack  )  const [inline, protected]
 

Definition at line 284 of file kexidialogbase.h.

Referenced by KexiPart::Part::openInstance().

tristate KexiDialogBase::storeData bool  dontAsk = false  )  [slot]
 

Internal. Called by KexiMainWindowImpl::saveObject(). Tells this dialog to save changes of the existing object to the backend. If dontAsk is true, no question dialog will be shown to the user. The default is false.

See also:
storeNewData()
Returns:
true on success, false on failure and cancelled when storing has been cancelled.

Definition at line 588 of file kexidialogbase.cpp.

References KexiDB::TransactionGuard::commit(), KexiDB::Transaction::isNull(), neverSaved(), KexiMainWindow::project(), selectedView(), setDirty(), KexiViewBase::storeData(), and storeData_ERR.

tristate KexiDialogBase::storeNewData  )  [slot]
 

Internal. Called by KexiMainWindowImpl::saveObject(). Tells this dialog to create and store data of the new object to the backend. Object's schema data has been never stored, so it is created automatically, using information obtained form part item. On success, part item's ID is updated to new value, and m_schemaData is set.

See also:
schemaData().
Returns:
true on success, false on failure and cancelled when storing has been cancelled.

Definition at line 500 of file kexidialogbase.cpp.

References cancelled, KexiPart::Item::caption(), KexiDB::FieldList::debugString(), KexiPart::Item::description(), KexiDB::SchemaData::id(), kexidbg, KexiPart::Item::name(), neverSaved(), part(), KexiMainWindow::project(), selectedView(), KexiDB::SchemaData::setCaption(), KexiDB::SchemaData::setDescription(), setDirty(), KexiPart::Item::setIdentifier(), KexiDB::SchemaData::setName(), Kexi::ObjectStatus::setStatus(), KexiViewBase::storeNewData(), KexiDB::FieldList::subList(), and KexiPart::UserObjectType.

bool KexiDialogBase::supportsViewMode int  mode  )  const [inline]
 

Returns:
true if this dialog supports switching to mode. mode is one of Kexi::ViewMode enum elements. The flags are used e.g. for testing by KexiMainWindow, if actions of switching to given view mode is available. This member is intialised in KexiPart that creates this KexiDialogBase object.

Definition at line 151 of file kexidialogbase.h.

Referenced by isDesignModePreloadedForTextModeHackUsed(), KexiViewBase::KexiViewBase(), and switchToViewMode().

tristate KexiDialogBase::switchToViewMode int  newViewMode,
QMap< QString, QString > *  staticObjectArgs,
bool &  proposeOpeningInTextViewModeBecauseOfProblems
[protected]
 

Used by Part::openInstance(), like switchToViewMode( int newViewMode ), but passed staticObjectArgs. Only used for parts of class KexiPart::StaticPart.

Definition at line 288 of file kexidialogbase.cpp.

References KexiMainWindow::acceptPropertySetEditing(), KexiActionProxy::addActionProxyChild(), addView(), KexiViewBase::afterSwitchFrom(), Kexi::ObjectStatus::append(), KexiViewBase::beforeSwitchTo(), cancelled, KexiPart::StaticPart::createView(), Kexi::DesignViewMode, KexiSharedActionHost::invalidateSharedActions(), isDesignModePreloadedForTextModeHackUsed(), m_currentViewMode, mainWin(), Kexi::nameForViewMode(), Kexi::NoViewMode, KexiViewBase::propertySetSwitched(), removeView(), KexiUtils::removeWaitCursor(), KexiMainWindow::saveObject(), selectedView(), setFocus(), Kexi::ObjectStatus::setStatus(), KexiUtils::setWaitCursor(), Kexi::ObjectStatus::status(), supportsViewMode(), switchToViewMode(), KexiActionProxy::takeActionProxyChild(), and tempData().

tristate KexiDialogBase::switchToViewMode int  newViewMode  ) 
 

Switches this dialog to newViewMode. viewMode is one of Kexi::ViewMode enum elements.

Returns:
true for successful switching True is returned also if user has cancelled switching (rarely, but for any reason) - cancelled is returned.

Definition at line 403 of file kexidialogbase.cpp.

Referenced by KexiPart::Part::openInstance(), and switchToViewMode().

KexiDialogTempData* KexiDialogBase::tempData  )  const [inline]
 

Used by KexiViewBase subclasses.

Returns:
temporary data shared between views

Definition at line 203 of file kexidialogbase.h.

Referenced by KexiTablePart::createView(), KexiQueryPart::loadSchemaData(), and switchToViewMode().

void KexiDialogBase::updateCaption  )  [slot]
 

Definition at line 476 of file kexidialogbase.cpp.

References dirty(), and KexiPart::Item::name().

Referenced by dirtyChanged(), KexiPart::Part::openInstance(), and KexiMainWindowImpl::slotObjectRenamed().

void KexiDialogBase::updateContextHelp  )  [signal]
 

Referenced by setContextHelp().

KexiViewBase * KexiDialogBase::viewForMode int  mode  )  const
 

Returns:
a view for a given mode or 0 if there's no such mode available (or opened). This does not open mode if it's not opened.

Definition at line 87 of file kexidialogbase.cpp.

Referenced by isDesignModePreloadedForTextModeHackUsed(), and removeView().

KexiViewBase* KexiDialogBase::viewThatRecentlySetDirtyFlag  )  const [inline]
 

Returns:
a pointer to view that has recently set dirty flag. This value is cleared when dirty flag is set to false (i.e. upon saving changes).

Definition at line 184 of file kexidialogbase.h.


Friends And Related Function Documentation

friend class KexiInternalPart [friend]
 

Definition at line 347 of file kexidialogbase.h.

friend class KexiMainWindow [friend]
 

Definition at line 344 of file kexidialogbase.h.

friend class KexiPart::Part [friend]
 

Definition at line 346 of file kexidialogbase.h.

friend class KexiViewBase [friend]
 

Definition at line 348 of file kexidialogbase.h.


Member Data Documentation

int KexiDialogBase::m_currentViewMode [protected]
 

Definition at line 282 of file kexidialogbase.h.

Referenced by guiClient(), KexiDialogBase(), selectedView(), and switchToViewMode().

int KexiDialogBase::m_openedViewModes [protected]
 

Definition at line 281 of file kexidialogbase.h.

Referenced by addView(), dirty(), KexiDialogBase(), removeView(), and setDirty().

int KexiDialogBase::m_supportedViewModes [protected]
 

Definition at line 280 of file kexidialogbase.h.

Referenced by KexiDialogBase(), and KexiPart::Part::openInstance().


The documentation for this class was generated from the following files:
KDE Logo
This file is part of the documentation for Kexi 2.0 alpha.
Documentation copyright © 2002-2007 the Kexi Team.
Generated on Tue Apr 1 20:49:57 2008 by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2003