00001 #ifndef ACCOUNTSTABLEDIALOG_H 00002 #define ACCOUNTSTABLEDIALOG_H 00003 00004 #include <QDomDocument> 00005 #include <QDomElement> 00006 #include <QMessageBox> 00007 class Settings; 00008 #include "ui_AccountsTableDialog.h" 00009 #include "../Models/accountstablemodel.h" 00010 #include "../Models/accountstablefiltermodel.h" 00011 00012 class AccountsTableDialog : public QDialog, private Ui::AccountsTableDialog 00013 { 00014 Q_OBJECT 00015 00016 public: 00017 AccountsTableDialog(const QString &path, Settings &settings, QWidget *parent = 0); 00018 00019 private: 00020 void createActions(); 00021 00022 void newTableOfAccounts(); 00023 void loadTableOfAccounts(); 00024 00025 void initializeControlsAndSetupModel(); 00026 00027 void addAccount(); 00028 void editAccount(); 00029 00030 void switchInputModeToAdding(); 00031 void switchInputModeToEditing(); 00032 00033 void clearControls(); 00034 00035 AccountsTableModel *model; 00036 AccountsTableFilterModel *filterModel; 00037 00038 QAction *deleteAction; 00039 QAction *editAction; 00040 00041 Settings *settings; 00042 QString pathToTableOfAccounts; 00043 00044 bool editing; 00045 00046 private slots: 00047 void editEntry(); 00048 void addEditAccount(); 00049 void removeEntry(); 00050 void saveTableOfAccounts(); 00051 void close(); 00052 00053 signals: 00054 void tableOfAccountsCreated(QString); 00055 }; 00056 00057 #endif // ACCOUNTSTABLEDIALOG_H