testdisk/src/qphotorec.h
2014-04-20 11:37:31 +02:00

100 lines
2.6 KiB
C++

//
// C++ Interface: qphotorec
//
// Description:
//
//
// Author: TestDisk and PhotoRec are written and maintained by Christophe GRENIER <grenier@cgsecurity.org>, (C) 2008
//
// Copyright: See COPYING file that comes with this distribution
//
//
#ifndef QPHOTOREC_H
#define QPHOTOREC_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include <QWidget>
#include <QListWidget>
#include <QComboBox>
#include <QTableWidget>
#include <QPushButton>
#include <QLabel>
#include <QLineEdit>
#include <QRadioButton>
#include <QProgressBar>
#include "types.h"
#include "common.h"
#include "filegen.h"
#include "photorec.h"
class QPhotorec: public QWidget
{
Q_OBJECT
public:
QPhotorec(QWidget *parent = 0);
~QPhotorec();
private slots:
/* Setup recovery UI */
void disk_changed(int index);
void partition_selected();
void setExistingDirectory();
void newSourceFile();
void qphotorec_about();
void qphotorec_formats();
void qphotorec_search();
void buttons_updateUI();
/* Recovery UI */
void qphotorec_search_updateUI();
void stop_and_quit();
/* Formats */
void formats_reset();
void formats_restore();
protected:
void setupUI();
void clearWidgets();
int no_disk_warning();
QWidget *copyright(QWidget * qwparent = 0);
QTableWidgetItem *offset_to_item(const disk_t *disk, const uint64_t offset);
void PartListWidget_updateUI();
void HDDlistWidget_updateUI();
int photorec(alloc_data_t *list_search_space);
pstatus_t photorec_find_blocksize(alloc_data_t *list_search_space);
pstatus_t photorec_aux(alloc_data_t *list_search_space);
void qphotorec_search_setupUI();
void photorec_info(const file_stat_t *file_stats);
void select_disk(disk_t *disk);
signals:
void finished();
private:
/* */
list_disk_t *list_disk;
disk_t *selected_disk;
list_part_t *list_part;
partition_t *selected_partition;
struct ph_param *params;
struct ph_options *options;
bool stop_the_recovery;
/* Setup recovery UI */
QComboBox *HDDlistWidget;
QTableWidget *PartListWidget;
QLineEdit *directoryLabel;
QPushButton *button_search;
QRadioButton *qextRadioButton;
QRadioButton *qfatRadioButton;
QRadioButton *qfreeRadioButton;
QRadioButton *qwholeRadioButton;
/* Recovery UI */
QLabel *folder_txt;
QLabel *progress_info;
QLabel *progress_filefound;
QProgressBar *progress_bar;
QTimer *timer;
QTableWidget *filestatsWidget;
/* Formats */
QListWidget *formats;
};
#endif