List of all members | Public Types | Properties | Public Slots | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Slots | Protected Member Functions | Static Protected Member Functions | Protected Attributes
RecurrenceWidget Class Reference

The RecurrenceWidget gives the user a unified interface for telling the system how often certain events occur. More...

#include <recurrencewidget.h>

Inheritance diagram for RecurrenceWidget:
QWidget Ui::RecurrenceWidget QObject QPaintDevice Ui_RecurrenceWidget Ui_RecurrenceWidget

Public Types

enum  RecurrenceChangePolicy { NoPolicy, IgnoreFuture, ChangeFuture }
 
enum  RecurrencePeriod {
  Never, Minutely, Hourly, Daily,
  Weekly, Monthly, Yearly, Custom
}
 

Properties

 acceptDrops
 
 accessibleDescription
 
 accessibleName
 
 autoFillBackground
 
 baseSize
 
 childrenRect
 
 childrenRegion
 
 contextMenuPolicy
 
 cursor
 
 enabled
 
bool endDateVisible
 Return whether the end date field is visible. More...
 
bool endTimeVisible
 Return whether the end time field is visible. More...
 
 focus
 
 focusPolicy
 
 font
 
 frameGeometry
 
 frameSize
 
 fullScreen
 
 geometry
 
 height
 
 inputMethodHints
 
 isActiveWindow
 
 layoutDirection
 
 locale
 
 maximized
 
 maximumHeight
 
 maximumSize
 
 maximumWidth
 
bool maxVisible
 
 minimized
 
 minimumHeight
 
 minimumSize
 
 minimumSizeHint
 
 minimumWidth
 
RecurrencePeriod minPeriod
 
 modal
 
 mouseTracking
 
 normalGeometry
 
 objectName
 
 palette
 
 pos
 
 rect
 
 size
 
 sizeHint
 
 sizeIncrement
 
 sizePolicy
 
bool startDateVisible
 
bool startTimeVisible
 
 statusTip
 
 styleSheet
 
 toolTip
 
 updatesEnabled
 
 visible
 
 whatsThis
 
 width
 
 windowFilePath
 
 windowFlags
 
 windowIcon
 
 windowIconText
 
 windowModality
 
 windowModified
 
 windowOpacity
 
 windowTitle
 
 x
 
 y
 

Public Slots

virtual void clear ()
 Set the RecurrenceWidget to its default state. More...
 
virtual bool save (bool intxn, RecurrenceChangePolicy cp, QString *msg=0)
 
virtual void set (bool recurring=false, int frequency=1, QString period=QString("W"), QDate startDate=QDate::currentDate(), QDate endDate=QDate(), int max=1)
 
virtual void set (bool recurring, int frequency, QString period, QDateTime startDateTime, QDateTime endDateTime, int max)
 
virtual void setEndDate (QDate p)
 
virtual void setEndDateTime (QDateTime p)
 
virtual void setEndDateVisible (bool p)
 
virtual void setEndTime (QTime p)
 
virtual void setEndTimeVisible (bool p)
 
virtual void setFrequency (int p)
 
virtual void setMax (int p)
 
virtual void setMaxVisible (bool p)
 
virtual void setMinPeriod (RecurrencePeriod minPeriod)
 
virtual bool setParent (int pid, QString ptype)
 
virtual void setPeriod (RecurrencePeriod p)
 
virtual void setPeriod (QString p)
 
virtual void setRecurring (bool p)
 
virtual void setStartDate (QDate p)
 
virtual void setStartDateTime (QDateTime p)
 
virtual void setStartDateVisible (bool p)
 
virtual void setStartTime (QTime p)
 
virtual void setStartTimeVisible (bool p)
 

Public Member Functions

 RecurrenceWidget (QWidget *parent=0, const char *name=0)
 
 ~RecurrenceWidget ()
 
bool acceptDrops () const
 
QString accessibleDescription () const
 
QString accessibleName () const
 
QList< QAction * > actions () const
 
void activateWindow ()
 
void addAction (QAction *action)
 
void addActions (QList< QAction * > actions)
 
void adjustSize ()
 
bool autoFillBackground () const
 
Qt::BackgroundMode backgroundMode () const
 
QPoint backgroundOffset () const
 
BackgroundOrigin backgroundOrigin () const
 
QPalette::ColorRole backgroundRole () const
 
QSize baseSize () const
 
bool blockSignals (bool block)
 
QString caption () const
 
QObjectchild (const char *objName, const char *inheritsClass, bool recursiveSearch) const
 
QWidgetchildAt (int x, int y, bool includeThis) const
 
QWidgetchildAt (const QPoint &p, bool includeThis) const
 
QWidgetchildAt (int x, int y) const
 
QWidgetchildAt (const QPoint &p) const
 
const QObjectList & children () const
 
QRect childrenRect () const
 
QRegion childrenRegion () const
 
const char * className () const
 
void clearFocus ()
 
void clearMask ()
 
bool close (bool alsoDelete)
 
