kmymoneycombo.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef KMYMONEYCOMBO_H
00019 #define KMYMONEYCOMBO_H
00020
00021
00022
00023
00024 #include <qtimer.h>
00025 #include <qmutex.h>
00026
00027
00028
00029
00030 #include <kcombobox.h>
00031
00032
00033
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;
00357 int item(void) const KDE_DEPRECATED;
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
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
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