Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ Release v1.0
- [ ] 增加查看视图,渲染markdown格式的查看
- [ ] 增加VIM输入模式
- [ ] 增加状态栏字数和选中字数展示
- [ ] 表格编辑

侧边栏:
- [x] 点击两次重命名(区分双击展开折叠)
Expand Down
20 changes: 12 additions & 8 deletions src/Widgets/NoteEditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include <QTextBlock>
#include <QShortcut>
#include <QScrollBar>
#include <QAbstractTextDocumentLayout>

#include <QDebug>

Expand All @@ -37,7 +38,7 @@ NoteEditor *NoteEditor::getInstance() {
}

NoteEditor::NoteEditor(QWidget *parent)
: QPlainTextEdit(parent) {
: QTextEdit(parent) {

initUi();

Expand Down Expand Up @@ -96,7 +97,7 @@ const QFont &NoteEditor::getCurFont() {

int NoteEditor::lineNumberAreaWidth() {
int digits = 1;
int max = qMax(1, blockCount());
int max = qMax(1, document()->blockCount());
while (max >= 10) {
max /= 10;
++digits;
Expand Down Expand Up @@ -133,7 +134,7 @@ void NoteEditor::updateLineNumberArea(const QRect &rect, int dy)

void NoteEditor::resizeEvent(QResizeEvent *e)
{
QPlainTextEdit::resizeEvent(e);
QTextEdit::resizeEvent(e);

QRect cr = contentsRect();
m_pLineNumberArea->setGeometry(QRect(cr.left(), cr.top(), lineNumberAreaWidth(), cr.height()));
Expand Down Expand Up @@ -168,7 +169,7 @@ void NoteEditor::keyPressEvent(QKeyEvent *event) {
return; // 防止进一步处理回车键
}

QPlainTextEdit::keyPressEvent(event);
QTextEdit::keyPressEvent(event);
}

//![resizeEvent]
Expand Down Expand Up @@ -206,10 +207,12 @@ void NoteEditor::lineNumberAreaPaintEvent(QPaintEvent *event)
//![extraAreaPaintEvent_0]

//![extraAreaPaintEvent_1]
QTextBlock block = firstVisibleBlock();
QTextBlock block = document()->begin();
int blockNumber = block.blockNumber();
int top = (int) blockBoundingGeometry(block).translated(contentOffset()).top();
int bottom = top + (int) blockBoundingRect(block).height();
//int top = (int) blockBoundingGeometry(block).translated(contentOffset()).top();
//int bottom = top + (int) blockBoundingRect(block).height();
int top = (int)document()->documentLayout()->blockBoundingRect(block).translated(QPoint(0, -verticalScrollBar()->value())).top();
int bottom = top + (int)document()->documentLayout()->blockBoundingRect(block).height();
//![extraAreaPaintEvent_1]

//![extraAreaPaintEvent_2]
Expand All @@ -223,7 +226,8 @@ void NoteEditor::lineNumberAreaPaintEvent(QPaintEvent *event)

block = block.next();
top = bottom;
bottom = top + (int) blockBoundingRect(block).height();
//bottom = top + (int) blockBoundingRect(block).height();
bottom = top + (int)document()->documentLayout()->blockBoundingRect(block).height();
++blockNumber;
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/Widgets/NoteEditor.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#ifndef NOTEEDITOR_H
#define NOTEEDITOR_H

#include <QPlainTextEdit>
#include <QTextEdit>
#include <Widgets/Highlighter/NoteHighlighter.h>

class QTreeWidgetItem;
Expand All @@ -13,7 +13,7 @@ class Buffer;
class LineNumberArea;
class Node;

class NoteEditor : public QPlainTextEdit {
class NoteEditor : public QTextEdit {
Q_OBJECT
public:
static NoteEditor *getInstance();
Expand Down