bool close ()
 
int colorCount () const
 
QColorGroup colorGroup () const
 
bool connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const
 
void constPolish () const
 
QMargins contentsMargins () const
 
QRect contentsRect () const
 
Qt::ContextMenuPolicy contextMenuPolicy () const
 
QCursor cursor () const
 
void customContextMenuRequested (const QPoint &pos)
 
void deleteLater ()
 
int depth () const
 
void destroyed (QObject *obj)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *receiver, const char *method)
 
void drawText (const QPoint &p, const QString &s)
 
void drawText (int x, int y, const QString &s)
 
void dumpObjectInfo ()
 
void dumpObjectTree ()
 
QList< QByteArraydynamicPropertyNames () const
 
WId effectiveWinId () const
 
virtual Q_INVOKABLE QDate endDate () const
 Return the date the recurrence is set to end. More...
 
virtual Q_INVOKABLE QDateTime endDateTime () const
 Return the date and time the recurrence is set to end. More...
 
virtual Q_INVOKABLE bool endDateVisible () const
 
virtual Q_INVOKABLE QTime endTime () const
 Return the time of day the recurrence is set to end. More...
 
virtual Q_INVOKABLE bool endTimeVisible () const
 
void ensurePolished () const
 
void erase (int x, int y, int w, int h)
 
void erase (const QRect &rect)
 
void erase (const QRegion &rgn)
 
void erase ()
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name) const
 
QList< T > findChildren (const QString &name) const
 
QList< T > findChildren (const QRegExp &regExp) const
 
Qt::FocusPolicy focusPolicy () const
 
QWidgetfocusProxy () const
 
QWidgetfocusWidget () const
 
const QFontfont () const
 
QFontInfo fontInfo () const
 
QFontMetrics fontMetrics () const
 
QPalette::ColorRole foregroundRole () const
 
QRect frameGeometry () const
 
QSize frameSize () const
 
virtual Q_INVOKABLE int frequency () const
 Return the frequency (number of periods) the recurrence is set to run. More...
 
const QRectgeometry () const
 
virtual Q_INVOKABLE
RecurrenceChangePolicy 
getChangePolicy ()
 
void getContentsMargins (int *left, int *top, int *right, int *bottom) const
 
virtual HDC getDC () const
 
void grabGesture (Qt::GestureType gesture, QFlags< Qt::GestureFlag > flags)
 
void grabKeyboard ()
 
void grabMouse ()
 
void grabMouse (const QCursor &cursor)
 
int grabShortcut (const QKeySequence &key, Qt::ShortcutContext context)
 
QGraphicsEffectgraphicsEffect () const
 
QGraphicsProxyWidgetgraphicsProxyWidget () const
 
bool hasEditFocus () const
 
bool hasFocus () const
 
bool hasMouse () const
 
bool hasMouseTracking () const
 
int height () const
 
virtual int heightForWidth (int w) const
 
int heightMM () const
 
void hide ()
 
const QPixmapicon () const
 
void iconify ()
 
QString iconText () const
 
bool inherits (const char *className) const
 
QInputContextinputContext ()
 
Qt::InputMethodHints inputMethodHints () const
 
virtual QVariant inputMethodQuery (Qt::InputMethodQuery query) const
 
void insertAction (QAction *before, QAction *action)
 
void insertActions (QAction *before, QList< QAction * > actions)
 
void insertChild (QObject *object)
 
void installEventFilter (QObject *filterObj)
 
bool isA (const char *className) const
 
bool isActiveWindow () const
 
bool isAncestorOf (const QWidget *child) const
 
bool isDesktop () const
 
bool isDialog () const
 
bool isEnabled () const
 
bool isEnabledTo (QWidget *ancestor) const
 
bool isEnabledToTLW () const
 
bool isFullScreen () const
 
bool isHidden () const
 
bool isInputMethodEnabled () const
 
bool isMaximized () const
 
bool isMinimized () const
 
bool isModal () const
 
bool isPopup () const
 
virtual Q_INVOKABLE bool isRecurring () const
 
bool isShown () const
 
bool isTopLevel () const
 
bool isUpdatesEnabled () const
 
bool isVisible () const
 
bool isVisibleTo (QWidget *ancestor) const
 
bool isVisibleToTLW () const
 
bool isWidgetType () const
 
bool isWindow () const
 
bool isWindowModified () const
 
void killTimer (int id)
 
QLayoutlayout () const
 
Qt::LayoutDirection layoutDirection () const
 
QLocale locale () const
 
int logicalDpiX () const
 
int logicalDpiY () const
 
void lower ()
 
Qt::HANDLE macCGHandle () const
 
Qt::HANDLE macQDHandle () const
 
QPoint mapFrom (QWidget *parent, const QPoint &pos) const
 
QPoint mapFromGlobal (const QPoint &pos) const
 
QPoint mapFromParent (const QPoint &pos) const
 
QPoint mapTo (QWidget *parent, const QPoint &pos) const
 
