00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef ZSAFE_H
00015 #define ZSAFE_H
00016
00017 #include <stdio.h>
00018
00019 #include "infoform.h"
00020 #include "categorylist.h"
00021 #include "shadedlistitem.h"
00022
00023 #include <qmainwindow.h>
00024
00025 #include <qvariant.h>
00026 #include <qdialog.h>
00027 #include <qwidgetstack.h>
00028 #include <qtimer.h>
00029
00030 class QVBoxLayout;
00031 class QHBoxLayout;
00032 class QGridLayout;
00033 class ZListView;
00034 class QListViewItem;
00035 class QToolButton;
00036 class QTextBrowser;
00037 class QPopupMenu;
00038 #ifdef DESKTOP
00039
00040 class QSettings;
00041
00042 #else
00043 class Config;
00044 #endif
00045 class CategoryDialog;
00046 class QPixmap;
00047
00048
00049 #define FIELD_SIZE 7
00050
00051 class ZSafe : public QMainWindow
00052 {
00053 Q_OBJECT
00054
00055 protected:
00056 void paintEvent( QPaintEvent * e );
00057
00058 bool raiseFlag;
00059 QTimer raiseTimer;
00060
00061 public:
00062 ZSafe( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
00063 ~ZSafe();
00064 static QString appName() { return QString::fromLatin1( QUICKAPP_NAME ); }
00065
00066 static const QColor *evenRowColor;
00067 static const QColor *oddRowColor;
00068
00069 ZListView* ListView;
00070
00071 QString cfgFile;
00072 QString iconPath;
00073
00074 InfoForm *infoForm;
00075 CategoryDialog *categoryDialog;
00076
00077 QListViewItem *selectedItem;
00078 QListViewItem *copiedItem;
00079 bool IsCopy;
00080 bool IsCut;
00081 bool modified;
00082 bool showpwd;
00083
00084 QListViewItem *lastSearchedCategory;
00085 QListViewItem *lastSearchedItem;
00086 QString lastSearchedName;
00087 QString lastSearchedUsername;
00088 QString lastSearchedComment;
00089
00090
00091 CategoryList categories;
00092
00093 bool isCategory(QListViewItem *_item);
00094 void getDocPassword(QString title);
00095 QString filename;
00096
00097 enum {
00098 PWERR_GOOD,
00099 PWERR_OPEN,
00100 PWERR_PERM,
00101 PWERR_SYML,
00102 PWERR_STAT,
00103 PWERR_DATA
00104 };
00105
00106 long load_buffer_length;
00107 long save_buffer_length;
00108
00110 QString m_password;
00112 int lastcount, size;
00114 FILE *fd;
00115 unsigned short iv[4];
00116 char *buffer;
00118 int bufferIndex;
00119 unsigned short plaintext[4];
00120
00121 #ifdef DESKTOP
00122
00123 QSettings *conf;
00124
00125 #else
00126 Config *conf;
00127 #endif
00128 bool expandTree;
00129 QPopupMenu *file;
00130
00131 QTimer docuTimer;
00132
00133
00134 bool openDocument(const char* filename, const char* format=0);
00135 int loadInit(const char* filename, const char *password);
00136 int loadEntry(char *entry[4]);
00137 int loadFinalize(void);
00138 bool saveDocument(const char* filename, bool withPwd, const char* format=0);
00139 int saveInit(const char *filename, const char *password);
00140 int saveEntry(char *entry[4]);
00141 int saveFinalize(void);
00142 void saveConf();
00143 QPixmap * getPredefinedIcon(QString category);
00144 QString getFieldLabel (QListViewItem *_item, QString field, QString def);
00145 QString getFieldLabel (QString category, QString field, QString def);
00146 void setCategoryDialogFields(CategoryDialog *dialog);
00147 void setCategoryDialogFields(CategoryDialog *dialog, QString category);
00148 void saveCategoryDialogFields(CategoryDialog *dialog);
00149
00150
00151 void resume(int signum);
00152 void exitZs (int ec);
00153
00154 QString zsaveDialog();
00155
00156 public slots:
00157 virtual void deletePwd();
00158 virtual void editPwd();
00159 virtual void newPwd();
00160 virtual void findPwd();
00161 virtual void quitMe();
00162 virtual void listViewSelected( QListViewItem *_item);
00163 virtual void showInfo( QListViewItem *_item);
00164 virtual void writeAllEntries();
00165 virtual void readAllEntries();
00166 virtual void removeAsciiFile();
00167 virtual void setPasswordDialogDone();
00168
00169 virtual void addCategory();
00170 virtual void delCategory();
00171 virtual void editCategory();
00172 virtual void cutItem();
00173 virtual void copyItem();
00174 virtual void pasteItem();
00175
00176 virtual void newDocument();
00177 virtual void loadDocument();
00178 virtual void saveDocumentAs();
00179 virtual void saveDocumentWithoutPwd();
00180 virtual void saveDocumentWithPwd();
00181 virtual void setExpandFlag();
00182
00183 virtual void categoryFieldActivated( const QString& str);
00184
00185 virtual void ListPressed(int, QListViewItem *, const QPoint&, int);
00186 virtual void copyClip( const QString &text);
00187
00188 private slots:
00189 void setDocument(const QString& fileref);
00190 void slotLoadDocu();
00191 void slotRaiseTimer();
00192
00193 };
00194
00195 #endif // ZSAFE_H