]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/qt-console/restore/restore.h
Backport from Bacula Enterprise
[bacula/bacula] / bacula / src / qt-console / restore / restore.h
index debbc99368c633d7405bdc7ae4342760fc580453..87106350025aed331486a55118b825559b7ee52c 100644 (file)
@@ -2,40 +2,53 @@
 #define _RESTORE_H_
 
 /*
-   Bacula® - The Network Backup Solution
-
-   Copyright (C) 2007-2007 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 plus additions
-   that are listed in the file LICENSE.
-
-   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 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.
-
-   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) - The Network Backup Solution
+
+   Copyright (C) 2000-2015 Kern Sibbald
+   Copyright (C) 2007-2014 Free Software Foundation Europe e.V.
+
+   The original author of Bacula is Kern Sibbald, with contributions
+   from many others, a complete list can be found in the file AUTHORS.
+
+   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.
+
+   This notice must be preserved when any source code is 
+   conveyed and/or propagated.
+
+   Bacula(R) is a registered trademark of Kern Sibbald.
 */
 /*
- *   Version $Id$
  *
  *  Kern Sibbald, February 2007
  */
 
+#include <stdint.h>
+#include <sys/types.h>     /* Needed for some systems */
 #include <QtGui>
 #include "pages.h"
+#include "ui_runrestore.h"
+
+class bRestoreTable : public QTableWidget
+{
+   Q_OBJECT 
+private:
+   QPoint dragStartPosition;
+public:
+   bRestoreTable(QWidget *parent)
+      : QTableWidget(parent)
+   {
+   }
+   void mousePressEvent(QMouseEvent *event);
+   void mouseMoveEvent(QMouseEvent *event);
+
+   void dragEnterEvent(QDragEnterEvent *event);
+   void dragMoveEvent(QDragMoveEvent *event);
+   void dropEvent(QDropEvent *event);
+};
+
 #include "ui_brestore.h"
 #include "ui_restore.h"
 #include "ui_prerestore.h"
@@ -68,6 +81,7 @@ private slots:
    void jobIdEditFinished();
 
 private:
+   int m_conn;
    int jobdefsFromJob(QStringList &, QString &);
    void buildPage();
    bool checkJobIdList();
@@ -85,7 +99,8 @@ class restorePage : public Pages, public Ui::restoreForm
    Q_OBJECT 
 
 public:
-   restorePage();
+   restorePage(int conn);
+   ~restorePage();
    void fillDirectory();
    char *get_cwd();
    bool cwd(const char *);
@@ -101,12 +116,16 @@ private slots:
    void addDirectory(QString &);
 
 private:
+   int m_conn;
+   void writeSettings();
+   void readSettings();
    QString m_cwd;
    QHash<QString, QTreeWidgetItem *> m_dirPaths;
    QHash<QTreeWidgetItem *,QString> m_dirTreeItems;
+   QRegExp m_rx;
+   QString m_splitText;
 };
 
-
 class bRestore : public Pages, public Ui::bRestoreForm
 {
    Q_OBJECT 
@@ -114,11 +133,49 @@ class bRestore : public Pages, public Ui::bRestoreForm
 public:
    bRestore();
    ~bRestore();
+   void PgSeltreeWidgetClicked();
+   QString m_client;
+   QString m_jobids;
+   void get_info_from_selection(QStringList &fileids, QStringList &jobids,
+                                QStringList &dirids, QStringList &fileindexes);
 
 public slots:
+   void setClient();
+   void setJob();
+   void showInfoForFile(QTableWidgetItem *);
+   void applyLocation();
+   void clearVersions(QTableWidgetItem *);
+   void clearRestoreList();
+   void runRestore();
+   void refreshView();
+private:
+   QString m_path;
+   int64_t m_pathid;
+   QTableWidgetItem *m_current;
+   void setupPage();
+   bool m_populated;
+   void displayFiles(int64_t pathid, QString path);
+   void displayFileVersion(QString pathid, QString fnid, 
+                           QString client, QString filename);
+};
 
+class bRunRestore : public QDialog, public Ui::bRunRestoreForm
+{
+   Q_OBJECT 
 private:
+   bRestore *brestore;
+   QStringList m_fileids, m_jobids, m_dirids, m_findexes;
 
+public:
+   bRunRestore(bRestore *parent);
+   ~bRunRestore() {}
+   void computeVolumeList();
+   int64_t runRestore(QString tablename);
+
+public slots:
+   void useRegexp();
+   void UFRcb();
+   void computeRestore();
 };
 
 #endif /* _RESTORE_H_ */