QPoint mapToGlobal (const QPoint &pos) const
 
QPoint mapToParent (const QPoint &pos) const
 
QRegion mask () const
 
virtual Q_INVOKABLE int max () const
 
int maximumHeight () const
 
QSize maximumSize () const
 
int maximumWidth () const
 
virtual bool maxVisible () const
 
virtual const QMetaObjectmetaObject () const
 
int minimumHeight () const
 
QSize minimumSize () const
 
virtual QSize minimumSizeHint () const
 
int minimumWidth () const
 
virtual Q_INVOKABLE
RecurrencePeriod 
minPeriod () const
 
virtual Q_INVOKABLE bool modified () const
 
void move (int x, int y)
 
void move (const QPoint &)
 
void moveToThread (QThread *targetThread)
 
const char * name () const
 
const char * name (const char *defaultName) const
 
QWidgetnativeParentWidget () const
 
QWidgetnextInFocusChain () const
 
QRect normalGeometry () const
 
int numColors () const
 
QString objectName () const
 
void overrideWindowFlags (QFlags< Qt::WindowType > flags)
 
bool ownCursor () const
 
bool ownFont () const
 
bool ownPalette () const
 
virtual QPaintEnginepaintEngine () const
 
bool paintingActive () const
 
const QPalettepalette () const
 
QObjectparent () const
 
virtual Q_INVOKABLE int parentId () const
 
virtual Q_INVOKABLE QString parentType () const
 
QWidgetparentWidget () const
 
QWidgetparentWidget (bool sameWindow) const
 
virtual Q_INVOKABLE
RecurrencePeriod 
period () const
 
virtual Q_INVOKABLE QString periodCode () const
 
int physicalDpiX () const
 
int physicalDpiY () const
 
QPlatformWindow * platformWindow () const
 
QPlatformWindowFormat platformWindowFormat () const
 
void polish ()
 
QPoint pos () const
 
QWidgetpreviousInFocusChain () const
 
QVariant property (const char *name) const
 
void raise ()
 
void recreate (QWidget *parent, QFlags< Qt::WindowType > f, const QPoint &p, bool showIt)
 
QRect rect () const
 
virtual void releaseDC (HDC hdc) const
 
void releaseKeyboard ()
 
void releaseMouse ()
 
void releaseShortcut (int id)
 
void removeAction (QAction *action)
 
void removeChild (QObject *object)
 
void removeEventFilter (QObject *obj)
 
void render (QPaintDevice *target, const QPoint &targetOffset, const QRegion &sourceRegion, QFlags< QWidget::RenderFlag > renderFlags)
 
void render (QPainter *painter, const QPoint &targetOffset, const QRegion &sourceRegion, QFlags< QWidget::RenderFlag > renderFlags)
 
void repaint (const QRegion &rgn, bool b)
 
void repaint (const QRect &rect)
 
void repaint ()
 
void repaint (int x, int y, int w, int h)
 
void repaint (bool b)
 
void repaint (const QRegion &rgn)
 
void repaint (const QRect &r, bool b)
 
void repaint (int x, int y, int w, int h, bool b)
 
void reparent (QWidget *parent, const QPoint &p, bool showIt)
 
void reparent (QWidget *parent, QFlags< Qt::WindowType > f, const QPoint &p, bool showIt)
 
void resize (int w, int h)
 
void resize (const QSize &)
 
bool restoreGeometry (const QByteArray &geometry)
 
void retranslateUi (QWidget *RecurrenceWidget)
 
void retranslateUi (QWidget *RecurrenceWidget)
 
QByteArray saveGeometry () const
 
void scroll (int dx, int dy)
 
void scroll (int dx, int dy, const QRect &r)
 
void setAcceptDrops (bool on)
 
void setAccessibleDescription (const QString &description)
 
void setAccessibleName (const QString &name)
 
void setActiveWindow ()
 
void setAttribute (Qt::WidgetAttribute attribute, bool on)
 
void setAutoFillBackground (bool enabled)
 
void setBackgroundColor (const QColor &color)
 
void setBackgroundMode (Qt::BackgroundMode widgetBackground, Qt::BackgroundMode paletteBackground)
 
void setBackgroundOrigin (BackgroundOrigin background)
 
void setBackgroundPixmap (const QPixmap &pixmap)
 
void setBackgroundRole (QPalette::ColorRole role)
 
void setBaseSize (const QSize &)
 
void setBaseSize (int basew, int baseh)
 
void setCaption (const QString &c)
 
void setContentsMargins (int left, int top, int right, int bottom)
 
void setContentsMargins (const QMargins &margins)
 
void setContextMenuPolicy (Qt::ContextMenuPolicy policy)
 
void setCursor (const QCursor &)
 
void setDisabled (bool disable)
 
void setEditFocus (bool enable)
 
void setEnabled (bool)
 
void setEraseColor (const QColor &color)
 
void setErasePixmap (const QPixmap &pixmap)
 
void setFixedHeight (int h)
 
