*
* Nicolas Boichat, April-May 2004
*
+ * Version $Id$
*/
/*
- Copyright (C) 2004 Kern Sibbald and John Walker
+ Bacula® - The Network Backup Solution
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version.
+ Copyright (C) 2004-2006 Free Software Foundation Europe e.V.
- 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.
+ 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 three of the GNU Affero General Public
+ License as published by the Free Software Foundation and included
+ in the file LICENSE.
- You should have received a copy of the GNU General Public 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 Affero General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.
+
+ Bacula® is a registered trademark of Kern Sibbald.
+ The licensor of Bacula is the Free Software Foundation Europe
+ (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
+ Switzerland, email:ftf@fsfeurope.org.
+*/
#ifndef WXBRESTOREPANEL_H
#define WXBRESTOREPANEL_H
WX_DECLARE_LIST(wxEvent, wxbEventList);
+/* Class for storing directory entries (results from dir commands). */
+class wxbDirEntry {
+public:
+ wxString perm;
+ wxString nlink;
+ wxString user;
+ wxString group;
+ wxString size;
+ wxString date;
+ int marked; /* 0 - Not Marked, 1 - Marked, 2 - Some file under is marked */
+ wxString fullname; /* full name with path */
+ wxString filename; /* only filename, no path */
+};
+
/*
* wxbPanel for restoring files
*/
long totfilemessages; /* When restoring, number of files to be restored */
wxString jobid;
- /* Parse a table in tableParser */
- wxbTableParser* CreateAndWaitForParser(wxString cmd);
-
- /* Run a command, and waits until result is fully received,
- * if keepresults is true, returns a valid pointer to a wxbDataTokenizer
- * containing the data. */
- wxbDataTokenizer* WaitForEnd(wxString cmd, bool keepresults = false, bool linebyline = true);
-
- /* Run a command, and waits until prompt result is fully received,
- * if keepresults is true, returns a valid pointer to a wxbPromptParser
- * containing the data. */
- wxbPromptParser* WaitForPrompt(wxString cmd, bool keepresults = false);
-
/* Run a dir command, and waits until result is fully received.
* If recurse is true, update the children too. */
void UpdateTreeItem(wxTreeItemId item, bool updatelist, bool recurse);
/* Parse dir command results. */
- wxString* ParseList(wxString line);
+ int ParseList(wxString line, wxbDirEntry* entry);
/* Sets a list item state, and update its parents and children if it is a directory */
void SetListItemState(long listitem, int newstate);
/* Sets a tree item state, and update its children, parents and list (if necessary) */
void SetTreeItemState(wxTreeItemId item, int newstate);
-
+
/* Update a tree item parents' state */
void UpdateTreeItemState(wxTreeItemId item);
/* Refresh the whole tree. */
void RefreshTree();
-
+
/* Refresh file list */
void RefreshList();
-
+
/* Update first config, adapting settings to the job name selected */
void UpdateFirstConfig();
-
+
/* Update second config */
bool UpdateSecondConfig(wxbDataTokenizer* dt);
-
+
/* Status related */
enum status_enum
{
bool working; // A command is running, discard GUI events
void SetWorking(bool working);
bool IsWorking();
- bool markWhenListingDone;
+ bool markWhenCommandDone; //If an item should be (un)marked after the current listing/marking is done
wxTreeItemId currentTreeItem; // Currently selected tree item
/* Enable or disable config controls status */
void OnStart(wxCommandEvent& event);
void OnCancel(wxCommandEvent& event);
-
+
void OnTreeChanging(wxTreeEvent& event);
void OnTreeExpanding(wxTreeEvent& event);
void OnTreeChanged(wxTreeEvent& event);
void OnTreeAdd(wxCommandEvent& event);
void OnTreeRemove(wxCommandEvent& event);
void OnTreeRefresh(wxCommandEvent& event);
-
+
void OnListMarked(wxbListMarkedEvent& event);
void OnListActivated(wxListEvent& event);
void OnListChanged(wxListEvent& event);
void OnListAdd(wxCommandEvent& event);
void OnListRemove(wxCommandEvent& event);
void OnListRefresh(wxCommandEvent& event);
-
+
void OnConfigUpdated(wxCommandEvent& event);
void OnConfigOk(wxCommandEvent& WXUNUSED(event));
void OnConfigApply(wxCommandEvent& WXUNUSED(event));
wxButton* start;
wxButton* cancel;
-
+
wxbTreeCtrl* tree;
wxButton* treeadd;
wxButton* treeremove;
wxButton* treerefresh;
-
+
wxbListCtrl* list;
wxButton* listadd;
wxButton* listremove;
wxButton* listrefresh;
-
+
wxGauge* gauge;
-
+
long cfgUpdated; //keeps which config fields have been updated
friend class wxbSplitterWindow;
- DECLARE_EVENT_TABLE();
+ DECLARE_EVENT_TABLE();
};
#endif // WXBRESTOREPANEL_H
-