This repository was archived by the owner on Jun 28, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript_window.cpp
More file actions
71 lines (56 loc) · 2.95 KB
/
Copy pathscript_window.cpp
File metadata and controls
71 lines (56 loc) · 2.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
//виджет, которым заполняется каждая вкладка окна MainWindow
#include "script_window.h"
#include "ui_script_window.h"
script_window::script_window(QWidget *parent) :
QWidget(parent),
ui(new Ui::script_window) {
ui->setupUi(this);
this->setWindowFlag(Qt::FramelessWindowHint);
//применение стилей
if (config::user.lightmode == 1)
ui->textEdit_rows->setStyleSheet("QTextEdit: {background: white;}");
else
ui->textEdit_rows->setStyleSheet("QTextEdit: {background: #404040;}");
//разделение окна
ui->splitter->setHandleWidth(1);
ui->splitter->setStretchFactor(0, 1);
ui->splitter->setStretchFactor(1, 15);
ui->textEdit_rows->verticalScrollBar()->setDisabled(true); //отключения скроллбара
connect(ui->textEdit->verticalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(setV())); //обработка сигнала прокрутки скроллбара текстовго поля
ui->textEdit->append(""); //очистка текстового поля
show_rows(); //отобразить номера строк
}
script_window::~script_window() {
delete ui;
}
//отобразить номера строк
void script_window::show_rows() {
ui->textEdit_rows->clear();
script_window::rows = ui->textEdit->document()->lineCount(); //количество строк текущего текста
for (int i = 1; i <= script_window::rows; i++) {
ui->textEdit_rows->append(QString::number(i)); //заполнение номерами строк
}
//установить позицию скроллбара, как у основного текстового поля
ui->textEdit_rows->verticalScrollBar()->setValue(ui->textEdit->verticalScrollBar()->value());
}
//подсветка текущей строки
void script_window::on_textEdit_cursorPositionChanged() {
QList <QTextEdit::ExtraSelection> extraSelections_rows; //список выделенных строк
QTextEdit::ExtraSelection selection; //конкретная выделенная строка
QColor lineColor = QColor(Qt::yellow).lighter(160); //цвет заднего фона
QColor textColor = QColor(Qt::black); //цвет текста
//применение изменений
selection.format.setForeground(textColor);
selection.format.setBackground(lineColor);
selection.format.setProperty(QTextFormat::FullWidthSelection, true);
selection.cursor = ui->textEdit->textCursor();
selection.cursor.clearSelection();
extraSelections_rows.append(selection);
ui->textEdit->setExtraSelections(extraSelections_rows);
//обновить список строк
show_rows();
}
//установка скроллбара строк
void script_window::setV() {
ui->textEdit_rows->verticalScrollBar()->setValue(ui->textEdit->verticalScrollBar()->value());
}