EditDialog::EditDialog(QWidget* parent) : QDialog(parent), ui(new Ui::EditDialog), currentIndex(QModelIndex()), dataSource(TextBuffer), dataType(Null), isReadOnly(true) { ui->setupUi(this); // Add Ctrl-Enter (Cmd-Enter on OSX) as a shortcut for the Apply button ui->buttonApply->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Return)); ui->buttonApply->setToolTip(ui->buttonApply->toolTip() + " [" + ui->buttonApply->shortcut().toString(QKeySequence::NativeText) + "]"); QHBoxLayout* hexLayout = new QHBoxLayout(ui->editorBinary); hexEdit = new QHexEdit(this); hexLayout->addWidget(hexEdit); hexEdit->setOverwriteMode(false); QHBoxLayout* sciLayout = new QHBoxLayout(ui->editorSci); sciEdit = new DockTextEdit(this); sciLayout->addWidget(sciEdit); QShortcut* ins = new QShortcut(QKeySequence(Qt::Key_Insert), this); connect(ins, SIGNAL(activated()), this, SLOT(toggleOverwriteMode())); connect(ui->editorText, SIGNAL(textChanged()), this, SLOT(updateApplyButton())); connect(hexEdit, SIGNAL(dataChanged()), this, SLOT(updateApplyButton())); connect(sciEdit, SIGNAL(textChanged()), this, SLOT(updateApplyButton())); connect(sciEdit, SIGNAL(textChanged()), this, SLOT(editTextChanged())); // Create shortcuts for the widgets that doesn't have its own print action or printing mechanism. QShortcut* shortcutPrintText = new QShortcut(QKeySequence::Print, ui->editorText, nullptr, nullptr, Qt::WidgetShortcut); connect(shortcutPrintText, &QShortcut::activated, this, &EditDialog::openPrintDialog); // Add actions to editors that have a context menu based on actions. This also activates the shortcuts. ui->editorImage->addAction(ui->actionPrintImage); ui->editorBinary->addAction(ui->actionPrint); ui->editorBinary->addAction(ui->actionCopyHexAscii); mustIndentAndCompact = Settings::getValue("databrowser", "indent_compact").toBool(); ui->buttonIndent->setChecked(mustIndentAndCompact); ui->buttonAutoSwitchMode->setChecked(Settings::getValue("databrowser", "auto_switch_mode").toBool()); reloadSettings(); }
EditDialog::EditDialog(QWidget* parent) : QDialog(parent), ui(new Ui::EditDialog) { ui->setupUi(this); QHBoxLayout* hexLayout = new QHBoxLayout(ui->editorBinary); hexEdit = new QHexEdit(this); hexLayout->addWidget(hexEdit); hexEdit->setOverwriteMode(false); connect(hexEdit, SIGNAL(dataChanged()), this, SLOT(hexDataChanged())); QShortcut* ins = new QShortcut(QKeySequence(Qt::Key_Insert), this); connect(ins, SIGNAL(activated()), this, SLOT(toggleOverwriteMode())); reset(); }
EditDialog::EditDialog(QWidget* parent, bool forUseInDockWidget) : QDialog(parent), ui(new Ui::EditDialog), useInDock(forUseInDockWidget) { ui->setupUi(this); ui->buttonBox->button(QDialogButtonBox::Ok)->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Return)); ui->buttonBox->button(QDialogButtonBox::Cancel)->setVisible(!forUseInDockWidget); QHBoxLayout* hexLayout = new QHBoxLayout(ui->editorBinary); hexEdit = new QHexEdit(this); hexLayout->addWidget(hexEdit); hexEdit->setOverwriteMode(false); connect(hexEdit, SIGNAL(dataChanged()), this, SLOT(hexDataChanged())); QShortcut* ins = new QShortcut(QKeySequence(Qt::Key_Insert), this); connect(ins, SIGNAL(activated()), this, SLOT(toggleOverwriteMode())); reset(); }