1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
/*
* khexedit - Versatile hex editor
* Copyright (C) 1999 Espen Sand, espensa@online.no
*
* 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.
*
* 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.
*
*/
#ifndef _EXPORT_DIALOG_H_
#define _EXPORT_DIALOG_H_
class QButtonGroup;
class QComboBox;
class QCheckBox;
class QFrame;
class QLabel;
class QLineEdit;
class QSpinBox;
class QWidgetStack;
class KSimpleConfig;
#include <kdialogbase.h>
#include "hexbuffer.h"
class CExportDialog : public KDialogBase
{
Q_OBJECT
public:
enum EPage
{
page_destination = 0,
page_option,
page_max
};
enum OptionPage
{
option_text = 0,
option_html,
option_rtf,
option_carray,
option_max
};
CExportDialog( QWidget *parent = 0, char *name = 0, bool modal = false );
~CExportDialog( void );
void writeConfiguration( void );
protected:
void showEvent( QShowEvent *e );
protected slots:
virtual void slotOk( void );
void destinationChanged(const QString &);
private:
struct SDestinationWidgets
{
QComboBox *formatCombo;
QLabel *fileExtraLabel;
QLineEdit *fileInput;
QLabel *fromLabel;
QLabel *toLabel;
QButtonGroup *rangeBox;
QLineEdit *fromInput;
QLineEdit *toInput;
};
struct SHtmlWidgets
{
QSpinBox *lineSpin;
QLineEdit *prefixInput;
QComboBox *topCombo;
QComboBox *bottomCombo;
QCheckBox *navigatorCheck;
QCheckBox *symlinkCheck;
QCheckBox *bwCheck;
};
struct SArrayWidgets
{
QLineEdit *nameInput;
QComboBox *typeCombo;
QSpinBox *lineSizeSpin;
QCheckBox *hexadecimalCheck;
};
private slots:
void rangeChanged( int id );
void formatChanged( int index );
void browserClicked( void );
private:
void setupDestinationPage( void );
void setupOptionPage( void );
void makeTextOption( void );
void makeHtmlOption( void );
void makeRtfOption( void );
void makeCArrayOption( void );
void readConfiguration( void );
bool collectRange( uint &mode, uint &start, uint &stop );
bool verifyPackage( const QString &path );
signals:
void exportText( const SExportText &e );
void exportHtml( const SExportHtml &e );
void exportCArray( const SExportCArray &e );
private:
QFrame *mFrame[ page_max ];
QWidgetStack *mOptionStack;
SDestinationWidgets mDestination;
SHtmlWidgets mHtml;
SArrayWidgets mArray;
KSimpleConfig *mConfig;
QString mWorkDir;
};
#endif
|