forked from qt-creator/qt-creator
BinEditor: Fix Ctrl+Home/End for files
Doesn't seem to affect memory editor Change-Id: I9cc21744d0dcc5fe8cf2685c61f8e71f87af3961 Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
@@ -1302,20 +1302,22 @@ void BinEditor::keyPressEvent(QKeyEvent *e)
|
||||
setCursorPosition((verticalScrollBar()->value() + line) * m_bytesPerLine + m_cursorPosition % m_bytesPerLine, moveMode);
|
||||
} break;
|
||||
|
||||
case Qt::Key_Home:
|
||||
if (e->modifiers() & Qt::ControlModifier) {
|
||||
emit startOfFileRequested(editor());
|
||||
} else {
|
||||
setCursorPosition(m_cursorPosition/m_bytesPerLine * m_bytesPerLine, moveMode);
|
||||
}
|
||||
break;
|
||||
case Qt::Key_End:
|
||||
if (e->modifiers() & Qt::ControlModifier) {
|
||||
emit endOfFileRequested(editor());
|
||||
} else {
|
||||
setCursorPosition(m_cursorPosition/m_bytesPerLine * m_bytesPerLine + 15, moveMode);
|
||||
}
|
||||
break;
|
||||
case Qt::Key_Home: {
|
||||
int pos;
|
||||
if (e->modifiers() & Qt::ControlModifier)
|
||||
pos = 0;
|
||||
else
|
||||
pos = m_cursorPosition/m_bytesPerLine * m_bytesPerLine;
|
||||
setCursorPosition(pos, moveMode);
|
||||
} break;
|
||||
case Qt::Key_End: {
|
||||
int pos;
|
||||
if (e->modifiers() & Qt::ControlModifier)
|
||||
pos = m_size;
|
||||
else
|
||||
pos = m_cursorPosition/m_bytesPerLine * m_bytesPerLine + 15;
|
||||
setCursorPosition(pos, moveMode);
|
||||
} break;
|
||||
default:
|
||||
if (m_readOnly)
|
||||
break;
|
||||
|
||||
@@ -142,8 +142,6 @@ Q_SIGNALS:
|
||||
void newWindowRequested(quint64 address);
|
||||
void newRangeRequested(Core::IEditor *, quint64 address);
|
||||
void addWatchpointRequested(quint64 address, uint size);
|
||||
void startOfFileRequested(Core::IEditor *);
|
||||
void endOfFileRequested(Core::IEditor *);
|
||||
void dataChanged(Core::IEditor *, quint64 address, const QByteArray &data);
|
||||
|
||||
protected:
|
||||
|
||||
@@ -187,10 +187,6 @@ public:
|
||||
this, SLOT(provideData(Core::IEditor*,quint64)));
|
||||
connect(m_editor, SIGNAL(newRangeRequested(Core::IEditor*,quint64)),
|
||||
this, SLOT(provideNewRange(Core::IEditor*,quint64)));
|
||||
connect(m_editor, SIGNAL(startOfFileRequested(Core::IEditor*)), this,
|
||||
SLOT(handleStartOfFileRequested(Core::IEditor*)));
|
||||
connect(m_editor, SIGNAL(endOfFileRequested(Core::IEditor*)), this,
|
||||
SLOT(handleEndOfFileRequested(Core::IEditor*)));
|
||||
}
|
||||
~BinEditorDocument() {}
|
||||
|
||||
@@ -273,14 +269,6 @@ private slots:
|
||||
open(0, m_fileName, offset);
|
||||
}
|
||||
|
||||
void handleStartOfFileRequested(Core::IEditor *) {
|
||||
open(0, m_fileName, 0);
|
||||
}
|
||||
|
||||
void handleEndOfFileRequested(Core::IEditor *) {
|
||||
open(0, m_fileName, QFileInfo(m_fileName).size() - 1);
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
void setFilename(const QString &filename) {
|
||||
|
||||
@@ -140,12 +140,6 @@ void MemoryAgent::connectBinEditorWidget(QWidget *w)
|
||||
connect(w,
|
||||
SIGNAL(newRangeRequested(Core::IEditor*,quint64)),
|
||||
SLOT(provideNewRange(Core::IEditor*,quint64)));
|
||||
connect(w,
|
||||
SIGNAL(startOfFileRequested(Core::IEditor*)),
|
||||
SLOT(handleStartOfFileRequested(Core::IEditor*)));
|
||||
connect(w,
|
||||
SIGNAL(endOfFileRequested(Core::IEditor*)),
|
||||
SLOT(handleEndOfFileRequested(Core::IEditor*)));
|
||||
connect(w,
|
||||
SIGNAL(dataChanged(Core::IEditor*,quint64,QByteArray)),
|
||||
SLOT(handleDataChanged(Core::IEditor*,quint64,QByteArray)));
|
||||
@@ -250,23 +244,6 @@ void MemoryAgent::provideNewRange(IEditor *, quint64 address)
|
||||
MemoryView::setBinEditorRange(w, address, DataRange, BinBlockSize);
|
||||
}
|
||||
|
||||
// Since we are not dealing with files, we take these signals to mean
|
||||
// "move to start/end of range". This seems to make more sense than
|
||||
// jumping to the start or end of the address space, respectively.
|
||||
void MemoryAgent::handleStartOfFileRequested(IEditor *)
|
||||
{
|
||||
QWidget *w = qobject_cast<QWidget *>(sender());
|
||||
QTC_ASSERT(w, return);
|
||||
MemoryView::binEditorSetCursorPosition(w, 0);
|
||||
}
|
||||
|
||||
void MemoryAgent::handleEndOfFileRequested(IEditor *)
|
||||
{
|
||||
QWidget *w = qobject_cast<QWidget *>(sender());
|
||||
QTC_ASSERT(w, return);
|
||||
MemoryView::binEditorSetCursorPosition(w, DataRange - 1);
|
||||
}
|
||||
|
||||
void MemoryAgent::handleDataChanged(IEditor *,
|
||||
quint64 addr, const QByteArray &data)
|
||||
{
|
||||
|
||||
@@ -99,8 +99,6 @@ public slots:
|
||||
private slots:
|
||||
void fetchLazyData(Core::IEditor *, quint64 block);
|
||||
void provideNewRange(Core::IEditor *editor, quint64 address);
|
||||
void handleStartOfFileRequested(Core::IEditor *editor);
|
||||
void handleEndOfFileRequested(Core::IEditor *editor);
|
||||
void handleDataChanged(Core::IEditor *editor, quint64 address,
|
||||
const QByteArray &data);
|
||||
void handleWatchpointRequest(quint64 address, uint size);
|
||||
|
||||
Reference in New Issue
Block a user