forked from qt-creator/qt-creator
Editor: Bookmark when Shift-clicking the gutter
Task-number: QTCREATORBUG-2852 Change-Id: If539f812bce76c1c1e7b63e7133e2a7c962990ea Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
This commit is contained in:
committed by
Eike Ziller
parent
d4a881e6ee
commit
67ab31c224
@@ -760,6 +760,14 @@ void BookmarkManager::loadBookmarks()
|
|||||||
updateActionStatus();
|
updateActionStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BookmarkManager::handleBookmarkRequest(TextEditor::ITextEditor *textEditor,
|
||||||
|
int line,
|
||||||
|
TextEditor::ITextEditor::MarkRequestKind kind)
|
||||||
|
{
|
||||||
|
if (kind == TextEditor::ITextEditor::BookmarkRequest && textEditor->file())
|
||||||
|
toggleBookmark(textEditor->file()->fileName(), line);
|
||||||
|
}
|
||||||
|
|
||||||
// BookmarkViewFactory
|
// BookmarkViewFactory
|
||||||
|
|
||||||
BookmarkViewFactory::BookmarkViewFactory(BookmarkManager *bm)
|
BookmarkViewFactory::BookmarkViewFactory(BookmarkManager *bm)
|
||||||
|
|||||||
@@ -36,6 +36,8 @@
|
|||||||
#include <coreplugin/icontext.h>
|
#include <coreplugin/icontext.h>
|
||||||
#include <coreplugin/inavigationwidgetfactory.h>
|
#include <coreplugin/inavigationwidgetfactory.h>
|
||||||
|
|
||||||
|
#include <texteditor/itexteditor.h>
|
||||||
|
|
||||||
#include <QtCore/QAbstractItemModel>
|
#include <QtCore/QAbstractItemModel>
|
||||||
#include <QtCore/QMultiMap>
|
#include <QtCore/QMultiMap>
|
||||||
#include <QtCore/QList>
|
#include <QtCore/QList>
|
||||||
@@ -51,10 +53,6 @@ namespace Core {
|
|||||||
class IEditor;
|
class IEditor;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace TextEditor {
|
|
||||||
class ITextEditor;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace Bookmarks {
|
namespace Bookmarks {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
@@ -115,6 +113,9 @@ signals:
|
|||||||
private slots:
|
private slots:
|
||||||
void updateActionStatus();
|
void updateActionStatus();
|
||||||
void loadBookmarks();
|
void loadBookmarks();
|
||||||
|
void handleBookmarkRequest(TextEditor::ITextEditor * textEditor,
|
||||||
|
int line,
|
||||||
|
TextEditor::ITextEditor::MarkRequestKind kind);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
TextEditor::ITextEditor *currentTextEditor() const;
|
TextEditor::ITextEditor *currentTextEditor() const;
|
||||||
|
|||||||
@@ -179,6 +179,13 @@ void BookmarksPlugin::editorOpened(Core::IEditor *editor)
|
|||||||
if (qobject_cast<ITextEditor *>(editor)) {
|
if (qobject_cast<ITextEditor *>(editor)) {
|
||||||
connect(editor, SIGNAL(markContextMenuRequested(TextEditor::ITextEditor*,int,QMenu*)),
|
connect(editor, SIGNAL(markContextMenuRequested(TextEditor::ITextEditor*,int,QMenu*)),
|
||||||
this, SLOT(requestContextMenu(TextEditor::ITextEditor*,int,QMenu*)));
|
this, SLOT(requestContextMenu(TextEditor::ITextEditor*,int,QMenu*)));
|
||||||
|
|
||||||
|
connect(editor,
|
||||||
|
SIGNAL(markRequested(TextEditor::ITextEditor*,int,
|
||||||
|
TextEditor::ITextEditor::MarkRequestKind)),
|
||||||
|
m_bookmarkManager,
|
||||||
|
SLOT(handleBookmarkRequest(TextEditor::ITextEditor*,int,
|
||||||
|
TextEditor::ITextEditor::MarkRequestKind)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -707,7 +707,9 @@ public slots:
|
|||||||
void editorOpened(Core::IEditor *editor);
|
void editorOpened(Core::IEditor *editor);
|
||||||
void updateBreakMenuItem(Core::IEditor *editor);
|
void updateBreakMenuItem(Core::IEditor *editor);
|
||||||
void setBusyCursor(bool busy);
|
void setBusyCursor(bool busy);
|
||||||
void requestMark(TextEditor::ITextEditor *editor, int lineNumber);
|
void requestMark(TextEditor::ITextEditor *editor,
|
||||||
|
int lineNumber,
|
||||||
|
TextEditor::ITextEditor::MarkRequestKind kind);
|
||||||
void requestContextMenu(TextEditor::ITextEditor *editor,
|
void requestContextMenu(TextEditor::ITextEditor *editor,
|
||||||
int lineNumber, QMenu *menu);
|
int lineNumber, QMenu *menu);
|
||||||
|
|
||||||
@@ -1773,8 +1775,8 @@ void DebuggerPluginPrivate::editorOpened(IEditor *editor)
|
|||||||
if (!textEditor)
|
if (!textEditor)
|
||||||
return;
|
return;
|
||||||
connect(textEditor,
|
connect(textEditor,
|
||||||
SIGNAL(markRequested(TextEditor::ITextEditor*,int)),
|
SIGNAL(markRequested(TextEditor::ITextEditor*,int, TextEditor::ITextEditor::MarkRequestKind)),
|
||||||
SLOT(requestMark(TextEditor::ITextEditor*,int)));
|
SLOT(requestMark(TextEditor::ITextEditor*,int, TextEditor::ITextEditor::MarkRequestKind)));
|
||||||
connect(textEditor,
|
connect(textEditor,
|
||||||
SIGNAL(markContextMenuRequested(TextEditor::ITextEditor*,int,QMenu*)),
|
SIGNAL(markContextMenuRequested(TextEditor::ITextEditor*,int,QMenu*)),
|
||||||
SLOT(requestContextMenu(TextEditor::ITextEditor*,int,QMenu*)));
|
SLOT(requestContextMenu(TextEditor::ITextEditor*,int,QMenu*)));
|
||||||
@@ -1943,8 +1945,13 @@ void DebuggerPluginPrivate::toggleBreakpointByAddress(quint64 address,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DebuggerPluginPrivate::requestMark(ITextEditor *editor, int lineNumber)
|
void DebuggerPluginPrivate::requestMark(ITextEditor *editor,
|
||||||
|
int lineNumber,
|
||||||
|
ITextEditor::MarkRequestKind kind)
|
||||||
{
|
{
|
||||||
|
if (kind != ITextEditor::BreakpointRequest)
|
||||||
|
return;
|
||||||
|
|
||||||
if (editor->property("DisassemblerView").toBool()) {
|
if (editor->property("DisassemblerView").toBool()) {
|
||||||
QString line = editor->contents()
|
QString line = editor->contents()
|
||||||
.section('\n', lineNumber - 1, lineNumber - 1);
|
.section('\n', lineNumber - 1, lineNumber - 1);
|
||||||
|
|||||||
@@ -4370,7 +4370,12 @@ void BaseTextEditorWidget::extraAreaMouseEvent(QMouseEvent *e)
|
|||||||
d->extraAreaToggleMarkBlockNumber = -1;
|
d->extraAreaToggleMarkBlockNumber = -1;
|
||||||
if (cursor.blockNumber() == n) {
|
if (cursor.blockNumber() == n) {
|
||||||
int line = n + 1;
|
int line = n + 1;
|
||||||
emit editor()->markRequested(editor(), line);
|
ITextEditor::MarkRequestKind kind;
|
||||||
|
if (QApplication::keyboardModifiers() & Qt::ShiftModifier)
|
||||||
|
kind = ITextEditor::BookmarkRequest;
|
||||||
|
else
|
||||||
|
kind = ITextEditor::BreakpointRequest;
|
||||||
|
emit editor()->markRequested(editor(), line, kind);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -153,10 +153,15 @@ public:
|
|||||||
static QMap<QString, QString> openedTextEditorsContents();
|
static QMap<QString, QString> openedTextEditorsContents();
|
||||||
static QMap<QString, QTextCodec *> openedTextEditorsEncodings();
|
static QMap<QString, QTextCodec *> openedTextEditorsEncodings();
|
||||||
|
|
||||||
|
enum MarkRequestKind {
|
||||||
|
BreakpointRequest,
|
||||||
|
BookmarkRequest
|
||||||
|
};
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void contentsChanged();
|
void contentsChanged();
|
||||||
void contentsChangedBecauseOfUndo();
|
void contentsChangedBecauseOfUndo();
|
||||||
void markRequested(TextEditor::ITextEditor *editor, int line);
|
void markRequested(TextEditor::ITextEditor *editor, int line, TextEditor::ITextEditor::MarkRequestKind kind);
|
||||||
void markContextMenuRequested(TextEditor::ITextEditor *editor, int line, QMenu *menu);
|
void markContextMenuRequested(TextEditor::ITextEditor *editor, int line, QMenu *menu);
|
||||||
void tooltipOverrideRequested(TextEditor::ITextEditor *editor, const QPoint &globalPos, int position, bool *handled);
|
void tooltipOverrideRequested(TextEditor::ITextEditor *editor, const QPoint &globalPos, int position, bool *handled);
|
||||||
void tooltipRequested(TextEditor::ITextEditor *editor, const QPoint &globalPos, int position);
|
void tooltipRequested(TextEditor::ITextEditor *editor, const QPoint &globalPos, int position);
|
||||||
|
|||||||
Reference in New Issue
Block a user