00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef ReadWriteFormBase_h
00018 #define ReadWriteFormBase_h
00019 #include <readonlyformbase.h>
00020 #include <qmainwindow.h>
00021 #include <qevent.h>
00022 #include <qtimer.h>
00023
00024 class QSqlCursor;
00025 class QAction;
00026 class FillLinkListBox;
00027
00041 class ReadWriteFormBase: public ReadOnlyFormBase {
00042 Q_OBJECT
00043
00044 private:
00045 ReadWriteFormBase(const ReadWriteFormBase&);
00046 ReadWriteFormBase& operator=(const ReadWriteFormBase&);
00047 bool rec_is_locked;
00048 bool valid;
00049
00052 virtual void lockGui();
00055 virtual void unlockGui();
00058 void customEvent(QCustomEvent *e);
00060 virtual bool lockRec();
00063 virtual void unlockRec();
00064
00065 protected:
00066 QToolBar *rwtoolbar;
00067 QPtrList<FillLinkListBox> threads;
00068 QTimer threadtimer;
00072 virtual bool setData();
00073 virtual void initToolBar();
00074 QAction *writeAction;
00075 QAction *deleteAction;
00076 void waitForThreads();
00077
00078 public:
00079 ReadWriteFormBase(LitUrl u, QObject *receiver, QString slot, QWidget *parent=0, const char *name=0);
00082 ~ReadWriteFormBase();
00083 bool threadsFinished();
00084
00085 protected slots:
00086 virtual void setWorkingGui(bool work);
00087 virtual void setReadonlyGui(bool ro);
00088 virtual void setInvalidGui(bool inv);
00089
00090 public slots:
00091 void checkThreads();
00092 virtual void copy();
00093 virtual void cut();
00094 virtual void paste();
00097 virtual void write();
00100 virtual void deleteRec();
00101 void createLink(LitUrl obj1, LitUrl obj2);
00102 void deleteLink(LitUrl obj1, LitUrl obj2);
00103 void createPublicationAuthor(LitUrl publ, LitUrl author);
00104 void deletePublicationAuthor(LitUrl publ, LitUrl author);
00105 void createPartAuthor(LitUrl part, LitUrl author);
00106 void deletePartAuthor(LitUrl part, LitUrl author);
00107 void createProjectBibliography(LitUrl pr, LitUrl pub);
00108 void deleteProjectBibliography(LitUrl pr, LitUrl pub);
00109 void newNote(LitUrl obj);
00110 };
00111
00112 #endif