void setFixedSize (const QSize &s)
 
void setFixedSize (int w, int h)
 
void setFixedWidth (int w)
 
void setFocus ()
 
void setFocus (Qt::FocusReason reason)
 
void setFocusPolicy (Qt::FocusPolicy policy)
 
void setFocusProxy (QWidget *w)
 
void setFont (const QFont &)
 
void setFont (const QFont &f, bool b)
 
void setForegroundRole (QPalette::ColorRole role)
 
void setGeometry (const QRect &)
 
void setGeometry (int x, int y, int w, int h)
 
void setGraphicsEffect (QGraphicsEffect *effect)
 
void setHidden (bool hidden)
 
void setIcon (const QPixmap &i)
 
void setIconText (const QString &it)
 
void setInputContext (QInputContext *context)
 
void setInputMethodEnabled (bool enabled)
 
void setInputMethodHints (QFlags< Qt::InputMethodHint > hints)
 
void setKeyCompression (bool b)
 
void setLayout (QLayout *layout)
 
void setLayoutDirection (Qt::LayoutDirection direction)
 
void setLocale (const QLocale &locale)
 
void setMask (const QRegion &region)
 
void setMask (const QBitmap &bitmap)
 
void setMaximumHeight (int maxh)
 
void setMaximumSize (int maxw, int maxh)
 
void setMaximumSize (const QSize &)
 
void setMaximumWidth (int maxw)
 
void setMinimumHeight (int minh)
 
void setMinimumSize (int minw, int minh)
 
void setMinimumSize (const QSize &)
 
void setMinimumWidth (int minw)
 
void setMouseTracking (bool enable)
 
void setName (const char *name)
 
void setObjectName (const QString &name)
 
void setPalette (const QPalette &)
 
void setPalette (const QPalette &p, bool b)
 
void setPaletteBackgroundColor (const QColor &color)
 
void setPaletteBackgroundPixmap (const QPixmap &pixmap)
 
void setPaletteForegroundColor (const QColor &color)
 
void setParent (QObject *parent)
 
void setParent (QWidget *parent, QFlags< Qt::WindowType > f)
 
void setParent (QWidget *parent)
 
void setPlatformWindow (QPlatformWindow *window)
 
void setPlatformWindowFormat (const QPlatformWindowFormat &format)
 
bool setProperty (const char *name, const QVariant &value)
 
void setShortcutAutoRepeat (int id, bool enable)
 
void setShortcutEnabled (int id, bool enable)
 
void setShown (bool shown)
 
void setSizeIncrement (const QSize &)
 
void setSizeIncrement (int w, int h)
 
void setSizePolicy (QSizePolicy::Policy hor, QSizePolicy::Policy ver, bool hfw)
 
void setSizePolicy (QSizePolicy)
 
void setSizePolicy (QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)
 
void setStatusTip (const QString &)
 
void setStyle (QStyle *style)
 
QStylesetStyle (const QString &style)
 
void setStyleSheet (const QString &styleSheet)
 
void setToolTip (const QString &)
 
void setUpdatesEnabled (bool enable)
 
void setupUi (QWidget *widget)
 
void setupUi (QWidget *RecurrenceWidget)
 
virtual void setVisible (bool visible)
 
void setWhatsThis (const QString &)
 
void setWindowFilePath (const QString &filePath)
 
void setWindowFlags (QFlags< Qt::WindowType > type)
 
void setWindowIcon (const QIcon &icon)
 
void setWindowIconText (const QString &)
 
void setWindowModality (Qt::WindowModality windowModality)
 
void setWindowModified (bool)
 
void setWindowOpacity (qreal level)
 
void setWindowRole (const QString &role)
 
void setWindowState (QFlags< Qt::WindowState > windowState)
 
void setWindowSurface (QWindowSurface *surface)
 
void setWindowTitle (const QString &)
 
void show ()
 
void showFullScreen ()
 
void showMaximized ()
 
void showMinimized ()
 
void showNormal ()
 
bool signalsBlocked () const
 
QSize size () const
 
virtual QSize sizeHint () const
 
QSize sizeIncrement () const
 
QSizePolicy sizePolicy () const
 
void stackUnder (QWidget *w)
 
virtual Q_INVOKABLE QDate startDate () const
 
virtual Q_INVOKABLE QDateTime startDateTime () const
 
virtual bool startDateVisible () const
 
virtual Q_INVOKABLE QTime startTime () const
 
int startTimer (int interval)
 
virtual Q_INVOKABLE bool startTimeVisible () const
 
QString statusTip () const
 
virtual Q_INVOKABLE
RecurrencePeriod 
stringToPeriod (QString p) const
 Convert a string representation of the period to a RecurrencePeriod. More...
 
QStylestyle () const
 
QString styleSheet () const
 
bool testAttribute (Qt::WidgetAttribute attribute) const
 
QThreadthread () const
 
QString toolTip () const
 
QWidgettopLevelWidget () const
 
bool underMouse () const
 
