kmymoneycombo.h

Go to the documentation of this file.
00001 /***************************************************************************
00002                           kmymoneycombo.h  -  description
00003                              -------------------
00004     begin                : Mon Mar 12 2007
00005     copyright            : (C) 2007 by Thomas Baumgart
00006     email                : ipwizard@users.sourceforge.net
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017 
00018 #ifndef KMYMONEYCOMBO_H
00019 #define KMYMONEYCOMBO_H
00020 
00021 // ----------------------------------------------------------------------------
00022 // QT Includes
00023 
00024 #include <qtimer.h>
00025 #include <qmutex.h>
00026 
00027 // ----------------------------------------------------------------------------
00028 // KDE Includes
00029 
00030 #include <kcombobox.h>
00031 
00032 // ----------------------------------------------------------------------------
00033 // Project Includes
00034 
00035 #include <kmymoney/mymoneyutils.h>
00036 #include <kmymoney/mymoneysplit.h>
00037 #include <kmymoney/register.h>
00038 #include <kmymoney/mymoneyaccount.h>
00039 #include <kmymoney/transaction.h>
00040 #include <kmymoney/mymoneypayee.h>
00041 #include <kmymoney/mymoneytransactionfilter.h>
00042 #include <kmymoney/mymoneyscheduled.h>
00043 
00044 class kMyMoneyCompletion;
00045 class KMyMoneySelector;
00046 class kMyMoneyLineEdit;
00047 
00051 class KMyMoneyCombo : public KComboBox
00052 {
00053   Q_OBJECT
00054 public:
00055   KMyMoneyCombo(QWidget *w = 0, const char *name=0);
00056   KMyMoneyCombo(bool rw, QWidget *w = 0, const char *name=0);
00057 
00065   void setHint(const QString& hint) const;
00066 
00072   void setEditable(bool editable);
00073 
00079   kMyMoneyCompletion* completion(void) const;
00080 
00086   KMyMoneySelector* selector(void) const;
00087 
00091   void selectedItems(QStringList& list) const;
00092 
00103   void selectedItem(QString& id) const KDE_DEPRECATED;
00104 
00115   const QString& selectedItem(void) const { return m_id; }
00116 
00122   void setSelectedItem(const QString& id);
00123 
00128   bool isInArrowArea(const QPoint& pos) const;
00129 
00130   void setSuppressObjectCreation(bool suppress) { m_canCreateObjects = !suppress; }
00131 
00135   void setCurrentText(const QString& txt = QString()) { KComboBox::setCurrentText(txt); }
00136 
00140   void setPaletteBackgroundColor(const QColor& color);
00141 
00145   QSize sizeHint() const;
00146 
00147 protected slots:
00148   virtual void slotItemSelected(const QString& id);
00149 
00150 protected:
00154   void mousePressEvent(QMouseEvent *e);
00155 
00159   void keyPressEvent(QKeyEvent *e);
00160 
00164   void paintEvent(QPaintEvent *);
00165 
00169   void focusOutEvent(QFocusEvent* );
00170 
00174   virtual void setCurrentTextById(const QString& id);
00175 
00179   void connectNotify(const char* signal);
00180 
00184   void disconnectNotify(const char* signal);
00185 
00186 protected:
00190   kMyMoneyCompletion*    m_completion;
00191 
00195   kMyMoneyLineEdit*      m_edit;
00196 
00200   QString                m_id;
00201 
00202 signals:
00203   void itemSelected(const QString& id);
00204   void objectCreation(bool);
00205   void createItem(const QString&, QString&);
00206 
00207 private:
00208   QTimer                 m_timer;
00209   QMutex                 m_focusMutex;
00214   bool                   m_canCreateObjects;
00215 
00219   bool                   m_inFocusOutEvent;
00220 };
00221 
00227 class KMyMoneyReconcileCombo : public KMyMoneyCombo
00228 {
00229   Q_OBJECT
00230 public:
00231   KMyMoneyReconcileCombo(QWidget *w = 0, const char *name=0);
00232 
00233   void setState(MyMoneySplit::reconcileFlagE state);
00234   MyMoneySplit::reconcileFlagE state(void) const;
00235   void removeDontCare(void);
00236 
00237 protected slots:
00238   void slotSetState(const QString&);
00239 };
00240 
00248 class KMyMoneyComboAction : public KMyMoneyCombo
00249 {
00250   Q_OBJECT
00251 public:
00252   KMyMoneyComboAction(QWidget *w = 0, const char *name=0);
00253 
00254   void setAction(int state);
00255   int action(void) const;
00256   void protectItem(int id, bool protect);
00257 
00258 protected slots:
00259   void slotSetAction(const QString&);
00260 
00261 signals:
00262   void actionSelected(int);
00263 };
00264 
00270 class KMyMoneyCashFlowCombo : public KMyMoneyCombo
00271 {
00272   Q_OBJECT
00273 public:
00278   KMyMoneyCashFlowCombo(QWidget *w = 0, const char *name=0, MyMoneyAccount::accountTypeE type = MyMoneyAccount::Asset);
00279 
00280   void setDirection(KMyMoneyRegister::CashFlowDirection dir);
00281   KMyMoneyRegister::CashFlowDirection direction(void) const { return m_dir; }
00282   void removeDontCare(void);
00283 
00284 protected slots:
00285   void slotSetDirection(const QString& id);
00286 
00287 signals:
00288   void directionSelected(KMyMoneyRegister::CashFlowDirection);
00289 
00290 private:
00291   KMyMoneyRegister::CashFlowDirection   m_dir;
00292 };
00293 
00299 class KMyMoneyActivityCombo : public KMyMoneyCombo
00300 {
00301   Q_OBJECT
00302 public:
00306   KMyMoneyActivityCombo(QWidget *w = 0, const char *name=0);
00307 
00308   void setActivity(MyMoneySplit::investTransactionTypeE activity);
00309   MyMoneySplit::investTransactionTypeE activity(void) const { return m_activity; }
00310 
00311 protected slots:
00312   void slotSetActivity(const QString& id);
00313 
00314 signals:
00315   void activitySelected(MyMoneySplit::investTransactionTypeE);
00316 
00317 private:
00318   MyMoneySplit::investTransactionTypeE  m_activity;
00319 };
00320 
00338 class KMyMoneyPayeeCombo : public KMyMoneyCombo
00339 {
00340    Q_OBJECT
00341 public:
00342   KMyMoneyPayeeCombo(QWidget* parent = 0, const char* name = 0);
00343 
00344   void loadPayees(const QValueList<MyMoneyPayee>& list);
00345 };
00346 
00347 class KMyMoneyGeneralCombo : public KComboBox
00348 {
00349   Q_OBJECT
00350 public:
00351   KMyMoneyGeneralCombo(QWidget* parent = 0, const char* name = 0);
00352   virtual ~KMyMoneyGeneralCombo();
00353 
00354   void insertItem(const QString& txt, int id, int idx = -1);
00355 
00356   void setItem(int id) KDE_DEPRECATED;  // replace with setCurrentItem(id)
00357   int item(void) const KDE_DEPRECATED;  // replace with currentItem()
00358 
00359   void setCurrentItem(int id);
00360   int currentItem(void) const;
00361 
00362   void removeItem(int id);
00363 
00364 public slots:
00365   void clear(void);
00366 
00367 signals:
00368   void itemSelected(int id);
00369 
00370 protected:
00371   // prevent the caller to use the standard KComboBox insertItem function with a default idx
00372   void insertItem(const QString&);
00373 
00374 protected slots:
00375   void slotChangeItem(int idx);
00376 
00377 private:
00379   class Private;
00381   Private* const d;
00382 };
00383 
00384 
00389 class KMyMoneyPeriodCombo : public KMyMoneyGeneralCombo
00390 {
00391   Q_OBJECT
00392 public:
00393   KMyMoneyPeriodCombo(QWidget* parent = 0, const char* name = 0);
00394 
00395   MyMoneyTransactionFilter::dateOptionE currentItem(void) const;
00396   void setCurrentItem(MyMoneyTransactionFilter::dateOptionE id);
00397 
00403   static QDate start(MyMoneyTransactionFilter::dateOptionE id);
00404 
00410   static QDate end(MyMoneyTransactionFilter::dateOptionE id);
00411 
00412   // static void dates(QDate& start, QDate& end, MyMoneyTransactionFilter::dateOptionE id);
00413 };
00414 
00421 class KMyMoneyOccurenceCombo : public KMyMoneyGeneralCombo
00422 {
00423   Q_OBJECT
00424 public:
00425   KMyMoneyOccurenceCombo(QWidget* parent = 0, const char* name = 0);
00426 
00427   MyMoneySchedule::occurenceE currentItem(void) const;
00428 };
00429 
00435 class KMyMoneyOccurencePeriodCombo : public KMyMoneyOccurenceCombo
00436 {
00437   Q_OBJECT
00438 public:
00439   KMyMoneyOccurencePeriodCombo(QWidget* parent = 0, const char* name = 0);
00440 };
00441 
00446 class KMyMoneyFrequencyCombo : public KMyMoneyOccurenceCombo
00447 {
00448   Q_OBJECT
00449 public:
00450   KMyMoneyFrequencyCombo(QWidget* parent = 0, const char* name = 0);
00451 
00458   int eventsPerYear(void) const;
00464   int daysBetweenEvents(void) const;
00465 };
00466 
00467 #endif

Generated on Wed Jan 26 13:03:17 2011 for KMyMoney by  doxygen 1.5.6