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 }