/*
Bacula® - The Network Backup Solution
- Copyright (C) 2007-2010 Free Software Foundation Europe e.V.
+ Copyright (C) 2007-2011 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.
#include "restore.h"
#include "util/fmtwidgetitem.h"
-bRestore::bRestore()
+bRestore::bRestore() : Pages()
{
m_name = tr("bRestore");
m_client = "";
QTreeWidgetItem* thisitem = mainWin->getFromHash(this);
thisitem->setIcon(0, QIcon(QString::fromUtf8(":images/browse.png")));
m_populated = false;
+ m_closeable = false;
m_current = NULL;
RestoreList->setAcceptDrops(true);
}
Pmsg0(000, "update done\n");
}
-extern int decode_stat(char *buf, struct stat *statp, int32_t *LinkFI);
+extern int decode_stat(char *buf, struct stat *statp, int stat_size, int32_t *LinkFI);
// refresh button with a filter or limit/offset change
void bRestore::refreshView()
QString limit=QString().setNum(Offset2Spin->value() - Offset1Spin->value());
QString q = ".bvfs_lsdir jobid=" + m_jobids + arg
+ " limit=" + limit + " offset=" + offset ;
- qDebug() << q;
+ if (mainWin->m_miscDebug) qDebug() << q;
if (m_console->dir_cmd(q, results)) {
nb = results.size();
FileList->setRowCount(nb);
int col=0;
//PathId, FilenameId, fileid, jobid, lstat, path
fieldlist = resultline.split("\t");
+ /*
+ * Note, the next line zaps variable "item", probably
+ * because the input data in fieldlist is bad.
+ */
+ decode_stat(fieldlist.at(4).toLocal8Bit().data(), &statp, sizeof(statp), &LinkFI);
TableItemFormatter item(*FileList, row++);
item.setFileType(col++, QString("folder")); // folder or file
item.setTextFld(col++, fieldlist.at(5)); // path
- decode_stat(fieldlist.at(4).toLocal8Bit().data(),
- &statp, &LinkFI);
item.setBytesFld(col++, QString().setNum(statp.st_size));
item.setDateFld(col++, statp.st_mtime); // date
fieldlist.replace(3, m_jobids); // use current jobids selection
TableItemFormatter item(*FileList, row++);
item.setTextFld(col++, fieldlist.at(5)); // name
decode_stat(fieldlist.at(4).toLocal8Bit().data(),
- &statp, &LinkFI);
+ &statp, sizeof(statp), &LinkFI);
item.setBytesFld(col++, QString().setNum(statp.st_size));
item.setDateFld(col++, statp.st_mtime);
// keep original info on the first cel that is never empty
item.setTextFld(col++, fieldlist.at(6)); // Volume
item.setNumericFld(col++, fieldlist.at(3)); // JobId
decode_stat(fieldlist.at(4).toLocal8Bit().data(),
- &statp, &LinkFI);
+ &statp, sizeof(statp), &LinkFI);
item.setBytesFld(col++, QString().setNum(statp.st_size)); // size
item.setDateFld(col++, statp.st_mtime); // date
item.setTextFld(col++, fieldlist.at(5)); // chksum
}
QList<QTableWidgetItem *> lst = selectedItems();
- qDebug() << this << " selectedItems: " << lst;
+ if (mainWin->m_miscDebug) qDebug() << this << " selectedItems: " << lst;
if (lst.isEmpty()) {
return;
}
}
item.setTextFld(col++, fields.at(5)); // filename
decode_stat(fields.at(4).toLocal8Bit().data(),
- &statp, &LinkFI);
+ &statp, sizeof(statp), &LinkFI);
item.setBytesFld(col++, QString().setNum(statp.st_size)); // size
item.setDateFld(col++, statp.st_mtime); // date
item.setNumericFld(col++, fields.at(3)); // jobid
fileids << lst.at(2);
jobids << lst.at(3);
decode_stat(lst.at(4).toLocal8Bit().data(),
- &statp, &LinkFI);
+ &statp, sizeof(statp), &LinkFI);
if (LinkFI) {
findexes << lst.at(3) + "," + QString().setNum(LinkFI);
}
q += " when=\"" + WhenEditor->dateTime().toString("yyyy-MM-dd hh:mm:ss") + "\"";
q += " done yes";
- qDebug() << q;
+ if (mainWin->m_miscDebug) qDebug() << q;
QStringList results;
if (brestore->console()->dir_cmd(q, results)) {
foreach (QString resultline, results) {
if (m_findexes.size() > 0) {
q += " hardlink=" + m_findexes.join(",");
}
- qDebug() << q;
+ if (mainWin->m_miscDebug) qDebug() << q;
QStringList results;
if (brestore->console()->dir_cmd(q, results)) {
if (results.size() == 1 && results[0] == "OK") {
- qDebug() << "jobid=" << runRestore("b2123");
+ int64_t jobid = runRestore("b2123");
+ if (mainWin->m_miscDebug) qDebug() << "jobid=" << jobid;
q = ".bvfs_cleanup path=b2123";
brestore->console()->dir_cmd(q, results);
}