]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/qt-console/restore/restoretree.h
Backport from Bacula Enterprise
[bacula/bacula] / bacula / src / qt-console / restore / restoretree.h
index 589d2cd4e5b96702d8a9db6016d5fcc9bff9aa24..ae39d3c340c6ec9f0d1fb391f332b805195ef348 100644 (file)
@@ -2,35 +2,25 @@
 #define _RESTORETREE_H_
 
 /*
-   Bacula® - The Network Backup Solution
+   Bacula(R) - The Network Backup Solution
 
-   Copyright (C) 2007-2007 Free Software Foundation Europe e.V.
+   Copyright (C) 2000-2015 Kern Sibbald
+   Copyright (C) 2007-2014 Free Software Foundation Europe e.V.
 
-   The main author of Bacula is Kern Sibbald, with contributions from
-   many others, a complete list can be found in the file AUTHORS.
-   This program is Free Software; you can redistribute it and/or
-   modify it under the terms of version two of the GNU General Public
-   License as published by the Free Software Foundation and included
-   in the file LICENSE.
+   The original author of Bacula is Kern Sibbald, with contributions
+   from many others, a complete list can be found in the file AUTHORS.
 
-   This program is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-   General Public License for more details.
+   You may use this file and others of this release according to the
+   license defined in the LICENSE file, which includes the Affero General
+   Public License, v3.0 ("AGPLv3") and some additional permissions and
+   terms pursuant to its AGPLv3 Section 7.
 
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-   02110-1301, USA.
+   This notice must be preserved when any source code is 
+   conveyed and/or propagated.
 
-   Bacula® is a registered trademark of John Walker.
-   The licensor of Bacula is the Free Software Foundation Europe
-   (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
-   Switzerland, email:ftf@fsfeurope.org.
+   Bacula(R) is a registered trademark of Kern Sibbald.
 */
 /*
- *   Version $Id: restore.h 4945 2007-05-31 01:24:28Z bartleyd2 $
- *
  *  Kern Sibbald, February 2007
  */
 
@@ -38,6 +28,7 @@
 #include "pages.h"
 #include "ui_restoretree.h"
 
+
 /*  
  * A restore tree to view files in the catalog
  */
@@ -48,33 +39,74 @@ class restoreTree : public Pages, public Ui::restoreTreeForm
 public:
    restoreTree();
    ~restoreTree();
+   virtual void PgSeltreeWidgetClicked();
    virtual void currentStackItem();
+   enum folderCheckState
+   {
+      FolderUnchecked = 0,
+      FolderGreenChecked = 1,
+      FolderWhiteChecked = 2,
+      FolderBothChecked = 3
+   };
 
 private slots:
    void refreshButtonPushed();
+   void restoreButtonPushed();
    void jobComboChanged(int);
-   void directoryItemChanged(QTreeWidgetItem *, QTreeWidgetItem *);
-   void fileItemChanged(QTableWidgetItem *,QTableWidgetItem *);
+   void directoryCurrentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *);
+   void fileCurrentItemChanged(QTableWidgetItem *,QTableWidgetItem *);
    void directoryItemExpanded(QTreeWidgetItem *);
+   void setCheckofChildren(QTreeWidgetItem *item, Qt::CheckState);
+   void directoryItemChanged(QTreeWidgetItem *, int);
+   void fileTableItemChanged(QTableWidgetItem *);
+   void versionTableItemChanged(QTableWidgetItem *);
+   void updateRefresh();
+   void jobTableCellClicked(int, int);
 
 private:
    void populateDirectoryTree();
-   void parseDirectory(QString &dir_in);
-   bool addDirectory(QString &, QString &);
+   void populateJobTable();
+   void parseDirectory(const QString &dir_in);
    void setupPage();
    void writeSettings();
    void readSettings();
+   void fileExceptionInsert(QString &, QString &, Qt::CheckState);
+   void fileExceptionRemove(QString &, QString &);
+   void directoryTreeDisconnectedSet(QTreeWidgetItem *, Qt::CheckState);
+   void fileTableDisconnectedSet(QTableWidgetItem *, Qt::CheckState, bool color);
+   void versionTableDisconnectedSet(QTableWidgetItem *, Qt::CheckState);
+   void updateFileTableChecks();
+   void updateVersionTableChecks();
+   void directoryIconStateInsert(QString &, Qt::CheckState);
+   void directoryIconStateRemove();
+   void directorySetIcon(int operation, int change, QString &, QTreeWidgetItem* item);
+   void fullPathtoSubPaths(QStringList &, QString &);
+   int mostRecentVersionfromFullPath(QString &);
+   void setJobsCheckedList();
+   int queryFileIndex(QString &fullPath, int jobID);
+
+   QSplitter *m_splitter;
+   QString m_groupText;
+   QString m_splitText1;
+   QString m_splitText2;
    bool m_populated;
-   QRegExp m_winRegExpDrive;
-   QRegExp m_winRegExpPath;
-   QRegExp m_slashregex;
+   bool m_dropdownChanged;
    bool m_slashTrap;
-   //QString m_jobCondition;
    QHash<QString, QTreeWidgetItem *> m_dirPaths;
-   QString m_condition;
-   int m_resultCount;
+   QString m_checkedJobs, m_prevJobCombo, m_prevClientCombo, m_prevFileSetCombo;
+   int m_prevLimitSpinBox, m_prevDaysSpinBox;
+   Qt::CheckState m_prevLimitCheckState, m_prevDaysCheckState;
+   QString m_JobsCheckedList;
    int m_debugCnt;
    bool m_debugTrap;
+   QList<Qt::CheckState> m_fileCheckStateList;
+   QList<Qt::CheckState> m_versionCheckStateList;
+   QHash<QString, Qt::CheckState> m_fileExceptionHash;
+   QMultiHash<QString, QString> m_fileExceptionMulti;
+   QHash<QString, int> m_versionExceptionHash;
+   QHash<QString, int> m_directoryIconStateHash;
+   QHash<QString, int> m_directoryPathIdHash;
+   int m_toggleUpIndex, m_toggleDownIndex, m_nullFileNameId;
 };
 
 #endif /* _RESTORETREE_H_ */