Projects/ds4clonerestore/ds4clonerestore/src/ds4clonerestore.cpp

00001 /******************************************************
00002 * DS4 Clone-Restore
00003 *
00004 * DS4 Laser Technology srl
00005 *
00006 * author: Carsana Francesco <francescocarsana@ds4.it>
00007 *******************************************************/
00008 
00009 
00010 #include "ds4clonerestore.h"
00011 
00012 
00013 DS4CloneRestore::DS4CloneRestore(QWidget* parent, const char* name, WFlags fl)
00014         : mainDlg(parent,name,fl)
00015 {
00016     cloneEnabled = FALSE; // clone disabilitato
00017     revMounted = FALSE; // Rev smontato
00018     serverMounted = FALSE; // directory condivisa sul server smontata
00019 }
00020 
00021 
00022 DS4CloneRestore::~DS4CloneRestore()
00023 {
00024     Close(); // chiudo l'applicazione
00025 }
00026 
00027 
00028 void DS4CloneRestore::Init(bool cloneVersion, const char version[])
00029 {
00030     this->setCaption(this->caption() + version); // Inizializzo la caption del programma: nome + versione
00031 
00032     cloneEnabled = cloneVersion;
00033 
00034     if (cloneEnabled) // se il Clone è abilitato
00035     {
00036         cloneWin = new Clone(this,"Clone",TRUE); // creo la finestra Clone
00037     }
00038     else
00039     {
00040         btnClone->setEnabled(FALSE);
00041         btnClone->hide(); // nascondo il pulsante Clone
00042         lblClone->setEnabled(FALSE);
00043         lblClone->hide(); // nascondo la label Clone
00044 
00045         // sposto pulsante e label Restore in alto (al posto di quelli di Clone)
00046         btnRestore->move(btnRestore->x(), btnRestore->y() - 120);
00047         lblRestore->move(lblRestore->x(), lblRestore->y() - 120);
00048 
00049         // sposto pulsante e label Rev Manager in alto (al posto di quelli di Restore)
00050         btnRevManager->move(btnRevManager->x(), btnRevManager->y() - 120);
00051         lblRevManager->move(lblRevManager->x(), lblRevManager->y() - 120);
00052         
00053         // sposto pulsante e label Configuration in alto (al posto di quelli di Rev Manager)
00054         btnConfiguration->move(btnConfiguration->x(), btnConfiguration->y() - 120);
00055         lblNetManager->move(lblNetManager->x(), lblNetManager->y() - 120);
00056 
00057         // Diminuisco la dimensione della finestra
00058         this->setMinimumSize( QSize( this->width(), this->height() - 120 ) );
00059         this->setMaximumSize( QSize( this->width(), this->height() - 120 ) );
00060         this->setSizeIncrement( QSize( 0, 0 ) );
00061         this->setBaseSize( QSize( this->width(), this->height() - 120 ) );
00062     }
00063     restoreWin = new Restore(this,"Restore",TRUE); // creo la finestra Restore
00064     revManagerWin = new RevManager(this,"RevManager",TRUE); // creo la finestra Rev Manager
00065     configurationWin = new Configuration(this,"Configuration",TRUE); // creo la finestra Network Manager
00066 
00067     revMounted = MountRev(); // monto il Rev
00068     serverMounted = MountServer(); // monto la directory condivisa sul server
00069 }
00070 
00071 
00072 void DS4CloneRestore::btnClone_clicked()
00073 {
00074     if (!cloneEnabled) // se il clone è disabilitato
00075         return;
00076 
00077     cloneWin->Init(&revMounted); // inizializzo la finestra di clone
00078 
00079     CenterWindow(this,cloneWin); // centro la finestra rispetto al main
00080 
00081     this->setEnabled(FALSE); // disabilito il main
00082     cloneWin->setEnabled(TRUE); // abilito la finestra clone
00083     cloneWin->show(); // visualizzo la finestra clone
00084 }
00085 
00086 
00087 void DS4CloneRestore::btnRestore_clicked()
00088 {
00089     restoreWin->Init(&revMounted,&serverMounted); // inizializzo la finestra di restore
00090 
00091     CenterWindow(this,restoreWin); // centro la finestra rispetto al main
00092 
00093     this->setEnabled(FALSE); // disabilito il main
00094     restoreWin->setEnabled(TRUE); // abilito la finestra restore
00095     restoreWin->show(); // visualizzo la finestra restore
00096 }
00097 
00098 
00099 void DS4CloneRestore::btnRevManager_clicked()
00100 {
00101     revManagerWin->Init(&revMounted); // inizializzo la finestra di gestione Rev
00102 
00103     CenterWindow(this,revManagerWin); // centro la finestra rispetto al main
00104 
00105     this->setEnabled(FALSE); // disabilito il main
00106     revManagerWin->setEnabled(TRUE); // abilito la finestra di gestione Rev
00107     revManagerWin->show(); // visualizzo la finestra di gestione Rev
00108 }
00109 
00110 void DS4CloneRestore::btnConfiguration_clicked()
00111 {
00112     configurationWin->Init(); // inizializzo la finestra di configurazione della rete
00113 
00114     CenterWindow(this,configurationWin); // centro la finestra rispetto al main
00115 
00116     this->setEnabled(FALSE); // disabilito il main
00117     configurationWin->setEnabled(TRUE); // abilito la finestra di configurazione della rete
00118     configurationWin->show(); // visualizzo la finestra di configurazione della rete
00119 }
00120 
00121 
00122 void DS4CloneRestore::closeEvent (QCloseEvent *e)
00123 {
00124     if (this->isEnabled()) // se è aperta solo il widget principale
00125     {
00126         e->accept(); // accetto l'evento di chiusura
00127         Close(); // chiudo l'applicazione
00128     }
00129     else // se una delle tre finestre di clone, restore o rev manager è aperta
00130     {
00131         e->ignore(); // ignoro l'evento di chiusura
00132     }
00133 }
00134 
00135 
00136 void DS4CloneRestore::Close()
00137 {
00138     if (cloneEnabled) // se il Clone è abilitato
00139     {
00140         delete cloneWin;
00141         cloneWin = NULL;
00142     }
00143     delete restoreWin;
00144     restoreWin = NULL;
00145     delete revManagerWin;
00146     revManagerWin = NULL;
00147     delete configurationWin;
00148     configurationWin = NULL;
00149 
00150     if (revMounted == TRUE) // se il Rev è montato
00151         UmountRev(); // lo smonto
00152     if (serverMounted == TRUE) // se la directory condivisa sul server è montata
00153         UmountServer(); // la smonto
00154 }
00155 
00156 
00157 
00158 #include "ds4clonerestore.moc"

Generato il Wed Jun 13 18:59:37 2007 per DS4CloneRestore da  doxygen 1.5.2