[doc_tool] Added ability to mark all chapters at once as done.
authorDaniel G <daniel@giritzer.eu>
Wed, 18 Jul 2018 13:49:53 +0000 (15:49 +0200)
committerDaniel G <daniel@giritzer.eu>
Wed, 18 Jul 2018 13:49:53 +0000 (15:49 +0200)
Code cleanup (pass by const ref for all functions using std::string)

21 files changed:
src/Author.h
src/ChapterFactory.cxx
src/ChapterFactory.h
src/ChapterIF.h
src/Controller.cxx
src/Controller.h
src/ControllerIF.h
src/DoxygenChapter.h
src/FSHelper.cxx
src/FSHelper.h
src/Model.cxx
src/Model.h
src/ModelIF.h
src/SourceChapter.h
src/TextChapter.h
src/View.cxx
src/View.h
src/ViewFluid.cxx
src/ViewFluid.fld
src/ViewFluid.h
src/doc_tool.depend

index 1dab21e..61444ad 100644 (file)
@@ -49,7 +49,7 @@ public:
     {
         return mName;
     }
-    void SetName(std::string val)
+    void SetName(const std::string &val)
     {
         mName = val;
     }
@@ -57,7 +57,7 @@ public:
     {
         return mTimeEstimated;
     }
-    void SetTimeEstimated(std::string val)
+    void SetTimeEstimated(const std::string &val)
     {
         mTimeEstimated = val;
     }
@@ -65,7 +65,7 @@ public:
     {
         return mTimeSpent;
     }
-    void SetTimeSpent(std::string val)
+    void SetTimeSpent(const std::string &val)
     {
         mTimeSpent = val;
     }
@@ -73,7 +73,7 @@ public:
     {
         return mID;
     }
-    void SetID(std::string val)
+    void SetID(const std::string &val)
     {
         mID = val;
     }
index 29d8ba3..943b610 100644 (file)
@@ -9,7 +9,7 @@
 #include "ChapterFactory.h"
 
 
