00001 #include <QMessageBox> 00002 00003 #include "newdocumentdialog.h" 00004 #include "../Data/project.h" 00005 #include "../Data/settings.h" 00006 00007 NewDocumentDialog::NewDocumentDialog(Settings &settings, QWidget *parent) : QDialog(parent) 00008 { 00009 setupUi(this); 00010 setAttribute(Qt::WA_DeleteOnClose, true); 00011 00012 this->settings = &settings; 00013 00014 connect(buttonOk, SIGNAL(clicked()), this, SLOT(ok())); 00015 connect(buttonCancel, SIGNAL(clicked()), this, SLOT(cancel())); 00016 00017 listWidgetDocumentTypes->setCurrentRow(0); 00018 } 00019 00020 void NewDocumentDialog::ok() 00021 { 00022 if(listWidgetDocumentTypes->currentItem() != NULL) 00023 { 00024 if(textDocumentName->text() != QString() && !checkIfFileExists(textDocumentName->text())) 00025 { 00026 switch(listWidgetDocumentTypes->currentRow()) 00027 { 00028 case FileType::Task: 00029 { 00030 emit createFile(FileType::Task, textDocumentName->text()); 00031 break; 00032 } 00033 case FileType::Exercise: 00034 { 00035 emit createFile(FileType::Exercise, textDocumentName->text()); 00036 break; 00037 } 00038 case FileType::TableOfAccounts: 00039 { 00040 emit createFile(FileType::TableOfAccounts, textDocumentName->text()); 00041 break; 00042 } 00043 default: 00044 { 00045 QMessageBox::critical(this, tr("Fehler"), tr("Es trat ein Fehler beim Öffnen des Dokumentes auf - Der Fenstertyp ist nicht verfügbar!")); 00046 break; 00047 } 00048 } 00049 done(QDialog::Accepted); 00050 } 00051 else 00052 { 00053 QMessageBox::critical(this, tr("Fehler"), tr("Ein Dokument mit diesem Namen existiert bereits! Bitte wählen Sie einen anderen Dateinamen!")); 00054 } 00055 } 00056 else 00057 { 00058 QMessageBox::critical(this, tr("Fehler"), tr("Sie müssen bevor Sie ein Dokument erstellen können den Typ auswählen!")); 00059 } 00060 } 00061 00062 void NewDocumentDialog::cancel() 00063 { 00064 done(QDialog::Rejected); 00065 } 00066 00067 bool NewDocumentDialog::checkIfFileExists(QString name) 00068 { 00069 QString extension = ""; 00070 switch(listWidgetDocumentTypes->currentRow()) 00071 { 00072 case FileType::Task: 00073 { 00074 extension = ".dbka"; 00075 break; 00076 } 00077 case FileType::Exercise: 00078 { 00079 extension = ".dbku"; 00080 break; 00081 } 00082 case FileType::TableOfAccounts: 00083 { 00084 extension = ".dbkk"; 00085 break; 00086 } 00087 } 00088 return QFileInfo(settings->workspace().absolutePath() + QDir::separator() + name + extension).exists(); 00089 }