FORMS += console/console.ui
FORMS += restore/restore.ui restore/prerestore.ui restore/brestore.ui
FORMS += restore/restoretree.ui
-FORMS += restore/restoretreerun.ui
FORMS += run/run.ui run/runcmd.ui run/estimate.ui run/prune.ui
FORMS += select/select.ui
FORMS += medialist/medialist.ui mediaedit/mediaedit.ui joblist/joblist.ui
## RestoreTree
HEADERS += restore/restoretree.h
SOURCES += restore/restoretree.cpp
-HEADERS += restore/restoretreerun.h
-SOURCES += restore/restoretreerun.cpp
## Job Step Graphs
HEADERS += jobgraphs/jobplot.h
#include "bat.h"
#include "restoretree.h"
#include "pages.h"
-#include "restoretreerun.h"
restoreTree::restoreTree()
{
m_slashregex.setPattern("/");
m_debugCnt = 0;
m_debugTrap = true;
+ /* progress widgets */
+ prBar1->setVisible(false);
+ prBar2->setVisible(false);
+ prLabel1->setVisible(false);
+ prLabel2->setVisible(false);
}
restoreTree::~restoreTree()
m_versionExceptionHash.clear();
m_directoryIconStateHash.clear();
-
+ /* Set progress bars and repaint */
+ prBar1->setVisible(true);
+ prBar1->setRange(0,2);
+ prBar1->setValue(0);
+ prLabel1->setText("Task 1 of 2");
+ prLabel1->setVisible(true);
+ prBar2->setVisible(true);
+ prBar2->setRange(0,0);
+ prLabel2->setText("Querying Database");
+ prLabel2->setVisible(true);
+ repaint();
+
int clientIndex = clientCombo->currentIndex();
int fileSetIndex = fileSetCombo->currentIndex();
QString jobComboText = jobCombo->itemText(jobCombo->currentIndex());
if (mainWin->m_sqlDebug) {
Pmsg1(000, "Query cmd : %s\n", cmd.toUtf8().data());
}
+ prBar1->setValue(1);
+ prLabel1->setText("Task 2 of 2");
QStringList directories;
if (m_console->sql_cmd(cmd, directories)) {
if (mainWin->m_miscDebug) {
Pmsg1(000, "Done with query %i directories\n", directories.count());
}
+ prBar2->setValue(0);
+ prBar2->setRange(0,directories.count());
+ prLabel2->setText("Processing Directories");
+ repaint();
foreach(QString directory, directories) {
m_debugCnt += 1;
+ prBar2->setValue(m_debugCnt);
parseDirectory(directory);
}
}
+ prBar1->setVisible(false);
+ prBar2->setVisible(false);
+ prLabel1->setVisible(false);
+ prLabel2->setVisible(false);
}
/*
*/
void restoreTree::restoreButtonPushed()
{
+ /* Set progress bars and repaint */
+ prLabel1->setVisible(true);
+ prLabel1->setText("Task 1 of 3");
+ prLabel2->setVisible(true);
+ prLabel2->setText("Processing Checked directories");
+ prBar1->setVisible(true);
+ prBar1->setRange(0, 3);
+ prBar1->setValue(0);
+ prBar2->setVisible(true);
+ prBar2->setRange(0, 0);
+ repaint();
QMultiHash<int, QString> versionFilesMulti;
+ int vFMCounter = 0;
QHash <QString, bool> fullPathDone;
QHash <QString, int> fileIndexHash;
if ((mainWin->m_rtRestore1Debug) || (mainWin->m_rtRestore2Debug) || (mainWin->m_rtRestore3Debug))
Pmsg0(000, "In restoreTree::restoreButtonPushed\n");
+ /* Use a tree widget item iterator to count directories for the progress bar */
+ QTreeWidgetItemIterator diterc(directoryTree, QTreeWidgetItemIterator::Checked);
+ int ditcount = 0;
+ while (*diterc) {
+ ditcount += 1;
+ ++diterc;
+ } /* while (*diterc) */
+ prBar2->setRange(0, ditcount);
+ prBar2->setValue(0);
+ ditcount = 0;
/* Use a tree widget item iterator filtering for Checked Items */
QTreeWidgetItemIterator diter(directoryTree, QTreeWidgetItemIterator::Checked);
while (*diter) {
if (mainWin->m_sqlDebug) Pmsg1(000, "Query cmd : %s\n", cmd.toUtf8().data());
QStringList results;
if (m_console->sql_cmd(cmd, results)) {
-
QStringList fieldlist;
int row = 0;
fullPathDone.insert(fullPath, 1);
fileIndexHash.insert(fullPath, fileIndex);
versionFilesMulti.insert(version, fullPath);
+ vFMCounter += 1;
}
row++;
}
}
+ ditcount += 1;
+ prBar2->setValue(ditcount);
++diter;
} /* while (*diter) */
+ prBar1->setValue(1);
+ prLabel1->setText("Task 2 of 3");
+ prLabel2->setText("Processing Exceptions");
+ prBar2->setRange(0, 0);
+ repaint();
/* There may be some exceptions not accounted for yet with fullPathDone */
QHashIterator<QString, Qt::CheckState> ftera(m_fileExceptionHash);
if (mainWin->m_rtRestore1Debug)
Pmsg2(000, "Restoring %s file %s\n", debugtext.toUtf8().data(), fullPath.toUtf8().data());
versionFilesMulti.insert(version, fullPath);
+ vFMCounter += 1;
fileIndexHash.insert(fullPath, fileIndex);
} /* if fullPathDone.value(fullPath, 0) == 0 */
} /* if state != 0 */
} /* while ftera.hasNext */
+ /* The progress bars for the next step */
+ prBar1->setValue(2);
+ prLabel1->setText("Task 3 of 3");
+ prLabel2->setText("Filling Database Table");
+ prBar2->setRange(0, vFMCounter);
+ vFMCounter = 0;
+ prBar2->setValue(vFMCounter);
+ repaint();
/* now for the final spit out of the versions and lists of files for each version */
QHash<int, int> doneKeys;
int fileIndex = fileIndexHash.value(ffullPath);
if (mainWin->m_rtRestore2Debug) Pmsg2(000, " file->%s id %i\n", ffullPath.toUtf8().data(), fileIndex);
QString sqlcmd = "INSERT INTO " + tempTable + " (JobId, FileIndex) VALUES (" + QString("%1").arg(fversion) + ", " + QString("%1").arg(fileIndex) + ")";
- if (mainWin->m_sqlDebug)
- Pmsg1(000, "Query cmd : %s ;\n", sqlcmd.toUtf8().data());
+ if (mainWin->m_rtRestore3Debug)
+ Pmsg1(000, "Insert cmd : %s\n", sqlcmd.toUtf8().data());
QStringList results;
if (!m_console->sql_cmd(sqlcmd, results))
Pmsg1(000, "INSERT INTO FAILED!!!! %s\n", sqlcmd.toUtf8().data());
+ prBar2->setValue(++vFMCounter);
} /* foreach fullPathList */
doneKeys.insert(fversion,1);
jobList.append(fversion);
} /* if (doneKeys.value(fversion, 0) == 0) */
} /* while (vFMiter.hasNext()) */
if (tempTable != "") {
- QTreeWidgetItem* pageSelectorTreeWidgetItem = mainWin->getFromHash(this);
- new restoreTreeRunPage(tempTable, m_prevClientCombo, jobList, pageSelectorTreeWidgetItem);
+ /* a table was made, lets run the job */
+ QString jobOption = " jobid=\"";
+ bool first = true;
+ /* create a list of jobs comma separated */
+ foreach (int job, jobList) {
+ if (first) first = false;
+ else jobOption += ",";
+ jobOption += QString("%1").arg(job);
+ }
+ jobOption += "\"";
+ QString cmd = QString("restore");
+ cmd += jobOption +
+ " file=\"?" + tempTable + "\" done";
+ if (mainWin->m_commandDebug)
+ Pmsg1(000, "preRestore command \'%s\'\n", cmd.toUtf8().data());
+ consoleCommand(cmd);
}
+ /* turn off the progress widgets */
+ prBar1->setVisible(false);
+ prBar2->setVisible(false);
+ prLabel1->setVisible(false);
+ prLabel2->setVisible(false);
}
int restoreTree::mostRecentVersionfromFullPath(QString &fullPath)
<rect>
<x>0</x>
<y>0</y>
- <width>440</width>
- <height>327</height>
+ <width>411</width>
+ <height>295</height>
</rect>
</property>
<property name="windowTitle" >
<property name="spacing" >
<number>6</number>
</property>
- <item row="1" column="0" >
- <layout class="QGridLayout" >
- <property name="margin" >
- <number>0</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item row="0" column="0" >
- <widget class="QLabel" name="directoryLabel" >
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Directory</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0" >
- <layout class="QHBoxLayout" >
- <property name="margin" >
- <number>0</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QPushButton" name="refreshButton" >
- <property name="text" >
- <string>Refresh</string>
- </property>
- <property name="icon" >
- <iconset resource="../main.qrc" >:/images/view-refresh.svg</iconset>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QComboBox" name="jobCombo" />
- </item>
- <item>
- <widget class="QComboBox" name="clientCombo" />
- </item>
- <item>
- <widget class="QComboBox" name="fileSetCombo" />
- </item>
- <item>
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>21</width>
- <height>26</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QPushButton" name="restoreButton" >
- <property name="text" >
- <string>Restore</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </item>
<item row="0" column="0" >
<widget class="QSplitter" name="splitter" >
<property name="sizePolicy" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
- <widget class="QWidget" name="layoutWidget" >
+ <widget class="QWidget" name="" >
<layout class="QGridLayout" >
<property name="margin" >
<number>0</number>
<property name="spacing" >
<number>6</number>
</property>
- <item row="1" column="0" >
- <widget class="QTableWidget" name="jobTable" />
+ <item row="3" column="0" >
+ <widget class="QProgressBar" name="prBar1" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="value" >
+ <number>24</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="prLabel1" >
+ <property name="text" >
+ <string>TextLabel</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
</item>
<item row="0" column="0" >
<widget class="QLabel" name="jobLabel" >
</property>
</widget>
</item>
+ <item row="5" column="0" >
+ <widget class="QProgressBar" name="prBar2" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="value" >
+ <number>24</number>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" >
+ <widget class="QLabel" name="prLabel2" >
+ <property name="text" >
+ <string>TextLabel</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QTableWidget" name="jobTable" />
+ </item>
</layout>
</widget>
<widget class="QTreeWidget" name="directoryTree" />
</widget>
</widget>
</item>
+ <item row="1" column="0" >
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="directoryLabel" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Directory</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="refreshButton" >
+ <property name="text" >
+ <string>Refresh</string>
+ </property>
+ <property name="icon" >
+ <iconset resource="../main.qrc" >:/images/view-refresh.svg</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="jobCombo" />
+ </item>
+ <item>
+ <widget class="QComboBox" name="clientCombo" />
+ </item>
+ <item>
+ <widget class="QComboBox" name="fileSetCombo" />
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>21</width>
+ <height>26</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="restoreButton" >
+ <property name="text" >
+ <string>Restore</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
</layout>
<action name="actionSelectDirectory" >
<property name="icon" >
+++ /dev/null
-/*
- 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 and included
- 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.
-*/
-
-/*
- * Run Command Dialog class
- *
- * This is called when a Run Command signal is received from the
- * Director. We parse the Director's output and throw up a
- * dialog box. This happens, for example, after the user finishes
- * selecting files to be restored. The Director will then submit a
- * run command, that causes this page to be popped up.
- *
- * Kern Sibbald, March MMVII
- *
- * $Id$
- */
-
-#include "bat.h"
-#include "restoretreerun.h"
-
-/*
- * Setup all the combo boxes and display the dialog
- */
-restoreTreeRunPage::restoreTreeRunPage(QString &table, QString &client, QList<int> &jobs, QTreeWidgetItem* parentItem)
-{
- m_tempTable = table;
- m_jobList = jobs;
- m_client = client;
- m_name = "Restore Tree Run";
- pgInitialize(parentItem);
- setupUi(this);
- QTreeWidgetItem* thisitem = mainWin->getFromHash(this);
- thisitem->setIcon(0,QIcon(QString::fromUtf8(":images/restore.png")));
- m_console->notify(false);
-
- fill();
- m_console->discardToPrompt();
-
- connect(okButton, SIGNAL(pressed()), this, SLOT(okButtonPushed()));
- connect(cancelButton, SIGNAL(pressed()), this, SLOT(cancelButtonPushed()));
- dockPage();
- setCurrent();
- this->show();
-}
-
-void restoreTreeRunPage::fill()
-{
- QDateTime dt;
- clientCombo->addItems(m_console->client_list);
- clientCombo->setCurrentIndex(clientCombo->findText(m_client, Qt::MatchExactly));
- replaceCombo->addItems(QStringList() << "never" << "always" << "ifnewer" << "ifolder");
- replaceCombo->setCurrentIndex(replaceCombo->findText("never", Qt::MatchExactly));
- dateTimeEdit->setDisplayFormat(mainWin->m_dtformat);
- dateTimeEdit->setDateTime(dt.currentDateTime());
-}
-
-void restoreTreeRunPage::okButtonPushed()
-{
- QString jobOption = " jobid=\"";
- bool first = true;
- foreach (int job, m_jobList) {
- if (first) first = false;
- else jobOption += ",";
- jobOption += QString("%1").arg(job);
- }
- jobOption += "\"";
- QString cmd = QString("restore");
- cmd += jobOption +
- " file=\"?" + m_tempTable + "\" yes"
- " replace=\"" + replaceCombo->currentText() + "\""
- " when=\"" + dateTimeEdit->dateTime().toString(mainWin->m_dtformat) + "\""
- " restoreclient=\"" + clientCombo->currentText() + "\"";
- if (mainWin->m_commandDebug)
- Pmsg1(000, "preRestore command \'%s\'\n", cmd.toUtf8().data());
- consoleCommand(cmd);
- mainWin->resetFocus();
- closeStackPage();
-
-/* QString cmd(".mod");
- cmd += " bootstrap=\"" + bootstrap->text() + "\"";
- cmd += " where=\"" + where->text() + "\"";
- QString pri;
- QTextStream(&pri) << " priority=\"" << prioritySpin->value() << "\"";
- cmd += pri;
- cmd += " yes\n"; */
-}
-
-
-void restoreTreeRunPage::cancelButtonPushed()
-{
- m_console->displayToPrompt();
- m_console->write_dir(".");
- m_console->displayToPrompt();
- mainWin->set_status(" Canceled");
- this->hide();
- m_console->notify(true);
- closeStackPage();
- mainWin->resetFocus();
-}
+++ /dev/null
-
-#ifndef _RESTORETREERUN_H_
-#define _RESTORETREERUN_H_
-
-#include <QtGui>
-#include "ui_restoretreerun.h"
-#include "console.h"
-
-class restoreTreeRunPage : public Pages, public Ui::restoreTreeRunForm
-{
- Q_OBJECT
-
-public:
- restoreTreeRunPage(QString &, QString &, QList<int> &, QTreeWidgetItem*);
-
-public slots:
- void okButtonPushed();
- void cancelButtonPushed();
-
-private:
- void fill();
- QString m_tempTable;
- QString m_client;
- QList<int> m_jobList;
-};
-
-#endif /* _RESTORETREERUN_H_ */
+++ /dev/null
-<ui version="4.0" >
- <class>restoreTreeRunForm</class>
- <widget class="QWidget" name="restoreTreeRunForm" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>484</width>
- <height>268</height>
- </rect>
- </property>
- <property name="windowTitle" >
- <string>Form</string>
- </property>
- <layout class="QGridLayout" >
- <property name="margin" >
- <number>9</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item row="2" column="1" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="0" column="1" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="1" column="1" >
- <layout class="QGridLayout" >
- <property name="margin" >
- <number>0</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item row="1" column="0" >
- <layout class="QGridLayout" >
- <property name="margin" >
- <number>0</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item row="1" column="1" >
- <widget class="QComboBox" name="replaceCombo" />
- </item>
- <item row="1" column="0" >
- <widget class="QLabel" name="label_13" >
- <property name="text" >
- <string>Replace:</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1" >
- <widget class="QComboBox" name="clientCombo" />
- </item>
- <item row="2" column="1" >
- <widget class="QDateTimeEdit" name="dateTimeEdit" >
- <property name="dateTime" >
- <datetime>
- <hour>0</hour>
- <minute>2</minute>
- <second>0</second>
- <year>2000</year>
- <month>1</month>
- <day>1</day>
- </datetime>
- </property>
- <property name="displayFormat" >
- <string>yyyy-mm-dd hh:mm:ss</string>
- </property>
- <property name="calendarPopup" >
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item row="4" column="0" >
- <widget class="QLabel" name="label_5" >
- <property name="text" >
- <string>Where:</string>
- </property>
- <property name="openExternalLinks" >
- <bool>true</bool>
- </property>
- <property name="buddy" >
- <cstring>where</cstring>
- </property>
- </widget>
- </item>
- <item row="4" column="1" >
- <widget class="QLineEdit" name="where" >
- <property name="enabled" >
- <bool>true</bool>
- </property>
- <property name="minimumSize" >
- <size>
- <width>200</width>
- <height>0</height>
- </size>
- </property>
- <property name="readOnly" >
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item row="3" column="1" >
- <widget class="QLineEdit" name="bootstrap" >
- <property name="enabled" >
- <bool>true</bool>
- </property>
- <property name="minimumSize" >
- <size>
- <width>200</width>
- <height>0</height>
- </size>
- </property>
- <property name="readOnly" >
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item row="2" column="0" >
- <widget class="QLabel" name="label" >
- <property name="text" >
- <string>When:</string>
- </property>
- <property name="buddy" >
- <cstring>dateTimeEdit</cstring>
- </property>
- </widget>
- </item>
- <item row="0" column="0" >
- <widget class="QLabel" name="label_8" >
- <property name="text" >
- <string>To client:</string>
- </property>
- <property name="buddy" >
- <cstring>clientCombo</cstring>
- </property>
- </widget>
- </item>
- <item row="3" column="0" >
- <widget class="QLabel" name="label_12" >
- <property name="text" >
- <string>Bootstrap:</string>
- </property>
- <property name="buddy" >
- <cstring>bootstrap</cstring>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item row="1" column="1" >
- <layout class="QVBoxLayout" >
- <property name="margin" >
- <number>0</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <layout class="QHBoxLayout" >
- <property name="margin" >
- <number>0</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QLabel" name="label_4" >
- <property name="text" >
- <string>Priority:</string>
- </property>
- <property name="buddy" >
- <cstring>prioritySpin</cstring>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSpinBox" name="prioritySpin" >
- <property name="maximum" >
- <number>10000</number>
- </property>
- <property name="minimum" >
- <number>1</number>
- </property>
- <property name="value" >
- <number>12</number>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>171</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item row="2" column="0" colspan="2" >
- <layout class="QHBoxLayout" >
- <property name="margin" >
- <number>0</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QPushButton" name="okButton" >
- <property name="text" >
- <string>OK</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="cancelButton" >
- <property name="text" >
- <string>Cancel</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item row="0" column="0" colspan="2" >
- <layout class="QHBoxLayout" >
- <property name="margin" >
- <number>0</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType" >
- <enum>QSizePolicy::Fixed</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>131</width>
- <height>25</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QLabel" name="run" >
- <property name="maximumSize" >
- <size>
- <width>16777215</width>
- <height>30</height>
- </size>
- </property>
- <property name="text" >
- <string><h3>Run RestoreTree Job</h3></string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignCenter</set>
- </property>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType" >
- <enum>QSizePolicy::Fixed</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>131</width>
- <height>25</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- <item row="1" column="0" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="1" column="2" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>