-ChapterIF::SPtr ChapterFactory::createChapter(std::string type)
+ChapterIF::SPtr ChapterFactory::createChapter(const std::string &type)
 {
 
     if(type == mChapterTypes.at(TypeTextChapter))
index d94636a..e54c2f5 100644 (file)
@@ -30,7 +30,7 @@ public:
     /// \return Shared pointer des types der Interfaceklasse
     ///         auf das erzeugte Objekt.
     /////////////////////////////////////////////////
-    ChapterIF::SPtr createChapter(std::string type);
+    ChapterIF::SPtr createChapter(const std::string &type);
 
 
     /////////////////////////////////////////////////
index 365a458..dc24186 100644 (file)
@@ -38,7 +38,7 @@ public:
     /// \brief Setzt die zu verwendende Überschrift des Kapitels.
     ///        \param val Überschrift des Kapitels.
     /////////////////////////////////////////////////
-    void SetPrettyName(std::string val)
+    void SetPrettyName(const std::string &val)
     {
         mPrettyName = val;
     }
@@ -57,7 +57,7 @@ public:
     /// \brief Setzt Namen der Datei in die das Kapitel geschrieben werden soll.
     ///        \param val Dateiname.
     /////////////////////////////////////////////////
-    void SetOutFileName(std::string val)
+    void SetOutFileName(const std::string &val)
     {
         if(!mFSHelp.validFileName(val))
             throw std::string("Filename contains illegal characters!");
@@ -123,7 +123,7 @@ public:
     /// \brief Setzt den Kapitelinhalt
     ///        \param text Zu speichernder Kapitelinhalt.
     /////////////////////////////////////////////////
-    void SetContent(std::string const &text)
+    void SetContent(const std::string &text)
     {
         mContent = text;
     }
@@ -155,7 +155,7 @@ public:
     /// \brief Setzt die Kapitelart.
     ///        \param Kapitelhierachie
     /////////////////////////////////////////////////
-    void SetHierachy(std::string val)
+    void SetHierachy(const std::string &val)
     {
         if(val != "chapter" &&
                 val != "section" &&
index f11f9cb..3037431 100644 (file)
@@ -18,7 +18,7 @@ Controller::Controller(std::shared_ptr<Model> model)
     mModel = model;
 }
 
-void Controller::setTemplate(std::string docTemplate)
+void Controller::setTemplate(const std::string &docTemplate)
 {
     mModel->setTemplFile(docTemplate);
     mModel->notifyObservers();
@@ -42,7 +42,16 @@ void Controller::setCurrentChapterFinished(bool val)
     mModel->notifyObservers();
 }
 
-void Controller::saveAuthor(std::string name, std::string id, std::string estTime, std::string neededTime)
+void Controller::setAllChaptersFinished(bool val)
+{
+
+    for(auto curChapt : mModel->getChapters())
+        curChapt->SetDone(val);
+
+    mModel->notifyObservers();
+}
+
+void Controller::saveAuthor(const std::string &name, const std::string &id, const std::string &estTime, const std::string &neededTime)
 {
     mModel->getSelAuthor()->SetName(name);
     mModel->getSelAuthor()->SetID(id);
@@ -52,7 +61,7 @@ void Controller::saveAuthor(std::string name, std::string id, std::string estTim
 }
 
 
-void Controller::saveContent(std::string const &text)
+void Controller::saveContent(const std::string &text)
 {
     mModel->getSelChapter()->SetContent(text);
 }
@@ -62,14 +71,14 @@ void Controller::saveAllWrittenTextsToFiles()
     mModel->saveChaptersToFiles();
 }
 
-void Controller::addChapter(std::string chaptName, std::string outFileName, int chaptType, int chaptHiearachy)
+void Controller::addChapter(const std::string &chaptName, const std::string &outFileName, int chaptType, int chaptHiearachy)
 {
 
     mModel->chapterInsertBack(chaptName, outFileName, chaptType, chaptHiearachy);
     mModel->notifyObservers();
 }
 
-void Controller::updateChapter(std::string chaptName, std::string outFileName, int chaptHiearachy)
+void Controller::updateChapter(const std::string &chaptName, const std::string &outFileName, int chaptHiearachy)
 {
     mModel->getSelChapter()->SetPrettyName(chaptName);
     mModel->getSelChapter()->SetOutFileName(outFileName);
@@ -107,7 +116,7 @@ void Controller::downChapter()
     mModel->notifyObservers();
 }
 
-void Controller::setOutDir(std::string outDir)
+void Controller::setOutDir(const std::string &outDir)
 {
     mModel->setOutPath(outDir);
     mModel->notifyObservers();
@@ -118,7 +127,7 @@ void Controller::generateDocument()
     mModel->generateDocument();
 }
 
-void Controller::saveCoverSheet(std::string file)
+void Controller::saveCoverSheet(const std::string &file)
 {
     mModel->setCovSheet(file);
     mModel->notifyObservers();
@@ -137,22 +146,22 @@ void Controller::saveAuthorCoordinates(int xName, int yName, int xID, int yID, i
     mModel->notifyObservers();
 }
 
-void Controller::setDocName(std::string name)
+void Controller::setDocName(const std::string &name)
 {
     mModel->setDocName(name);
     mModel->notifyObservers();
 }
 
 
-void Controller::startNewTemplate(std::string name)
+void Controller::startNewTemplate(const std::string &name)
 {
     mModel->newTemplate(name);
     mModel->notifyObservers();
 }
 
 void Controller::saveSettings(bool titlepage, bool coverpage, bool toc, int tocDepth,
-             std::string headerExt, std::string sourceExt,
-             std::string subjectName, std::string location)
+             const std::string &headerExt, const std::string &sourceExt,
+             const std::string &subjectName, const std::string &location)
 {
     mModel->setAddTitlePage(titlepage);
     mModel->setAddCoverSheet(coverpage);
@@ -170,7 +179,7 @@ void Controller::saveAsTemplate()
     mModel->saveTemplFile();
 }
 
-void Controller::setDepartment(std::string department)
+void Controller::setDepartment(const std::string &department)
 {
     mModel->setDepartment(department);
     mModel->notifyObservers();
index 31efce5..59f41a5 100644 (file)
@@ -25,21 +25,21 @@ class Controller: public ControllerIF
 public:
     Controller(std::shared_ptr<Model> model);
 
-    void setTemplate(std::string docTemplate) override;
+    void setTemplate(const std::string &docTemplate) override;
 
     void selectedChapter(int chapt) override;
 
     void selectedAuthor(int authorNum) override;
 
-    void saveAuthor(std::string name, std::string id, std::string estTime, std::string neededTime) override;
+    void saveAuthor(const std::string &name, const std::string &id, const std::string &estTime, const std::string &neededTime) override;
 
-    void saveContent(std::string const &text) override;
+    void saveContent(const std::string &text) override;
 
     void setCurrentChapterFinished(bool val) override;
 
-    void addChapter(std::string chaptName, std::string outFileName, int chaptType, int chaptHiearachy) override;
+    void addChapter(const std::string &chaptName, const std::string &outFileName, int chaptType, int chaptHiearachy) override;
 
-    void updateChapter(std::string chaptName, std::string outFileName, int chaptHiearachy) override;
+    void updateChapter(const std::string &chaptName, const std::string &outFileName, int chaptHiearachy) override;
 
     void remChapter() override;
 
@@ -51,25 +51,27 @@ public:
 
     void downChapter() override;
 
-    void setOutDir(std::string outDir) override;
+    void setAllChaptersFinished(bool val);
+
+    void setOutDir(const std::string &outDir) override;
 
     void generateDocument() override;
 
-    void saveCoverSheet(std::string file) override;
+    void saveCoverSheet(const std::string &file) override;
 
     void saveAllWrittenTextsToFiles() override;
 
     void saveAuthorCoordinates(int xName, int yName, int xID, int yID, int xEstTime, int yEstTime, int xNeededTime, int yNeededTime) override;
 
     void saveSettings(bool titlepage, bool coverpage, bool toc, int tocDepth,
-                 std::string headerExt, std::string sourceExt,
-                 std::string subjectName, std::string location) override;
+                 const std::string &headerExt, const std::string &sourceExt,
+                 const std::string &subjectName, const std::string &location) override;
 
-    void setDocName(std::string name) override;
+    void setDocName(const std::string &name) override;
 
-    void startNewTemplate(std::string name) override;
+    void startNewTemplate(const std::string &name) override;
 
-    void setDepartment(std::string department) override;
+    void setDepartment(const std::string &department) override;
 
     void saveAsTemplate() override;
 
index 0de3867..c19024d 100644 (file)
@@ -30,7 +30,7 @@ public:
     /// \brief Wählt ein entsprechende Template aus.
     /// \param docTemplate gewähltes Template.
     /////////////////////////////////////////////////
-    virtual void setTemplate(std::string docTemplate) = 0;
+    virtual void setTemplate(const std::string &docTemplate) = 0;
 
     /////////////////////////////////////////////////
     /// \brief Wählt ein entsprechendes Kapitel aus.
@@ -52,14 +52,14 @@ public:
     /// \param estTime vom Autor geschätzte Arbeitszeit
     /// \param neededTime vom Autor benötigte Arbeitszeit.
     /////////////////////////////////////////////////
-    virtual void saveAuthor(std::string name, std::string id, std::string estTime, std::string neededTime) = 0;
+    virtual void saveAuthor(const std::string &name, const std::string &id, const std::string &estTime, const std::string &neededTime) = 0;
 
     /////////////////////////////////////////////////
     /// \brief Speichere den Kapitelinhalt in
     ///        die interne Datenstruktur.
     /// \param text zu speichernder Text.
     /////////////////////////////////////////////////
-    virtual void saveContent(std::string const & text) = 0;
+    virtual void saveContent(const std::string &text) = 0;
 
     /////////////////////////////////////////////////
     /// \brief Speichere alle intern gespeicherten Texte
@@ -76,13 +76,21 @@ public:
     virtual void setCurrentChapterFinished(bool val) = 0;
 
     /////////////////////////////////////////////////
+    /// \brief Markiere alle Kapitel als abgeschlossen
+    ///        oder noch nicht abgeschlossen.
+    /// \param true -> abgeschlossen,
+    ///        false -> nicht abgeschlossen.
+    /////////////////////////////////////////////////
+    virtual void setAllChaptersFinished(bool val) = 0;
+
+    /////////////////////////////////////////////////
     /// \brief Füge ein neues Kapitel hinzu.
     /// \param chaptName Name des Kapitels
     /// \param outFileName name der Ausgabedatei.
     /// \param chaptType Kapiteltyp
     /// \param chaptHiearachy Kapitelhierachietyp
     /////////////////////////////////////////////////
-    virtual void addChapter(std::string chaptName, std::string outFileName, int chaptType, int chaptHiearachy) = 0;
+    virtual void addChapter(const std::string &chaptName, const std::string &outFileName, int chaptType, int chaptHiearachy) = 0;
 
     /////////////////////////////////////////////////
     /// \brief Ändert die Eistellung des gewählten
@@ -91,7 +99,7 @@ public:
     /// \param outFileName name der Ausgabedatei.
     /// \param chaptHiearachy Kapitelhierachietyp
     /////////////////////////////////////////////////
-    virtual void updateChapter(std::string chaptName, std::string outFileName, int chaptHiearachy) = 0;
+    virtual void updateChapter(const std::string &chaptName, const std::string &outFileName, int chaptHiearachy) = 0;
 
     /////////////////////////////////////////////////
     /// \brief Lösche ausgewähltes Kapitel.
@@ -124,7 +132,7 @@ public:
     /// \brief Wähle Ausgabeordner.
     /// \param outDir Ausgabeordner
     /////////////////////////////////////////////////
-    virtual void setOutDir(std::string outDir) = 0;
+    virtual void setOutDir(const std::string &outDir) = 0;
 
     /////////////////////////////////////////////////
     /// \brief Erzeuge Latex Dateien und .pdf im
@@ -136,7 +144,7 @@ public:
     /// \brief Wähle Angabeblatt.
     /// \param file Angabeblatt
     /////////////////////////////////////////////////
-    virtual void saveCoverSheet(std::string file) = 0;
+    virtual void saveCoverSheet(const std::string &file) = 0;
 
     /////////////////////////////////////////////////
     /// \brief Setzte Deckblattkoordinaten für die
@@ -168,21 +176,21 @@ public:
     /// \param location Verfassungsort des Dokuments
     /////////////////////////////////////////////////
     virtual void saveSettings(bool titlepage, bool coverpage, bool toc, int tocDepth,
-             std::string headerExt, std::string sourceExt,
-             std::string subjectName, std::string location) = 0;
+             const std::string &headerExt, const std::string &sourceExt,
+             const std::string &subjectName, const std::string &location) = 0;
 
     /////////////////////////////////////////////////
     /// \brief Konfiguriere den Namen des Dokuments
     /// \param name Dokumentname
     /////////////////////////////////////////////////
-    virtual void setDocName(std::string name) = 0;
+    virtual void setDocName(const std::string &name) = 0;
 
 
     /////////////////////////////////////////////////
     /// \brief Starte ein komplett neues Dokument.
     /// \param name Dokumentgruppenname
     /////////////////////////////////////////////////
-    virtual void startNewTemplate(std::string name) = 0;
+    virtual void startNewTemplate(const std::string &name) = 0;
 
     /////////////////////////////////////////////////
     /// \brief Speichere einstellungen, Kapitel und
@@ -195,7 +203,7 @@ public:
     /// \brief Konfiguriere dan Namen der Arbeitsgruppe.
     /// \param department name Arbeitsgruppenname
     /////////////////////////////////////////////////
-    virtual void setDepartment(std::string department) = 0;
+    virtual void setDepartment(const std::string &department) = 0;
 
     /////////////////////////////////////////////////
     /// \brief Setzte Deckblattkoordinaten für
index 80102d2..d406b5a 100644 (file)
@@ -21,7 +21,7 @@ class DoxygenChapter : public Object, public ChapterIF
 {
 public:
 
-    DoxygenChapter(std::string type)
+    DoxygenChapter(const std::string &type)
     {
         mType = type;
     }
index 41c7f84..b727d35 100644 (file)
@@ -21,7 +21,7 @@
 #include <sys/wait.h>
 #endif
 
-std::vector<FSHelper::File> FSHelper::listFiles(std::string const &src)
+std::vector<FSHelper::File> FSHelper::listFiles(const std::string &src)
 {
     std::vector<File> retVal;
     DIR *dir;
@@ -44,7 +44,7 @@ std::vector<FSHelper::File> FSHelper::listFiles(std::string const &src)
     return retVal;
 }
 
-void FSHelper::copyFile(std::string const &src, std::string const &dest)
+void FSHelper::copyFile(const std::string &src, const std::string &dest)
 {
     std::ifstream srcStream(src, std::ios::in | std::ios_base::binary);
 
@@ -63,7 +63,7 @@ void FSHelper::copyFile(std::string const &src, std::string const &dest)
 
 }
 
-void FSHelper::makeDir(std::string const& dir)
+void FSHelper::makeDir(const std::string &dir)
 {
     if(!dirExists(dir))
 #if defined(_WIN32)
@@ -75,7 +75,7 @@ void FSHelper::makeDir(std::string const& dir)
 
 }
 
-void FSHelper::createFile(std::string const& path)
+void FSHelper::createFile(const std::string &path)
 {
     std::ofstream file(path, std::ios::out);
 
@@ -85,7 +85,7 @@ void FSHelper::createFile(std::string const& path)
     file.close();
 }
 
-void FSHelper::removeFile(std::string const& path)
+void FSHelper::removeFile(const std::string &path)
 {
     if(!fileExists(path))
         return;
@@ -93,7 +93,7 @@ void FSHelper::removeFile(std::string const& path)
     remove(path.c_str());
 }
 
-void FSHelper::copyDir(std::string const &src, std::string const &dest)
+void FSHelper::copyDir(const std::string &src, const std::string &dest)
 {
     std::string from = addDirLastSlash(src);
     std::string to = addDirLastSlash(dest);
@@ -163,7 +163,7 @@ void FSHelper::copyDir(std::string const &src, std::string const &dest)
 }
 
 
-bool FSHelper::validFileName(std::string const &fName)
+bool FSHelper::validFileName(const std::string &fName)
 {
     char invalidChars[] = { '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '~', '`', ' ', '\\',
                             ';', ':', '+', '=', '*', '/', '<', '>', '?', ',', '[', ']', '{', '}'
@@ -176,7 +176,7 @@ bool FSHelper::validFileName(std::string const &fName)
     return true;
 }
 
-bool FSHelper::dirExists(std::string const &directory)
+bool FSHelper::dirExists(const std::string &directory)
 {
     std::string dir = rmDirLastSlash(directory);
 
@@ -190,7 +190,7 @@ bool FSHelper::dirExists(std::string const &directory)
         return false;
 }
 
-bool FSHelper::fileExists(std::string const &file)
+bool FSHelper::fileExists(const std::string &file)
 {
     std::ifstream f(file);
     bool retVal = f.good();
@@ -198,7 +198,7 @@ bool FSHelper::fileExists(std::string const &file)
     return retVal;
 }
 
-std::string FSHelper::addDirLastSlash(std::string const& dir)
+std::string FSHelper::addDirLastSlash(const std::string &dir)
 {
     if(dir.back() != '\\' && dir.back() != '/')
 #if defined(_WIN32)
@@ -210,7 +210,7 @@ std::string FSHelper::addDirLastSlash(std::string const& dir)
         return dir;
 }
 
-std::string FSHelper::rmDirLastSlash(std::string const& dir)
+std::string FSHelper::rmDirLastSlash(const std::string &dir)
 {
     if(dir.back() == '\\' || dir.back() == '/')
         return dir.substr(0, dir.size()-1);
@@ -254,7 +254,7 @@ bool FSHelper::listFilesRecursive(const std::string& path, std::vector<FSHelper:
 }
 
 
-bool FSHelper::listDirsRecursive(const std::string& path, std::vector<std::string>& folders,const bool showHiddenDirs)
+bool FSHelper::listDirsRecursive(const std::string &path, std::vector<std::string> &folders,const bool showHiddenDirs)
 {
     std::string dir = addDirLastSlash(path);
     DIR *dpdf;
@@ -297,19 +297,21 @@ std::string FSHelper::getCurrentWorkingDir()
     return std::string("");
 }
 
-std::string FSHelper::convertPathToWindows(std::string dir)
+std::string FSHelper::convertPathToWindows(const std::string &dir)
 {
-    std::replace(dir.begin(), dir.end(), '/', '\\');
-    return dir;
+    std::string retDir = dir;
+    std::replace(retDir.begin(), retDir.end(), '/', '\\');
+    return retDir;
 }
 
-std::string FSHelper::convertPathToUnix(std::string dir)
+std::string FSHelper::convertPathToUnix(const std::string &dir)
 {
-    std::replace(dir.begin(), dir.end(), '\\', '/');
-    return dir;
+    std::string retDir = dir;
+    std::replace(retDir.begin(), retDir.end(), '\\', '/');
+    return retDir;
 }
 
-std::string FSHelper::findExecutableInPath(std::string executable)
+std::string FSHelper::findExecutableInPath(const std::string &executable)
 {
     std::string path = getenv("PATH");
 
@@ -333,33 +335,35 @@ std::string FSHelper::findExecutableInPath(std::string executable)
     throw std::string("Executable not found in PATH!: " + executable);
 }
 
-std::string FSHelper::getFileName(std::string file)
+std::string FSHelper::getFileName(const std::string &file)
 {
+    std::string retFile = "";
     unsigned int ind = file.find_last_of("/");
     if(ind !=  std::string::npos)
-        file = file.substr(ind + 1, file.size());
+        retFile = file.substr(ind + 1, file.size());
 
     ind = file.find_last_of("\\");
     if(ind !=  std::string::npos)
-        file = file.substr(ind + 1, file.size());
+        retFile = file.substr(ind + 1, file.size());
 
-    return file;
+    return retFile;
 }
 
-std::string FSHelper::getPath(std::string file)
+std::string FSHelper::getPath(const std::string &file)
 {
+    std::string retFile = "";
     unsigned int ind = file.find_last_of("/");
     if(ind !=  std::string::npos)
-        file = file.substr(0, ind + 1);
+        retFile = file.substr(0, ind + 1);
 
     ind = file.find_last_of("\\");
     if(ind !=  std::string::npos)
-        file = file.substr(0, ind + 1);
+        retFile = file.substr(0, ind + 1);
 
-    return file;
+    return retFile;
 }
 
-void FSHelper::executeCommand(const std::string& path, const std::string& command, std::vector<std::string> params, std::string log)
+void FSHelper::executeCommand(const std::string &path, const std::string &command, std::vector<std::string> params,const std::string &log)
 {
 
     if((!path.empty()) && !dirExists(path))
@@ -486,7 +490,7 @@ void FSHelper::executeCommand(const std::string& path, const std::string& comman
 }
 
 
-void FSHelper::setLinuxDynLoader(std::string Loader)
+void FSHelper::setLinuxDynLoader(const std::string &Loader)
 {
 #ifndef _WIN32
     if(!fileExists(Loader))
index 8a82e7b..45d93fd 100644 (file)
@@ -37,7 +37,7 @@ public:
 /// \return Vector mit string Paaren der Dateien im
 ///         gegebenen Verzeichnis beinhaltet.
 /////////////////////////////////////////////////
-    std::vector<File> listFiles(std::string const &src);
+    std::vector<File> listFiles(const std::string &src);
 
 /////////////////////////////////////////////////
 /// \brief Überprüft ob Ordner existiert
@@ -45,7 +45,7 @@ public:
 /// \return bool true wenn Ordner existiert,
 ///         ansonsten false.
 /////////////////////////////////////////////////
-    bool dirExists(std::string const &dir);
+    bool dirExists(const std::string &dir);
 
 /////////////////////////////////////////////////
 /// \brief Überprüft ob Datei existiert
@@ -53,21 +53,21 @@ public:
 /// \return bool true wenn Datei existiert,
 ///         ansonsten false.
 /////////////////////////////////////////////////
-    bool fileExists(std::string const &file);
+    bool fileExists(const std::string &file);
 
 /////////////////////////////////////////////////
 /// \brief Diese funktion kopiert eine Datei.
 /// \param src Quelldatei
 /// \param dest Zieldatei
 /////////////////////////////////////////////////
-    void copyFile(std::string const &src, std::string const &dest);
+    void copyFile(const std::string &src,const std::string &dest);
 
 /////////////////////////////////////////////////
 /// \brief Diese funktion kopiert einen Ordner.
 /// \param src Quellordner
 /// \param dest Zielordner
 /////////////////////////////////////////////////
-    void copyDir(std::string const &src, std::string const &dest);
+    void copyDir(const std::string &src, const std::string &dest);
 
 /////////////////////////////////////////////////
 /// \brief Gibt aktuelles Arbeitsverzeichnis zurück.
@@ -82,21 +82,21 @@ public:
 /// \return bool true wenn Dateiname kein untypisches
 ///         Zeichen beinhaltet, ansonsten false.
 /////////////////////////////////////////////////
-    bool validFileName(std::string const &fName);
+    bool validFileName(const std::string &fName);
 
 /////////////////////////////////////////////////
 /// \brief Ersetzt alle / mit \\
 /// \param dir Zu verarbeitender pfad
 /// \return pfad mit ersetzten Zeichen
 /////////////////////////////////////////////////
-    std::string convertPathToWindows(std::string dir);
+    std::string convertPathToWindows(const std::string &dir);
 
 /////////////////////////////////////////////////
 /// \brief Ersetzt alle \\ mit /
 /// \param dir Zu verarbeitender pfad
 /// \return pfad mit ersetzten Zeichen
 /////////////////////////////////////////////////
-    std::string convertPathToUnix(std::string dir);
+    std::string convertPathToUnix(const std::string &dir);
 
 /////////////////////////////////////////////////
 /// \brief Fügt, falls fehlend, einen Slash an
@@ -104,7 +104,7 @@ public:
 /// \param dir pfad
 /// \return pfad garantiert mit slash am ende
 /////////////////////////////////////////////////
-    std::string addDirLastSlash(std::string const& dir);
+    std::string addDirLastSlash(const std::string &dir);
 
 /////////////////////////////////////////////////
 /// \brief Entfernt, falls existent, einen Slash
@@ -112,25 +112,25 @@ public:
 /// \param dir Pfad
 /// \return Pfad garantiert ohne slash am ende
 /////////////////////////////////////////////////
-    std::string rmDirLastSlash(std::string const& dir);
+    std::string rmDirLastSlash(const std::string &dir);
 
 /////////////////////////////////////////////////
 /// \brief Erstellt einen Ordner.
 /// \param dir pfad des zu erstellenden Ordners.
 /////////////////////////////////////////////////
-    void makeDir(std::string const& dir);
+    void makeDir(const std::string &dir);
 
 /////////////////////////////////////////////////
 /// \brief Erstellt eine Datei.
 /// \param path Pfad + Dateiname der zu erstellenden Datei.
 /////////////////////////////////////////////////
-    void createFile(std::string const& path);
+    void createFile(const std::string &path);
 
 /////////////////////////////////////////////////
 /// \brief Löscht eine Datei.
 /// \param path Pfad + Dateiname der zu löschenden Datei.
 /////////////////////////////////////////////////
-    void removeFile(std::string const& path);
+    void removeFile(const std::string &path);
 
 /////////////////////////////////////////////////
 /// \brief Diese funktion gibt alle Deteien eines
@@ -144,7 +144,7 @@ public:
 ///        false nein)
 /// \return true bei erfolg, false bei fehler
 /////////////////////////////////////////////////
-    bool listFilesRecursive(const std::string& path, std::vector<FSHelper::File>& files,const bool showHiddenDirs);
+    bool listFilesRecursive(const std::string &path, std::vector<FSHelper::File> &files,const bool showHiddenDirs);
 
 /////////////////////////////////////////////////
 /// \brief Diese funktion gibt rekursiv alle Unterordner eines
@@ -157,7 +157,7 @@ public:
 ///        false nein)
 /// \return true bei erfolg, false bei fehler
 /////////////////////////////////////////////////
-    bool listDirsRecursive(const std::stringpath, std::vector<std::string>& dirs,const bool showHiddenDirs);
+    bool listDirsRecursive(const std::string &path, std::vector<std::string>& dirs,const bool showHiddenDirs);
 
 /////////////////////////////////////////////////
 /// \brief Diese funktion führt einen Befehl/ein Programm
@@ -168,7 +168,7 @@ public:
 /// \param log optional, Pfad zu einer datei, in der die Konsolenausgabe
 ///        des Befehls geschrieben werden soll.
 /////////////////////////////////////////////////
-    void executeCommand(const std::string& path, const std::string& command, std::vector<std::string> params, std::string log = "");
+    void executeCommand(const std::string &path, const std::string &command, std::vector<std::string> params,const std::string &log = "");
 
 /////////////////////////////////////////////////
 /// \brief Diese funktion setzt einen Dynamischen
@@ -177,7 +177,7 @@ public:
 ///        verwendet werden soll.
 /// \param Loader Pfad zum Loader
 /////////////////////////////////////////////////
-    void setLinuxDynLoader(std::string Loader);
+    void setLinuxDynLoader(const std::string &Loader);
 
 /////////////////////////////////////////////////
 /// \brief Diese funktion gibt den gesetzten Loader
@@ -201,21 +201,21 @@ public:
 /// \param executable Kommando dessen executable gesucht werden soll
 /// \return vollständiger Pfad zur executable.
 /////////////////////////////////////////////////
-    std::string findExecutableInPath(std::string executable);
+    std::string findExecutableInPath(const std::string &executable);
 
 /////////////////////////////////////////////////
 /// \brief Gibt Dateinamen einer Datei mit Pfad retour.
 /// \param file Dateiname mit Pfad
 /// \return Dateiname
 /////////////////////////////////////////////////
-    std::string getFileName(std::string file);
+    std::string getFileName(const std::string &file);
 
 /////////////////////////////////////////////////
 /// \brief Gibt Pfad einer Datei mit Pfad retour.
 /// \param file Dateiname mit Pfad
 /// \return Pfad
 /////////////////////////////////////////////////
-    std::string getPath(std::string file);
+    std::string getPath(const std::string &file);
 
 private:
     std::string mLinuxDynLoader;
index 56e70ab..7f98493 100644 (file)
@@ -71,7 +71,7 @@ void Model::throwXmlError(tinyxml2::XMLError error)
     }
 }
 
-Model::Model(std::string confDir, FSHelper help, std::string log)
+Model::Model(const std::string &confDir, FSHelper help, const std::string &log)
 {
     mFSHelp = help;
 
@@ -99,7 +99,7 @@ void Model::clearMembers()
     int mAuthorNum=0;
 }
 
-void Model::newTemplate(std::string name)
+void Model::newTemplate(const std::string &name)
 {
     setSubjectName(name);
     chapterInsertBack("Example", "Example.tex", ChapterFactory::TypeTextChapter);
@@ -109,7 +109,7 @@ void Model::newTemplate(std::string name)
     getSelChapter()->SetContent("%Example Chapter");
 }
 
-void Model::setTemplFile(std::string templFile)
+void Model::setTemplFile(const std::string &templFile)
 {
 
     clearMembers();
@@ -361,7 +361,7 @@ std::string Model::getSubjectName()
     return mSubject;
 }
 
-void Model::setSubjectName(std::string name)
+void Model::setSubjectName(const std::string &name)
 {
     if(!mFSHelp.validFileName(name))
         throw std::string("Subject name contains illegal characters.");
@@ -395,7 +395,7 @@ void Model::chapterDown()
     }
 }
 
-void Model::chapterInsertBack(std::string chaptName, std::string outFileName, std::string type, int hierachy)
+void Model::chapterInsertBack(const std::string &chaptName, const std::string &outFileName, const std::string &type, int hierachy)
 {
     if(chaptName.empty())
         throw std::string("Please set an chapter name!");
@@ -423,7 +423,7 @@ void Model::chapterInsertBack(std::string chaptName, std::string outFileName, st
     setOutPath(mOutPath); // Lade text aus hinzugefügter kapiteldatei, falls sie existiert
 }
 
-void Model::chapterInsertBack(std::string chaptName, std::string outFileName, int type, int hierachy)
+void Model::chapterInsertBack(const std::string &chaptName, const std::string &outFileName, int type, int hierachy)
 {
     chapterInsertBack(chaptName, outFileName, mChaptFactory.getChapterTypes().at(type), hierachy);
 }
@@ -478,7 +478,7 @@ void Model::authorRemove()
     }
 }
 
-void Model::setOutPath(std::string outPath)
+void Model::setOutPath(const std::string &outPath)
 {
     if(!mFSHelp.dirExists(outPath))
         throw std::string("Output path not found!");
@@ -808,7 +808,7 @@ std::string Model::getCovSheet()
     return mCoverSheet;
 }
 
-void Model::setCovSheet(std::string file)
+void Model::setCovSheet(const std::string &file)
 {
     if(!mFSHelp.fileExists(file))
         throw std::string("File not found!");
@@ -857,7 +857,7 @@ std::string Model::getDocName()
     return mDocName;
 }
 
-void Model::setDocName(std::string name)
+void Model::setDocName(const std::string &name)
 {
     mDocName = name;
 }
@@ -872,12 +872,12 @@ std::string Model::getDepartment()
     return mDepartment;
 }
 
-void Model::setLocation(std::string location)
+void Model::setLocation(const std::string &location)
 {
     mLocation = location;
 }
 
-void Model::setDepartment(std::string department)
+void Model::setDepartment(const std::string &department)
 {
     mDepartment = department;
 }
@@ -917,7 +917,7 @@ std::string Model::getSourceFileExtension()
     return mSourceExtension;
 }
 
-void Model::setHeaderFileExtension(std::string fileExt)
+void Model::setHeaderFileExtension(const std::string &fileExt)
 {
     if(fileExt.empty())
         throw std::string("Please set a header file extension!");
@@ -925,7 +925,7 @@ void Model::setHeaderFileExtension(std::string fileExt)
     mHeaderExtension = fileExt;
 }
 
-void Model::setLogFile(std::string log)
+void Model::setLogFile(const std::string &log)
 {
     mLogFile = log;
 }
@@ -935,7 +935,7 @@ std::string Model::getLogFile()
     return mLogFile;
 }
 
-void Model::setSourceFileExtension(std::string fileExt)
+void Model::setSourceFileExtension(const std::string &fileExt)
 {
     if(fileExt.empty())
         throw std::string("Please set a source file extension!");
@@ -947,3 +947,8 @@ std::vector<std::string> Model::getChapterTypes()
 {
     return mChaptFactory.getChapterTypes();
 }
+
+std::vector<ChapterIF::SPtr> Model::getChapters()
+{
+    return mChapters;
+}
index dbf0367..2c41671 100644 (file)
@@ -40,7 +40,7 @@ public:
     ///        Wird im Ausgabeordner gespeichert.
     ///        (siehe getOutPath)
     /////////////////////////////////////////////////
-    Model(std::string confDir, FSHelper help, std::string log);
+    Model(const std::string &confDir, FSHelper help, const std::string &log);
 
     // Destruktor
     virtual ~Model() = default;
@@ -50,13 +50,13 @@ public:
     ///        in die Internen Strukturen.
     /// \param templFile gewähltes Template Datei.
     /////////////////////////////////////////////////
-    void setTemplFile(std::string templFile);
+    void setTemplFile(const std::string &templFile);
 
     /////////////////////////////////////////////////
     /// \brief Wähle Ausgabeordner.
     /// \param outPath Ausgabeordner
     /////////////////////////////////////////////////
-    void setOutPath(std::string outPath);
+    void setOutPath(const std::string &outPath);
 
     /////////////////////////////////////////////////
     /// \brief Erzeuge Latex Dateien und .pdf im
@@ -80,7 +80,7 @@ public:
     /// \brief Konfiguriere den Namen der Dokumentgruppe
     /// \param name Dokumentgruppenname
     /////////////////////////////////////////////////
-    void setSubjectName(std::string name);
+    void setSubjectName(const std::string &name);
 
     /////////////////////////////////////////////////
     /// \brief Sortiere ausgewähltes Kapitel eine
@@ -102,7 +102,7 @@ public:
     /// \param type String der Kapiteltyp beschreibt.
     /// \param hierachy Kapitelhierachietyp
     /////////////////////////////////////////////////
-    void chapterInsertBack(std::string chaptName, std::string outFileName, std::string type, int hierachy = 0);
+    void chapterInsertBack(const std::string &chaptName, const std::string &outFileName, const std::string &type, int hierachy = 0);
 
     /////////////////////////////////////////////////
     /// \brief Füge ein neues Kapitel am Ende der
@@ -112,7 +112,7 @@ public:
     /// \param type Enum Konstante die Kapiteltyp beschreibt.
     /// \param hierachy Kapitelhierachietyp
     /////////////////////////////////////////////////
-    void chapterInsertBack(std::string chaptName, std::string outFileName, int type, int hierachy = 0);
+    void chapterInsertBack(const std::string &chaptName, const std::string &outFileName, int type, int hierachy = 0);
 
     /////////////////////////////////////////////////
     /// \brief Lösche intern ausgewähltes Kapitel.
@@ -183,25 +183,25 @@ public:
     /// \brief Wähle Quellcode Ordner.
     /// \param path Quellcode Ordner.
     /////////////////////////////////////////////////
-    void setSourceDir(std::string path);
+    void setSourceDir(const std::string &path);
 
     /////////////////////////////////////////////////
     /// \brief Wähle Angabeblatt.
     /// \param file Angabeblatt
     /////////////////////////////////////////////////
-    void setCovSheet(std::string file);
+    void setCovSheet(const std::string &file);
 
     /////////////////////////////////////////////////
     /// \brief Konfiguriere dan Namen des Verfassungsortes.
     /// \param location name Ortsname
     /////////////////////////////////////////////////
-    void setLocation(std::string location);
+    void setLocation(const std::string &location);
 
     /////////////////////////////////////////////////
     /// \brief Konfiguriere dan Namen der Arbeitsgruppe.
     /// \param department name Arbeitsgruppenname
     /////////////////////////////////////////////////
-    void setDepartment(std::string department);
+    void setDepartment(const std::string &department);
 
     /////////////////////////////////////////////////
     /// \brief Speichere Alle Kapiteltexte in die
@@ -213,32 +213,40 @@ public:
     /// \brief Konfiguriere den Namen des Dokuments
     /// \param name Dokumentname
     /////////////////////////////////////////////////
-    void setDocName(std::string name);
+    void setDocName(const std::string &name);
 
     /////////////////////////////////////////////////
     /// \brief Wähle Dateiendungen der Header Quellcode Dateien
     /// \param fileExt Dateiendung für Header Dateien (z.B. .h)
     /////////////////////////////////////////////////
-    void setHeaderFileExtension(std::string fileExt);
+    void setHeaderFileExtension(const std::string &fileExt);
 
     /////////////////////////////////////////////////
     /// \brief Wähle Dateiendungen der Source Quellcode Dateien
     /// \param fileExt Dateiendung für Source Dateien (z.B. .cpp)
     /////////////////////////////////////////////////
-    void setSourceFileExtension(std::string fileExt);
+    void setSourceFileExtension(const std::string &fileExt);
 
     /////////////////////////////////////////////////
     /// \brief Setzt dateinamen (Ohne Pfad!) für loggng Datei.
     /// \param log Dateiname der Logging Datei.
     /////////////////////////////////////////////////
-    void setLogFile(std::string log);
+    void setLogFile(const std::string &log);
 
     /////////////////////////////////////////////////
     /// \brief Starte neues Document ohne eine Tamplate
     ///        datei zu laden.
     /// \param name Subject Name des Dokuments.
     /////////////////////////////////////////////////
-    void newTemplate(std::string name);
+    void newTemplate(const std::string &name);
+
+    /////////////////////////////////////////////////
+    /// \brief Gibt eine liste mit allen Kapiteln
+    ///        zurück.
+    /// \return Liste mit Kapiteln
+    /////////////////////////////////////////////////
+    std::vector<ChapterIF::SPtr> getChapters();
+
     // ---------- Implementierung Interface ---------------
     std::list<std::string> getChapterNames() override;
     std::list<std::string> getAuthorNames() override;
index cf48d6a..4a1cb9c 100644 (file)
@@ -216,7 +216,6 @@ public:
     /////////////////////////////////////////////////
     virtual std::vector<std::string> getChapterTypes() = 0;
 
-
 protected:
     ModelIF() = default;
 };
index 41897e6..7f6be7b 100644 (file)
@@ -20,7 +20,7 @@
 class SourceChapter : public Object, public ChapterIF
 {
 public:
-    SourceChapter(std::string type)
+    SourceChapter(const std::string &type)
     {
         mType = type;
     }
index 5923744..3e4bd38 100644 (file)
@@ -20,7 +20,7 @@
 class TextChapter : public Object, public ChapterIF
 {
 public:
-    TextChapter(std::string type)
+    TextChapter(const std::string &type)
     {
         mType = type;
     }
index 5696e81..c9aa375 100644 (file)
@@ -59,7 +59,8 @@ void View::activate()
 
     // Kapitel schnellauswahl
     // + status
-    chb_finished->activate();
+    chb_chapt_finished->activate();
+    chb_all_finished->activate();
     btn_next->activate();
     pb_progress->activate();
 
@@ -109,7 +110,8 @@ void View::loadAuthorList()
 void View::loadChapterContent()
 {
     br_chapters->select(mModel->getChapterNum());
-    chb_finished->value(mModel->getSelChapter()->GetDone());
+    chb_chapt_finished->value(mModel->getSelChapter()->GetDone());
+    chb_all_finished->value(mModel->getNumChapters() == mModel->getNumFinishedChapters());
 
     // Chapter Einstellungs Fenster
     add_chapt_chaptname->value(mModel->getSelChapter()->GetPrettyName().c_str());
@@ -301,7 +303,8 @@ void View::show()
     Fl::scheme("gtk+");
 
     // definiere callback funktionen
-    chb_finished->callback((Fl_Callback*)chb_finished_cb, (void*)(this));
+    chb_chapt_finished->callback((Fl_Callback*)chb_finished_cb, (void*)(this));
+    chb_all_finished->callback((Fl_Callback*)chb_all_finished_cb, (void*)(this));
     btn_next->callback((Fl_Callback*)btn_next_cb, (void*)(this) );
     btn_generate->callback((Fl_Callback*)btn_generate_cb, (void*)(this));
     br_chapters->callback((Fl_Callback*)br_chapters_cb, (void*)(this));
@@ -386,10 +389,41 @@ void View::chb_finished_cb(Fl_Check_Button* btn, void* view)
     {
         View* thisView = static_cast<View*>(view);
         thisView->saveBuffer();
-        thisView->mController->setCurrentChapterFinished(thisView->chb_finished->value());
+        thisView->mController->setCurrentChapterFinished(thisView->chb_chapt_finished->value());
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
+    {
+        std::cerr << e << std::endl;
+        fl_alert(e.c_str()); //Textbox mit fehlermeldung
+    }
+    catch(...)
+    {
+        fl_alert("Unknown error occured!");
+        std::cerr << "Unknown error occured!" << std::endl;
+    }
+}
+
+void View::chb_all_finished_cb(Fl_Check_Button* btn, void* view)
+{
+    try
+    {
+        View* thisView = static_cast<View*>(view);
+        switch ( fl_choice("Do you really want to change the state of all chapters?", "No", "Yes", 0) )
+        {
+        case 0:
+            thisView->chb_all_finished->value(!thisView->chb_all_finished->value());
+            break;
+        case 1:
+            thisView->saveBuffer();
+            thisView->mController->setAllChaptersFinished(thisView->chb_all_finished->value());
+            break;
+        default:
+            break;
+        }
+    }
+    // ----------- Exception Handling ------------
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -417,7 +451,7 @@ void View::btn_next_cb(Fl_Button* btn, void* view)
             thisView->mController->selectedChapter(selectedNum+1);
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -451,7 +485,7 @@ void View::btn_generate_cb(Fl_Button* btn, void* view)
         thisView->win_doctool->cursor(FL_CURSOR_DEFAULT);
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -485,7 +519,7 @@ void View::br_chapters_cb(Fl_Browser* br, void* view)
         thisView->mController->selectedChapter(selectedNum);
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -525,7 +559,7 @@ void View::menu_open_template_cb(Fl_Menu_* menu, void* view)
         }
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -658,7 +692,7 @@ void View::menu_editor_cb(Fl_Menu_* menu, void* view)
 
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -696,7 +730,7 @@ void View::menu_author_cb(Fl_Menu_* menu, void* view)
         }
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -739,7 +773,7 @@ void View::menu_chapter_cb(Fl_Menu_* menu, void* view)
         }
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -760,7 +794,7 @@ void View::btn_up_chpt_cb(Fl_Button* btn, void* view)
         thisView->mController->upChapter();
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -781,7 +815,7 @@ void View::btn_down_chpt_cb(Fl_Button* btn, void* view)
         thisView->mController->downChapter();
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -804,7 +838,7 @@ void View::btn_save_author_cb(Fl_Button* btn, void* view)
                                           thisView->ti_needed_time->value());
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -824,7 +858,7 @@ void View::cb_author_cb(Fl_Choice* cb, void* view)
         thisView->mController->selectedAuthor(thisView->cb_author->value());
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -863,7 +897,7 @@ void View::btn_chapt_save_cb(Fl_Button* btn, void* view)
         thisView->win_chapt->hide();
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -900,7 +934,7 @@ void View::menu_out_dir_cb(Fl_Menu_* menu, void* view)
         }
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -936,7 +970,7 @@ void View::ot_src_dir_cb(Fl_Output *out, void* view)
         }
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -973,7 +1007,7 @@ void View::ot_cov_sheet_cb(Fl_Output *out, void* view)
         }
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -1014,7 +1048,7 @@ void View::win_close_cb(Fl_Window* win, void* view)
         }
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -1039,7 +1073,7 @@ void View::btn_ok_author_cb(Fl_Button* btn, void* view)
         thisView->win_auth_coord->hide();
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -1059,7 +1093,7 @@ void View::menu_settings_cb(Fl_Menu_* menu, void* view)
         thisView->win_settings->show();
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -1103,7 +1137,7 @@ void View::btn_save_settings_cb(Fl_Button* btn, void* view)
         thisView->win_settings->hide();
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -1139,7 +1173,7 @@ void View::menu_new_templ_cb(Fl_Menu_* menu, void* view)
         }
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -1160,7 +1194,7 @@ void View::menu_gen_templ_cb(Fl_Menu_* menu, void* view)
         fl_alert(std::string("Successfully saved template to: " + thisView->mModel->getOutPath()).c_str());
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -1190,7 +1224,7 @@ void View::menu_department_cb(Fl_Menu_* menu, void* view)
         }
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -1211,7 +1245,7 @@ void View::btn_ok_depart_cb(Fl_Button* cb, void* view)
         thisView->win_depart_coord->hide();
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -1231,7 +1265,7 @@ void View::ti_doc_name_cb(Fl_Input * in, void* view)
         thisView->mController->setDocName(thisView->ti_doc_name->value());
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
@@ -1251,7 +1285,7 @@ void View::ti_department_cb(Fl_Input * in, void* view)
         thisView->mController->setDepartment(thisView->ti_department->value());
     }
     // ----------- Exception Handling ------------
-    catch(std::string& e)
+    catch(const std::string &e)
     {
         std::cerr << e << std::endl;
         fl_alert(e.c_str()); //Textbox mit fehlermeldung
index a4005ee..ec800c2 100644 (file)
@@ -112,6 +112,7 @@ private:
     // ----------- FLTK Callback Funktionen ------------
     // -------------------------------------------------
     static void chb_finished_cb(Fl_Check_Button* chb, void* view);
+    static void chb_all_finished_cb(Fl_Check_Button* chb, void* view);
     static void btn_next_cb(Fl_Button* btn, void* view);
     static void btn_generate_cb(Fl_Button* btn, void* view);
     static void br_chapters_cb(Fl_Browser* br, void* view);
index a6064e6..cfe723a 100644 (file)
@@ -128,11 +128,11 @@ Fl_Menu_Item ViewFluid::menu_menu_department[] = {
 Fl_Menu_Item* ViewFluid::menu_department_coord = ViewFluid::menu_menu_department + 0;
 
 ViewFluid::ViewFluid() {
-  { win_doctool = new Fl_Double_Window(585, 630, "Doc Tool");
+  { win_doctool = new Fl_Double_Window(625, 630, "Doc Tool");
     win_doctool->box(FL_GTK_DOWN_BOX);
     win_doctool->user_data((void*)(this));
     win_doctool->hotspot(win_doctool);
-    { menu_bar = new Fl_Menu_Bar(0, 0, 585, 20);
+    { menu_bar = new Fl_Menu_Bar(0, 0, 625, 20);
       menu_bar->box(FL_GTK_UP_BOX);
       menu_bar->menu(menu_menu_bar);
     } // Fl_Menu_Bar* menu_bar
@@ -158,54 +158,60 @@ ViewFluid::ViewFluid() {
       btn_down_chpt->box(FL_GTK_UP_BOX);
       btn_down_chpt->deactivate();
     } // Fl_Button* btn_down_chpt
-    { Fl_Group* o = new Fl_Group(200, 45, 365, 575);
-      { lb_type = new Fl_Box(200, 115, 365, 30, "Type");
+    { Fl_Group* o = new Fl_Group(200, 45, 405, 575);
+      { lb_type = new Fl_Box(200, 115, 405, 30, "Type");
         lb_type->hide();
       } // Fl_Box* lb_type
-      { ot_src_dir = new Fl_Output(205, 190, 355, 25, "Source Directory:");
+      { ot_src_dir = new Fl_Output(205, 190, 395, 25, "Source Directory:");
         ot_src_dir->tooltip("Directory containing Sourcecode.");
         ot_src_dir->box(FL_GTK_DOWN_BOX);
         ot_src_dir->align(Fl_Align(FL_ALIGN_TOP_LEFT));
         ot_src_dir->hide();
         ot_src_dir->deactivate();
       } // Fl_Output* ot_src_dir
-      { btn_open_src_dir = new Fl_Button(325, 220, 115, 25, "Open");
+      { btn_open_src_dir = new Fl_Button(350, 220, 115, 25, "Open");
         btn_open_src_dir->tooltip("Open directory containing source code.");
         btn_open_src_dir->box(FL_GTK_UP_BOX);
         btn_open_src_dir->hide();
         btn_open_src_dir->deactivate();
       } // Fl_Button* btn_open_src_dir
-      { border_src = new Fl_Box(200, 145, 365, 125);
+      { border_src = new Fl_Box(200, 145, 405, 125);
         border_src->box(FL_PLASTIC_DOWN_FRAME);
         border_src->color((Fl_Color)48);
         border_src->hide();
       } // Fl_Box* border_src
-      { tb_editor = new Fl_Text_Editor(200, 50, 365, 440, "Text");
+      { tb_editor = new Fl_Text_Editor(200, 50, 405, 440, "Text");
         tb_editor->tooltip("Enter your Latex text here.");
         tb_editor->box(FL_GTK_DOWN_FRAME);
       } // Fl_Text_Editor* tb_editor
-      { menu_editor = new Fl_Menu_Button(200, 50, 365, 440);
+      { menu_editor = new Fl_Menu_Button(200, 50, 405, 440);
         menu_editor->box(FL_GTK_UP_BOX);
         menu_editor->deactivate();
         menu_editor->menu(menu_menu_editor);
       } // Fl_Menu_Button* menu_editor
-      { chb_finished = new Fl_Check_Button(355, 515, 25, 25, "Finished");
-        chb_finished->tooltip("Mark chapter as finished.");
-        chb_finished->down_box(FL_GTK_DOWN_BOX);
-        chb_finished->user_data((void*)(this));
-        chb_finished->deactivate();
-      } // Fl_Check_Button* chb_finished
-      { btn_next = new Fl_Button(440, 505, 125, 45, "Next");
+      { chb_chapt_finished = new Fl_Check_Button(350, 500, 25, 25, "Chapter finished");
+        chb_chapt_finished->tooltip("Mark current chapter as finished.");
+        chb_chapt_finished->down_box(FL_GTK_DOWN_BOX);
+        chb_chapt_finished->user_data((void*)(this));
+        chb_chapt_finished->deactivate();
+      } // Fl_Check_Button* chb_chapt_finished
+      { chb_all_finished = new Fl_Check_Button(350, 530, 25, 25, "All finished");
+        chb_all_finished->tooltip("Mark all chapters as finished.");
+        chb_all_finished->down_box(FL_GTK_DOWN_BOX);
+        chb_all_finished->user_data((void*)(this));
+        chb_all_finished->deactivate();
+      } // Fl_Check_Button* chb_all_finished
+      { btn_next = new Fl_Button(480, 505, 125, 45, "Next");
         btn_next->tooltip("Edit next chapter.");
         btn_next->box(FL_GTK_UP_BOX);
         btn_next->deactivate();
       } // Fl_Button* btn_next
-      { btn_open_cov_sheet = new Fl_Button(440, 560, 125, 25, "Open");
+      { btn_open_cov_sheet = new Fl_Button(480, 560, 125, 25, "Open");
         btn_open_cov_sheet->tooltip("Select cover sheet .pdf file.");
         btn_open_cov_sheet->box(FL_GTK_UP_BOX);
         btn_open_cov_sheet->deactivate();
       } // Fl_Button* btn_open_cov_sheet
-      { btn_generate = new Fl_Button(440, 590, 125, 25, "Generate");
+      { btn_generate = new Fl_Button(480, 590, 125, 25, "Generate");
         btn_generate->tooltip("Generate document.");
         btn_generate->box(FL_GTK_UP_BOX);
         btn_generate->user_data((void*)(this));
@@ -252,7 +258,7 @@ ViewFluid::ViewFluid() {
       ti_doc_name->box(FL_GTK_DOWN_BOX);
       ti_doc_name->deactivate();
     } // Fl_Input* ti_doc_name
-    { ti_department = new Fl_Input(140, 530, 200, 25, "Department:");
+    { ti_department = new Fl_Input(140, 530, 200, 25, "Group/Department:");
       ti_department->box(FL_GTK_DOWN_BOX);
       ti_department->deactivate();
     } // Fl_Input* ti_department
@@ -261,12 +267,12 @@ ViewFluid::ViewFluid() {
       menu_department->deactivate();
       menu_department->menu(menu_menu_department);
     } // Fl_Menu_Button* menu_department
-    { ot_cov_sheet = new Fl_Output(140, 560, 280, 25, "Cover Sheet:");
+    { ot_cov_sheet = new Fl_Output(140, 560, 330, 25, "Cover Sheet:");
       ot_cov_sheet->tooltip("Cover sheet .pdf file.");
       ot_cov_sheet->box(FL_GTK_DOWN_BOX);
       ot_cov_sheet->deactivate();
     } // Fl_Output* ot_cov_sheet
-    { pb_progress = new Fl_Progress(25, 590, 395, 25, "Progress");
+    { pb_progress = new Fl_Progress(25, 590, 445, 25, "Progress");
       pb_progress->tooltip("Your progress");
       pb_progress->box(FL_GTK_DOWN_BOX);
       pb_progress->user_data((void*)(this));
index 785dc08..009466f 100644 (file)
@@ -7,11 +7,11 @@ class ViewFluid {open
   Function {ViewFluid()} {open protected
   } {
     Fl_Window win_doctool {
-      label {Doc Tool}
-      protected xywh {379 134 585 630} type Double box GTK_DOWN_BOX resizable hotspot size_range {585 555 0 0} visible
+      label {Doc Tool} open
+      protected xywh {374 129 625 630} type Double box GTK_DOWN_BOX resizable hotspot size_range {585 555 0 0} visible
     } {
       Fl_Menu_Bar menu_bar {
-        protected xywh {0 0 585 20} box GTK_UP_BOX
+        protected xywh {0 0 625 20} box GTK_UP_BOX
       } {
         Submenu menu_file {
           label File open
@@ -101,30 +101,30 @@ Fl::run();}
         label Down
         protected tooltip {Move chapter down..} xywh {105 270 85 25} box GTK_UP_BOX deactivate
       }
-      Fl_Group {} {
-        protected xywh {200 45 365 575} resizable
+      Fl_Group {} {open
+        protected xywh {200 45 405 575} resizable
       } {
         Fl_Box lb_type {
           label Type
-          protected xywh {200 115 365 30} hide
+          protected xywh {200 115 405 30} hide
         }
         Fl_Output ot_src_dir {
           label {Source Directory:}
-          protected tooltip {Directory containing Sourcecode.} xywh {205 190 355 25} box GTK_DOWN_BOX align 5 hide deactivate
+          protected tooltip {Directory containing Sourcecode.} xywh {205 190 395 25} box GTK_DOWN_BOX align 5 hide deactivate
         }
         Fl_Button btn_open_src_dir {
           label Open
-          protected tooltip {Open directory containing source code.} xywh {325 220 115 25} box GTK_UP_BOX hide deactivate
+          protected tooltip {Open directory containing source code.} xywh {350 220 115 25} box GTK_UP_BOX hide deactivate
         }
         Fl_Box border_src {
-          protected xywh {200 145 365 125} box PLASTIC_DOWN_FRAME color 48 hide
+          protected xywh {200 145 405 125} box PLASTIC_DOWN_FRAME color 48 hide
         }
         Fl_Text_Editor tb_editor {
           label Text
-          protected tooltip {Enter your Latex text here.} xywh {200 50 365 440} box GTK_DOWN_FRAME
+          protected tooltip {Enter your Latex text here.} xywh {200 50 405 440} box GTK_DOWN_FRAME
         }
         Fl_Menu_Button menu_editor {
-          protected xywh {200 50 365 440} box GTK_UP_BOX deactivate
+          protected xywh {200 50 405 440} box GTK_UP_BOX deactivate
         } {
           Submenu menu_rclck_headl {
             label Headlines
@@ -219,23 +219,28 @@ Fl::run();}
             protected xywh {35 35 100 20}
           }
         }
-        Fl_Check_Button chb_finished {
-          label Finished
+        Fl_Check_Button chb_chapt_finished {
+          label {Chapter finished}
           user_data this
-          protected tooltip {Mark chapter as finished.} xywh {355 515 25 25} down_box GTK_DOWN_BOX deactivate
+          protected tooltip {Mark current chapter as finished.} xywh {350 500 25 25} down_box GTK_DOWN_BOX deactivate
+        }
+        Fl_Check_Button chb_all_finished {
+          label {All finished}
+          user_data this
+          protected tooltip {Mark all chapters as finished.} xywh {350 530 25 25} down_box GTK_DOWN_BOX deactivate
         }
         Fl_Button btn_next {
           label Next
-          protected tooltip {Edit next chapter.} xywh {440 505 125 45} box GTK_UP_BOX deactivate
+          protected tooltip {Edit next chapter.} xywh {480 505 125 45} box GTK_UP_BOX deactivate
         }
         Fl_Button btn_open_cov_sheet {
           label Open
-          protected tooltip {Select cover sheet .pdf file.} xywh {440 560 125 25} box GTK_UP_BOX deactivate
+          protected tooltip {Select cover sheet .pdf file.} xywh {480 560 125 25} box GTK_UP_BOX deactivate
         }
         Fl_Button btn_generate {
           label Generate
           user_data this
-          protected tooltip {Generate document.} xywh {440 590 125 25} box GTK_UP_BOX deactivate
+          protected tooltip {Generate document.} xywh {480 590 125 25} box GTK_UP_BOX deactivate
         }
       }
       Fl_Choice cb_author {
@@ -283,10 +288,10 @@ Fl::run();}
         protected xywh {140 500 200 25} box GTK_DOWN_BOX deactivate
       }
       Fl_Input ti_department {
-        label {Department:}
+        label {Group/Department:}
         protected xywh {140 530 200 25} box GTK_DOWN_BOX deactivate
       }
-      Fl_Menu_Button menu_department {
+      Fl_Menu_Button menu_department {selected
         protected xywh {30 530 310 25} box GTK_UP_BOX deactivate
       } {
         MenuItem menu_department_coord {
@@ -296,12 +301,12 @@ Fl::run();}
       }
       Fl_Output ot_cov_sheet {
         label {Cover Sheet:}
-        protected tooltip {Cover sheet .pdf file.} xywh {140 560 280 25} box GTK_DOWN_BOX deactivate
+        protected tooltip {Cover sheet .pdf file.} xywh {140 560 330 25} box GTK_DOWN_BOX deactivate
       }
       Fl_Progress pb_progress {
         label Progress
         user_data this
-        protected tooltip {Your progress} xywh {25 590 395 25} box GTK_DOWN_BOX deactivate
+        protected tooltip {Your progress} xywh {25 590 445 25} box GTK_DOWN_BOX deactivate
       }
     }
     Fl_Window win_chapt {
index 36d6f5e..7ecac29 100644 (file)
@@ -79,7 +79,8 @@ protected:
   static Fl_Menu_Item *menu_rclck_list;
   static Fl_Menu_Item *menu_rclck_newpage;
   static Fl_Menu_Item *menu_rclck_newline;
-  Fl_Check_Button *chb_finished;
+  Fl_Check_Button *chb_chapt_finished;
+  Fl_Check_Button *chb_all_finished;
   Fl_Button *btn_next;
   Fl_Button *btn_open_cov_sheet;
   Fl_Button *btn_generate;
index 36ef41d..c1e54ae 100644 (file)
        "ControllerIF.h"
        "ModelIF.h"
 
-1526270514 /home/giri/workspace/hsd_doku_tool/src/Controller.h
+1531915883 /home/giri/workspace/hsd_doku_tool/src/Controller.h
        <list>
        "ControllerIF.h"
        "Subject.h"
        "Model.h"
 
-1526270514 /home/giri/workspace/hsd_doku_tool/src/ControllerIF.h
+1531916039 /home/giri/workspace/hsd_doku_tool/src/ControllerIF.h
        <iostream>
        <memory>
 
-1526270514 /home/giri/workspace/hsd_doku_tool/src/ModelIF.h
+1531916726 /home/giri/workspace/hsd_doku_tool/src/ModelIF.h
        <memory>
        "Subject.h"
        "Author.h"
        <list>
        <vector>
 
-1526395355 source:/home/giri/workspace/hsd_doku_tool/src/Model.cxx
+1531920485 source:/home/giri/workspace/hsd_doku_tool/src/Model.cxx
        "Model.h"
        <iostream>
        <algorithm>
        <fstream>
        <sstream>
 
-1526270514 /home/giri/workspace/hsd_doku_tool/src/Model.h
+1531919573 /home/giri/workspace/hsd_doku_tool/src/Model.h
        "ModelIF.h"
        "tinyxml2.h"
        "ChapterIF.h"
        <android/log.h>
        <assert.h>
 
-1526388866 source:/home/giri/workspace/hsd_doku_tool/src/View.cxx
+1531921243 source:/home/giri/workspace/hsd_doku_tool/src/View.cxx
        "View.h"
        "Author.h"
        "ChapterIF.h"
        <iostream>
        <cstring>
 
-1526270514 /home/giri/workspace/hsd_doku_tool/src/View.h
+1531915104 /home/giri/workspace/hsd_doku_tool/src/View.h
        "ViewFluid.h"
        "Observer.h"
        "ModelIF.h"
 1524517363 /home/giri/workspace/hsd_doku_tool/src/ViewIF.h
        "Observer.h"
 
-1526270514 source:/home/giri/workspace/hsd_doku_tool/src/Controller.cxx
+1531917061 source:/home/giri/workspace/hsd_doku_tool/src/Controller.cxx
        "Controller.h"
        "View.h"
        "Author.h"
        "Subject.h"
        <algorithm>
 
-1531164934 /home/giri/workspace/hsd_doku_tool/src/ViewFluid.h
+1531921447 /home/giri/workspace/hsd_doku_tool/src/ViewFluid.h
        <FL/Fl.H>
        <FL/Fl_Double_Window.H>
        <FL/Fl_Menu_Bar.H>
 1524417896 source:/home/giri/workspace/hsd_doku_tool/src/Chapter.cxx
        "Chapter.h"
 
-1526270514 /home/giri/workspace/hsd_doku_tool/src/Author.h
+1531919398 /home/giri/workspace/hsd_doku_tool/src/Author.h
        <iostream>
        "Object.h"
 
-1526392941 source:/home/giri/workspace/hsd_doku_tool/src/FSHelper.cxx
+1531920765 source:/home/giri/workspace/hsd_doku_tool/src/FSHelper.cxx
        "FSHelper.h"
        <fstream>
        <dirent.h>
        <algorithm>
        <sys/wait.h>
 
-1526270514 /home/giri/workspace/hsd_doku_tool/src/FSHelper.h
+1531920698 /home/giri/workspace/hsd_doku_tool/src/FSHelper.h
        <iostream>
        <vector>
        "Object.h"
        "Fl_Valuator.H"
        "Fl_Input.H"
 
-1526270514 /home/giri/workspace/hsd_doku_tool/src/ChapterIF.h
+1531918853 /home/giri/workspace/hsd_doku_tool/src/ChapterIF.h
        <iostream>
        <fstream>
        <memory>
        "ModelIF.h"
        "FSHelper.h"
 
-1526270514 /home/giri/workspace/hsd_doku_tool/src/ChapterFactory.h
+1531919410 /home/giri/workspace/hsd_doku_tool/src/ChapterFactory.h
        "TextChapter.h"
        "DoxygenChapter.h"
        "SourceChapter.h"
 
-1526388866 /home/giri/workspace/hsd_doku_tool/src/TextChapter.h
+1531919346 /home/giri/workspace/hsd_doku_tool/src/TextChapter.h
        <iostream>
        "Object.h"
        "ChapterIF.h"
        <fstream>
 
-1526388866 /home/giri/workspace/hsd_doku_tool/src/DoxygenChapter.h
+1531918885 /home/giri/workspace/hsd_doku_tool/src/DoxygenChapter.h
        <iostream>
        "Object.h"
        <algorithm>
 
-1526388866 /home/giri/workspace/hsd_doku_tool/src/SourceChapter.h
+1531919321 /home/giri/workspace/hsd_doku_tool/src/SourceChapter.h
        <iostream>
        "Object.h"
        "ChapterIF.h"
 1526164599 source:/home/giri/workspace/hsd_doku_tool/src/ChapterFactory.cpp
        "ChapterFactory.h"
 
-1526270514 source:/home/giri/workspace/hsd_doku_tool/src/ChapterFactory.cxx
+1531919629 source:/home/giri/workspace/hsd_doku_tool/src/ChapterFactory.cxx
        "ChapterFactory.h"