void ungrabGesture (Qt::GestureType gesture)
 
void unsetCursor ()
 
void unsetFont ()
 
void unsetLayoutDirection ()
 
void unsetLocale ()
 
void unsetPalette ()
 
void update ()
 
void update (int x, int y, int w, int h)
 
void update (const QRect &rect)
 
void update (const QRegion &rgn)
 
void updateGeometry ()
 
bool updatesEnabled () const
 
QRect visibleRect () const
 
QRegion visibleRegion () const
 
QString whatsThis () const
 
int width () const
 
int widthMM () const
 
QWidgetwindow () const
 
QString windowFilePath () const
 
Qt::WindowFlags windowFlags () const
 
QIcon windowIcon () const
 
QString windowIconText () const
 
Qt::WindowModality windowModality () const
 
qreal windowOpacity () const
 
QString windowRole () const
 
Qt::WindowStates windowState () const
 
QWindowSurface * windowSurface () const
 
QString windowTitle () const
 
Qt::WindowType windowType () const
 
WId winId () const
 
int x () const
 
int x11Cells () const
 
Qt::HANDLE x11Colormap () const
 
bool x11DefaultColormap () const
 
bool x11DefaultVisual () const
 
int x11Depth () const
 
Display * x11Display () const
 
const QX11Infox11Info () const
 
Qt::HANDLE x11PictureHandle () const
 
int x11Screen () const
 
void * x11Visual () const
 
int y () const
 

Static Public Member Functions

bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
QWidgetfind (WId id)
 
QWidgetkeyboardGrabber ()
 
QWidgetmouseGrabber ()
 
void setTabOrder (QWidget *first, QWidget *second)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
QWidgetMapper * wmapper ()
 
int x11AppCells (int screen)
 
Qt::HANDLE x11AppColormap (int screen)
 
bool x11AppDefaultColormap (int screen)
 
bool x11AppDefaultVisual (int screen)
 
int x11AppDepth (int screen)
 
Display * x11AppDisplay ()
 
int x11AppDpiX (int screen)
 
int x11AppDpiY (int screen)
 
Qt::HANDLE x11AppRootWindow (int screen)
 
int x11AppScreen ()
 
void * x11AppVisual (int screen)
 
void x11SetAppDpiX (int dpi, int screen)
 
void x11SetAppDpiY (int dpi, int screen)
 

Public Attributes

DateCluster_dates
 
QTimeEdit_endTime
 
XSpinBox_frequency
 
QLabel_frequencyLit
 
QSpacerItem_hspacer
 
XSpinBox_max
 
XLabel_maxLit
 
XComboBox_period
 
QGroupBox_recurring
 
QTimeEdit_startTime
 
QGridLayoutgridLayout
 
QGridLayoutgridLayout_2
 
typedef RenderFlags
 
QSpacerItemverticalSpacer
 

Protected Slots

virtual void languageChange ()
 

Protected Member Functions

virtual void actionEvent (QActionEvent *event)
 
virtual void changeEvent (QEvent *event)
 
bool checkConnectArgs (const char *signal, const QObject *object, const char *method)
 
virtual void childEvent (QChildEvent *event)
 
virtual void closeEvent (QCloseEvent *event)
 
virtual void connectNotify (const char *signal)
 
virtual void contextMenuEvent (QContextMenuEvent *event)
 
void create (WId window, bool initializeWindow, bool destroyOldWindow)
 
virtual void customEvent (QEvent *event)
 
void destroy (bool destroyWindow, bool destroySubWindows)
 
virtual void disconnectNotify (const char *signal)
 
virtual void dragEnterEvent (QDragEnterEvent *event)
 
virtual void dragLeaveEvent (QDragLeaveEvent *event)
 
virtual void dragMoveEvent (QDragMoveEvent *event)
 
virtual void dropEvent (QDropEvent *event)
 
virtual void enterEvent (QEvent *event)
 
virtual bool event (QEvent *event)
 
virtual void focusInEvent (QFocusEvent *event)
 
bool focusNextChild ()
 
virtual bool focusNextPrevChild (bool next)
 
virtual void focusOutEvent (QFocusEvent *event)
 
bool focusPreviousChild ()
 
virtual void hideEvent (QHideEvent *event)
 
virtual void inputMethodEvent (QInputMethodEvent *event)
 
virtual void keyPressEvent (QKeyEvent *event)
 
virtual void keyReleaseEvent (QKeyEvent *event)
 
virtual void leaveEvent (QEvent *event)
 
virtual bool macEvent (EventHandlerCallRef caller, EventRef event)
 
virtual int metric (PaintDeviceMetric m) const
 
virtual void mouseDoubleClickEvent (QMouseEvent *event)
 
virtual void mouseMoveEvent (QMouseEvent *event)
 
virtual void mousePressEvent (QMouseEvent *event)
 
virtual void mouseReleaseEvent (QMouseEvent *event)
 
virtual void moveEvent (QMoveEvent *event)
 
virtual void paintEvent (QPaintEvent *event)
 
