qhexedit2/ 0000755 0001750 0001750 00000000000 14002337727 012640 5 ustar carsten carsten qhexedit2/example/ 0000775 0001750 0001750 00000000000 13716244704 014300 5 ustar carsten carsten qhexedit2/example/qhexedit.qrc 0000664 0001750 0001750 00000000433 13716244704 016622 0 ustar carsten carsten
images/open.png
images/save.png
images/undo.png
images/redo.png
images/find.png
images/qhexedit.ico
qhexedit2/example/optionsdialog.h 0000664 0001750 0001750 00000001453 13716244704 017327 0 ustar carsten carsten #ifndef OPTIONSDIALOG_H
#define OPTIONSDIALOG_H
#include
#include
namespace Ui {
class OptionsDialog;
}
class OptionsDialog : public QDialog
{
Q_OBJECT
public:
explicit OptionsDialog(QWidget *parent = 0);
~OptionsDialog();
Ui::OptionsDialog *ui;
void show();
public slots:
virtual void accept();
private slots:
void on_pbHighlightingColor_clicked();
void on_pbAddressAreaColor_clicked();
void on_pbAddressFontColor_clicked();
void on_pbAsciiAreaColor_clicked();
void on_pbAsciiFontColor_clicked();
void on_pbHexFontColor_clicked();
void on_pbSelectionColor_clicked();
void on_pbWidgetFont_clicked();
private:
void readSettings();
void writeSettings();
void setColor(QWidget *widget, QColor color);
};
#endif // OPTIONSDIALOG_H
qhexedit2/example/searchdialog.ui 0000664 0001750 0001750 00000012203 13716244704 017262 0 ustar carsten carsten
SearchDialog
0
0
436
223
QHexEdit - Find/Replace
-
-
Find
-
-
Hex
-
UTF-8
-
0
0
true
-
Replace
-
-
Hex
-
UTF-8
-
0
0
true
-
Options
-
&Backwards
-
&Prompt on replace
-
-
&Find
F3
true
-
&Replace
-
Replace &All
-
&Close
-
Qt::Vertical
20
40
cbFind
cbReplace
cbFindFormat
cbReplaceFormat
cbBackwards
cbPrompt
pbFind
pbReplace
pbReplaceAll
pbCancel
pbCancel
clicked()
SearchDialog
hide()
360
134
364
162
qhexedit2/example/searchdialog.cpp 0000664 0001750 0001750 00000005414 13716244704 017435 0 ustar carsten carsten #include "searchdialog.h"
#include "ui_searchdialog.h"
#include
SearchDialog::SearchDialog(QHexEdit *hexEdit, QWidget *parent) :
QDialog(parent),
ui(new Ui::SearchDialog)
{
ui->setupUi(this);
_hexEdit = hexEdit;
}
SearchDialog::~SearchDialog()
{
delete ui;
}
qint64 SearchDialog::findNext()
{
qint64 from = _hexEdit->cursorPosition() / 2;
_findBa = getContent(ui->cbFindFormat->currentIndex(), ui->cbFind->currentText());
qint64 idx = -1;
if (_findBa.length() > 0)
{
if (ui->cbBackwards->isChecked())
idx = _hexEdit->lastIndexOf(_findBa, from);
else
idx = _hexEdit->indexOf(_findBa, from);
}
return idx;
}
void SearchDialog::on_pbFind_clicked()
{
findNext();
}
void SearchDialog::on_pbReplace_clicked()
{
int idx = findNext();
if (idx >= 0)
{
QByteArray replaceBa = getContent(ui->cbReplaceFormat->currentIndex(), ui->cbReplace->currentText());
replaceOccurrence(idx, replaceBa);
}
}
void SearchDialog::on_pbReplaceAll_clicked()
{
int replaceCounter = 0;
int idx = 0;
int goOn = QMessageBox::Yes;
while ((idx >= 0) && (goOn == QMessageBox::Yes))
{
idx = findNext();
if (idx >= 0)
{
QByteArray replaceBa = getContent(ui->cbReplaceFormat->currentIndex(), ui->cbReplace->currentText());
int result = replaceOccurrence(idx, replaceBa);
if (result == QMessageBox::Yes)
replaceCounter += 1;
if (result == QMessageBox::Cancel)
goOn = result;
}
}
if (replaceCounter > 0)
QMessageBox::information(this, tr("QHexEdit"), QString(tr("%1 occurrences replaced.")).arg(replaceCounter));
}
QByteArray SearchDialog::getContent(int comboIndex, const QString &input)
{
QByteArray findBa;
switch (comboIndex)
{
case 0: // hex
findBa = QByteArray::fromHex(input.toLatin1());
break;
case 1: // text
findBa = input.toUtf8();
break;
}
return findBa;
}
qint64 SearchDialog::replaceOccurrence(qint64 idx, const QByteArray &replaceBa)
{
int result = QMessageBox::Yes;
if (replaceBa.length() >= 0)
{
if (ui->cbPrompt->isChecked())
{
result = QMessageBox::question(this, tr("QHexEdit"),
tr("Replace occurrence?"),
QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel);
if (result == QMessageBox::Yes)
{
_hexEdit->replace(idx, replaceBa.length(), replaceBa);
_hexEdit->update();
}
}
else
{
_hexEdit->replace(idx, _findBa.length(), replaceBa);
}
}
return result;
}
qhexedit2/example/optionsdialog.cpp 0000664 0001750 0001750 00000012642 13716244704 017664 0 ustar carsten carsten
#include
#include
#include "optionsdialog.h"
#include "ui_optionsdialog.h"
OptionsDialog::OptionsDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::OptionsDialog)
{
ui->setupUi(this);
readSettings();
writeSettings();
}
OptionsDialog::~OptionsDialog()
{
delete ui;
}
void OptionsDialog::show()
{
readSettings();
QWidget::show();
}
void OptionsDialog::accept()
{
writeSettings();
emit accepted();
QDialog::hide();
}
void OptionsDialog::readSettings()
{
QSettings settings;
ui->cbAddressArea->setChecked(settings.value("AddressArea", true).toBool());
ui->cbAsciiArea->setChecked(settings.value("AsciiArea", true).toBool());
ui->cbHighlighting->setChecked(settings.value("Highlighting", true).toBool());
ui->cbOverwriteMode->setChecked(settings.value("OverwriteMode", true).toBool());
ui->cbReadOnly->setChecked(settings.value("ReadOnly").toBool());
setColor(ui->lbHighlightingColor, settings.value("HighlightingColor", QColor(0xff, 0xff, 0x99, 0xff)).value());
setColor(ui->lbSelectionColor, settings.value("SelectionColor", this->palette().highlight().color()).value());
setColor(ui->lbAddressAreaColor, settings.value("AddressAreaColor", this->palette().alternateBase().color()).value());
setColor(ui->lbAddressFontColor, settings.value("AddressFontColor", QPalette::WindowText).value());
setColor(ui->lbAsciiAreaColor, settings.value("AsciiAreaColor", this->palette().alternateBase().color()).value());
setColor(ui->lbAsciiFontColor, settings.value("AsciiFontColor", QPalette::WindowText).value());
setColor(ui->lbHexFontColor, settings.value("HexFontColor", QPalette::WindowText).value());
#ifdef Q_OS_WIN32
ui->leWidgetFont->setFont(settings.value("WidgetFont", QFont("Courier", 10)).value());
#else
ui->leWidgetFont->setFont(settings.value("WidgetFont", QFont("Monospace", 10)).value());
#endif
ui->sbAddressAreaWidth->setValue(settings.value("AddressAreaWidth", 4).toInt());
ui->sbBytesPerLine->setValue(settings.value("BytesPerLine", 16).toInt());
}
void OptionsDialog::writeSettings()
{
QSettings settings;
settings.setValue("AddressArea", ui->cbAddressArea->isChecked());
settings.setValue("AsciiArea", ui->cbAsciiArea->isChecked());
settings.setValue("Highlighting", ui->cbHighlighting->isChecked());
settings.setValue("OverwriteMode", ui->cbOverwriteMode->isChecked());
settings.setValue("ReadOnly", ui->cbReadOnly->isChecked());
settings.setValue("HighlightingColor", ui->lbHighlightingColor->palette().color(QPalette::Background));
settings.setValue("SelectionColor", ui->lbSelectionColor->palette().color(QPalette::Background));
settings.setValue("AddressAreaColor", ui->lbAddressAreaColor->palette().color(QPalette::Background));
settings.setValue("AddressFontColor", ui->lbAddressFontColor->palette().color(QPalette::Background));
settings.setValue("AsciiAreaColor", ui->lbAsciiAreaColor->palette().color(QPalette::Background));
settings.setValue("AsciiFontColor", ui->lbAsciiFontColor->palette().color(QPalette::Background));
settings.setValue("HexFontColor", ui->lbHexFontColor->palette().color(QPalette::Background));
settings.setValue("WidgetFont", ui->leWidgetFont->font());
settings.setValue("AddressAreaWidth", ui->sbAddressAreaWidth->value());
settings.setValue("BytesPerLine", ui->sbBytesPerLine->value());
}
void OptionsDialog::setColor(QWidget *widget, QColor color)
{
QPalette palette = widget->palette();
palette.setColor(QPalette::Background, color);
widget->setPalette(palette);
widget->setAutoFillBackground(true);
}
void OptionsDialog::on_pbHighlightingColor_clicked()
{
QColor color = QColorDialog::getColor(ui->lbHighlightingColor->palette().color(QPalette::Background), this);
if (color.isValid())
setColor(ui->lbHighlightingColor, color);
}
void OptionsDialog::on_pbAddressAreaColor_clicked()
{
QColor color = QColorDialog::getColor(ui->lbAddressAreaColor->palette().color(QPalette::Background), this);
if (color.isValid())
setColor(ui->lbAddressAreaColor, color);
}
void OptionsDialog::on_pbAddressFontColor_clicked()
{
QColor color = QColorDialog::getColor(ui->lbAddressFontColor->palette().color(QPalette::WindowText), this);
if (color.isValid())
setColor(ui->lbAddressFontColor, color);
}
void OptionsDialog::on_pbAsciiAreaColor_clicked()
{
QColor color = QColorDialog::getColor(ui->lbAsciiAreaColor->palette().color(QPalette::Background), this);
if (color.isValid())
setColor(ui->lbAsciiAreaColor, color);
}
void OptionsDialog::on_pbAsciiFontColor_clicked()
{
QColor color = QColorDialog::getColor(ui->lbAsciiFontColor->palette().color(QPalette::WindowText), this);
if (color.isValid())
setColor(ui->lbAsciiFontColor, color);
}
void OptionsDialog::on_pbHexFontColor_clicked()
{
QColor color = QColorDialog::getColor(ui->lbHexFontColor->palette().color(QPalette::WindowText), this);
if (color.isValid())
setColor(ui->lbHexFontColor, color);
}
void OptionsDialog::on_pbSelectionColor_clicked()
{
QColor color = QColorDialog::getColor(ui->lbSelectionColor->palette().color(QPalette::Background), this);
if (color.isValid())
setColor(ui->lbSelectionColor, color);
}
void OptionsDialog::on_pbWidgetFont_clicked()
{
bool ok;
QFont font = QFontDialog::getFont(&ok, ui->leWidgetFont->font(), this);
if (ok)
ui->leWidgetFont->setFont(font);
}
qhexedit2/example/searchdialog.h 0000664 0001750 0001750 00000001263 13716244704 017100 0 ustar carsten carsten #ifndef SEARCHDIALOG_H
#define SEARCHDIALOG_H
#include
#include
#include "../src/qhexedit.h"
namespace Ui {
class SearchDialog;
}
class SearchDialog : public QDialog
{
Q_OBJECT
public:
explicit SearchDialog(QHexEdit *hexEdit, QWidget *parent = 0);
~SearchDialog();
qint64 findNext();
Ui::SearchDialog *ui;
private slots:
void on_pbFind_clicked();
void on_pbReplace_clicked();
void on_pbReplaceAll_clicked();
private:
QByteArray getContent(int comboIndex, const QString &input);
qint64 replaceOccurrence(qint64 idx, const QByteArray &replaceBa);
QHexEdit *_hexEdit;
QByteArray _findBa;
};
#endif // SEARCHDIALOG_H
qhexedit2/example/images/ 0000775 0001750 0001750 00000000000 13716244704 015545 5 ustar carsten carsten qhexedit2/example/images/open.png 0000664 0001750 0001750 00000004031 13716244704 017212 0 ustar carsten carsten PNG
IHDR szz gAMA OX2 tEXtSoftware Adobe ImageReadyqe<