virtual bool qwsEvent (QWSEvent *event)
 
int receivers (const char *signal) const
 
void resetInputContext ()
 
virtual void resizeEvent (QResizeEvent *event)
 
QObjectsender () const
 
int senderSignalIndex () const
 
virtual void showEvent (QShowEvent *event)
 
virtual void tabletEvent (QTabletEvent *event)
 
virtual void timerEvent (QTimerEvent *event)
 
void updateMicroFocus ()
 
virtual void wheelEvent (QWheelEvent *event)
 
virtual bool winEvent (MSG *message, long *result)
 
virtual bool x11Event (XEvent *event)
 

Static Protected Member Functions

QByteArray normalizeSignalSlot (const char *signalSlot)
 

Protected Attributes

QDateTime _eot
 
int _id
 
int _parentId
 
QString _parentType
 
QDateTime _prevEndDateTime
 
int _prevFrequency
 
int _prevMax
 
int _prevParentId
 
QString _prevParentType
 
RecurrencePeriod _prevPeriod
 
bool _prevRecurring
 
QDateTime _prevStartDateTime
 

Detailed Description

The RecurrenceWidget gives the user a unified interface for telling the system how often certain events occur.

In general recurrences are stored in the recur table, but this is not required. Two basic values describe a recurrence:

A recurrence with the period set to W (= week) and frequency of 3 will repeat once every three weeks.

To add a new kind of recurring event or item, you need to change data in the database, stored procedures, triggers, and application code. We'll use Invoice in the examples here, with 'I' as the internal code value, even though invoices already use this mechanism (xTuple ERP 3.5.1 and later).

Add a column to the parent table to track the recurrence parent/child relationship. The column name must follow this pattern: [tablename]_recurring_[tablename]_id , e.g. invchead_recurring_invchead_id :

ALTER TABLE invchead ADD COLUMN invchead_recurring_invchead_id INTEGER;
COMMENT ON COLUMN invchead.invchead_recurring_invchead_id IS 'The first invchead record in the series if this is a recurring Invoice. If the invchead_recurring_invchead_id is the same as the invchead_id, this record is the first in the series.';

Add a RecurrenceWidget to the .ui for the window that will maintain data of this type (e.g. invoice.ui).

Initialize the widget in the window's constructor:

_recur->setParent(-1, 'I');

Update the widget again when the window gets an id for the object. This usually happens in either the set(), save(), or sSave() method for new objects, depending on the class, and in populate() when editing existing objects:

// cNew case in invoice::set()
_recur->setParent(_invcheadid, 'I');
...
// invoice::populate()
_recur->setParent(q.value("invchead_recurring_invchead_id").toInt(), "I");

Ask the user how to handle existing recurrences before saving the data and before starting a transaction. getChangePolicy will return RecurrenceWidget::NoPolicy) if the user chooses to cancel. Then when preparing to insert or update the main record, make sure to set the recurrence parentage. Finally, after the insert/update, save the recurrence and check for errors:

bool %save()
{
// error checking
RecurrenceWidget::ChangePolicy cp = _recur->getChangePolicy();
return false;
XSqlQuery beginq("BEGIN;");
XSqlQuery qry;
...
// set up qry to insert or update
if (_recur->isRecurring())
qry.bindValue(":invchead_recurring_invchead_id", _recur->parentId());
...
// execute the insert/update
...
QString errmsg;
if (! _recur->save(true, cp, &errmsg))
{
rollbackq.exec();
systemError(this, errmsg, __FILE__, __LINE__);
return false;
}
...
// finish processing
XSqlQuery commitq("COMMIT;");
return true;
}

To maintain the recurrence relationships, there must be a function that copies an existing record based on its id and gives the copy a different timestamp or date. It must have a function signature like one of these:

  1. copy[tablename](INTEGER, TIMESTAMP WITH TIME ZONE)
  2. copy[tablename](INTEGER, TIMESTAMP WITHOUT TIME ZONE)
  3. copy[tablename](INTEGER, DATE)

The copy function can take additional arguments as well, but they will be ignored by the recurrence maintenance functions. The data type of each argument must be listed in the recurtype table's recurtype_copyargs column (see below) so the appropriate casting can be done for the date or timestamp and an appropriate number of NULL arguments can be passed. The copy function must copy the [tablename]_recurring_[tablename]_id column.

There can be a function to delete records of this type as well. If there is one, it must accept a single integer id of the record to delete.

Add a row to the recurtype table to describe how the recurrence stored procedures interact with the events/items of this type ('I' == Invoice).

INSERT INTO recurtype (recurtype_type, recurtype_table, recurtype_donecheck,
recurtype_schedcol, recurtype_limit,
recurtype_copyfunc, recurtype_copyargs, recurtype_delfunc
) VALUES ('I', 'invchead', 'invchead_posted',
'invchead_invcdate', NULL,
'copyinvoice', '{integer,date}', 'deleteinvoice');

If there isn't a delete function, set the recurtype_delfunc to NULL. Existing records will be deleted when necessary with an SQL DELETE statement.

The DELETE trigger on the table should clean up the recurrence information:

CREATE OR REPLACE FUNCTION _invcheadBeforeTrigger() RETURNS "trigger" AS $$
DECLARE
_recurid INTEGER;
_newparentid INTEGER;
BEGIN
IF (TG_OP = 'DELETE') THEN
-- after other stuff not having to do with recurrence
SELECT recur_id INTO _recurid
FROM recur
WHERE ((recur_parent_id=OLD.invchead_id)
AND (recur_parent_type='I'));
IF (_recurid IS NOT NULL) THEN
SELECT invchead_id INTO _newparentid
FROM invchead
WHERE ((invchead_recurring_invchead_id=OLD.invchead_id)
AND (invchead_id!=OLD.invchead_id))
ORDER BY invchead_invcdate
LIMIT 1;
IF (_newparentid IS NULL) THEN
DELETE FROM recur WHERE recur_id=_recurid;
ELSE
UPDATE recur SET recur_parent_id=_newparentid
WHERE recur_id=_recurid;
UPDATE invchead SET invchead_recurring_invchead_id=_newparentid
WHERE invchead_recurring_invchead_id=OLD.invchead_id
AND invchead_id!=OLD.invchead_id;
END IF;
END IF;
RETURN OLD;
END IF;
RETURN NEW;
END;
$$ LANGUAGE 'plpgsql';
Todo:
Simplify this so the developer of a new recurring item/event doesn't have to work so hard. There should be a way to (1) have the recurrence widget update the [tablename]_recurring_[tablename]_id column when saving the recurrence (this would save a couple of lines) and (2) there should be a way to simplify or eliminate the code in the DELETE triggers. Some of this stuff really belongs in an AFTER trigger instead of a before trigger.
See also
_invcheadBeforeTrigger
copyInvoice
createRecurringItems
deleteInvoice
deleteOpenRecurringItems
invoice
openRecurringItems
recur
recurtype
splitRecurrence

Member Enumeration Documentation

Enumerator
NoPolicy 
IgnoreFuture 
ChangeFuture 
Enumerator
Never 
Minutely 
Hourly 
Daily 
Weekly 
Monthly 
Yearly 
Custom 

Property Documentation

bool RecurrenceWidget::endDateVisible
readwrite

Return whether the end date field is visible.

bool RecurrenceWidget::endTimeVisible
readwrite

Return whether the end time field is visible.

bool RecurrenceWidget::maxVisible
readwrite
RecurrenceWidget::RecurrencePeriod RecurrenceWidget::minPeriod
readwrite
bool RecurrenceWidget::startDateVisible
readwrite
bool RecurrenceWidget::startTimeVisible
readwrite

Constructor & Destructor Documentation

RecurrenceWidget::RecurrenceWidget ( QWidget parent = 0,
const char *  name = 0 
)
RecurrenceWidget::~RecurrenceWidget ( )

Member Function Documentation

void RecurrenceWidget::clear ( )
virtualslot

Set the RecurrenceWidget to its default state.

QDate RecurrenceWidget::endDate ( ) const
virtual

Return the date the recurrence is set to end.

QDateTime RecurrenceWidget::endDateTime ( ) const
virtual

Return the date and time the recurrence is set to end.

virtual Q_INVOKABLE bool RecurrenceWidget::endDateVisible ( ) const
virtual
QTime RecurrenceWidget::endTime ( ) const
virtual

Return the time of day the recurrence is set to end.

virtual Q_INVOKABLE bool RecurrenceWidget::endTimeVisible ( ) const
virtual
int RecurrenceWidget::frequency ( ) const
virtual

Return the frequency (number of periods) the recurrence is set to run.

RecurrenceWidget::RecurrenceChangePolicy RecurrenceWidget::getChangePolicy ( )
virtual
bool RecurrenceWidget::isRecurring ( ) const
virtual
void RecurrenceWidget::languageChange ( )
protectedvirtualslot
int RecurrenceWidget::max ( ) const
virtual
virtual bool RecurrenceWidget::maxVisible ( ) const
virtual
virtual Q_INVOKABLE RecurrencePeriod RecurrenceWidget::minPeriod ( ) const
virtual
bool RecurrenceWidget::modified ( ) const
virtual
int RecurrenceWidget::parentId ( ) const
virtual
QString RecurrenceWidget::parentType ( ) const
virtual
RecurrenceWidget::RecurrencePeriod RecurrenceWidget::period ( ) const
virtual
QString RecurrenceWidget::periodCode ( ) const
virtual
void Ui_RecurrenceWidget::retranslateUi ( QWidget RecurrenceWidget)
inlineinherited
void Ui_RecurrenceWidget::retranslateUi ( QWidget RecurrenceWidget)
inlineinherited
bool RecurrenceWidget::save ( bool  intxn,
RecurrenceChangePolicy  cp,
QString msg = 0 
)
virtualslot
void RecurrenceWidget::set ( bool  recurring = false,
int  frequency = 1,
QString  period = QString("W"),
QDate  startDate = QDate::currentDate(),
QDate  endDate = QDate(),
int  max = 1 
)
virtualslot
void RecurrenceWidget::set ( bool  recurring,
int  frequency,
QString  period,
QDateTime  startDateTime,
QDateTime  endDateTime,
int  max 
)
virtualslot
void RecurrenceWidget::setEndDate ( QDate  p)
virtualslot
void RecurrenceWidget::setEndDateTime ( QDateTime  p)
virtualslot
void RecurrenceWidget::setEndDateVisible ( bool  p)
virtualslot
void RecurrenceWidget::setEndTime ( QTime  p)
virtualslot
void RecurrenceWidget::setEndTimeVisible ( bool  p)
virtualslot
void RecurrenceWidget::setFrequency ( int  p)
virtualslot
void RecurrenceWidget::setMax ( int  p)
virtualslot
void RecurrenceWidget::setMaxVisible ( bool  p)
virtualslot
void RecurrenceWidget::setMinPeriod ( RecurrencePeriod  minPeriod)
virtualslot
bool RecurrenceWidget::setParent ( int  pid,
QString  ptype 
)
virtualslot
void RecurrenceWidget::setPeriod ( RecurrencePeriod  p)
virtualslot
void RecurrenceWidget::setPeriod ( QString  p)
virtualslot
void RecurrenceWidget::setRecurring ( bool  p)
virtualslot
void RecurrenceWidget::setStartDate ( QDate  p)
virtualslot
void RecurrenceWidget::setStartDateTime ( QDateTime  p)
virtualslot
void RecurrenceWidget::setStartDateVisible ( bool  p)
virtualslot
void RecurrenceWidget::setStartTime ( QTime  p)
virtualslot
void RecurrenceWidget::setStartTimeVisible ( bool  p)
virtualslot
void Ui_RecurrenceWidget::setupUi ( QWidget RecurrenceWidget)
inlineinherited
QDate RecurrenceWidget::startDate ( ) const
virtual
QDateTime RecurrenceWidget::startDateTime ( ) const
virtual
virtual bool RecurrenceWidget::startDateVisible ( ) const
virtual
QTime RecurrenceWidget::startTime ( ) const
virtual
virtual Q_INVOKABLE bool RecurrenceWidget::startTimeVisible ( ) const
virtual
RecurrenceWidget::RecurrencePeriod RecurrenceWidget::stringToPeriod ( QString  p) const
virtual

Convert a string representation of the period to a RecurrencePeriod.

This is used to convert between the values stored in the recur table and the enumerated values used internally by the RecurrenceWidget. It also accepts human-readable values, such as "Minutes" and "Hours".

Parameters
pThe recur_period or human-readable period name to convert. This is case-sensitive. Currently accepted values are m or Minutes, H or Hours, D or Days, W or Weeks, M or Months, Y or Years, C or Custom. If current translation includes the period names, the translations are also accepted.
Returns
The RecurrencePeriod that matches the input or Never if no match was found.

Member Data Documentation

DateCluster * Ui_RecurrenceWidget::_dates
inherited
QTimeEdit * Ui_RecurrenceWidget::_endTime
inherited
QDateTime RecurrenceWidget::_eot
protected
XSpinBox * Ui_RecurrenceWidget::_frequency
inherited
QLabel * Ui_RecurrenceWidget::_frequencyLit
inherited
QSpacerItem * Ui_RecurrenceWidget::_hspacer
inherited
int RecurrenceWidget::_id
protected
XSpinBox * Ui_RecurrenceWidget::_max
inherited
XLabel * Ui_RecurrenceWidget::_maxLit
inherited
int RecurrenceWidget::_parentId
protected
QString RecurrenceWidget::_parentType
protected
XComboBox * Ui_RecurrenceWidget::_period
inherited
QDateTime RecurrenceWidget::_prevEndDateTime
protected
int RecurrenceWidget::_prevFrequency
protected
int RecurrenceWidget::_prevMax
protected
int RecurrenceWidget::_prevParentId
protected
QString RecurrenceWidget::_prevParentType
protected
RecurrencePeriod RecurrenceWidget::_prevPeriod
protected
bool RecurrenceWidget::_prevRecurring
protected
QDateTime RecurrenceWidget::_prevStartDateTime
protected
QGroupBox * Ui_RecurrenceWidget::_recurring
inherited
QTimeEdit * Ui_RecurrenceWidget::_startTime
inherited
QGridLayout * Ui_RecurrenceWidget::gridLayout
inherited
QGridLayout * Ui_RecurrenceWidget::gridLayout_2
inherited
QSpacerItem * Ui_RecurrenceWidget::verticalSpacer
inherited

The documentation for this class was generated from the following files:

Generated on Mon Dec 1 2014 xTuple ERP Programmer Reference, Version 4.8.0 doxygen 1.8.7