Qt 4.8
qt-4.8.6
src
scripttools
debugging
qscriptedit_p.h
Go to the documentation of this file.
1
/****************************************************************************
2
**
3
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
4
** Contact: http://www.qt-project.org/legal
5
**
6
** This file is part of the QtSCriptTools module of the Qt Toolkit.
7
**
8
** $QT_BEGIN_LICENSE:LGPL$
9
** Commercial License Usage
10
** Licensees holding valid commercial Qt licenses may use this file in
11
** accordance with the commercial license agreement provided with the
12
** Software or, alternatively, in accordance with the terms contained in
13
** a written agreement between you and Digia. For licensing terms and
14
** conditions see http://qt.digia.com/licensing. For further information
15
** use the contact form at http://qt.digia.com/contact-us.
16
**
17
** GNU Lesser General Public License Usage
18
** Alternatively, this file may be used under the terms of the GNU Lesser
19
** General Public License version 2.1 as published by the Free Software
20
** Foundation and appearing in the file LICENSE.LGPL included in the
21
** packaging of this file. Please review the following information to
22
** ensure the GNU Lesser General Public License version 2.1 requirements
23
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24
**
25
** In addition, as a special exception, Digia gives you certain additional
26
** rights. These rights are described in the Digia Qt LGPL Exception
27
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28
**
29
** GNU General Public License Usage
30
** Alternatively, this file may be used under the terms of the GNU
31
** General Public License version 3.0 as published by the Free Software
32
** Foundation and appearing in the file LICENSE.GPL included in the
33
** packaging of this file. Please review the following information to
34
** ensure the GNU General Public License version 3.0 requirements will be
35
** met: http://www.gnu.org/copyleft/gpl.html.
36
**
37
**
38
** $QT_END_LICENSE$
39
**
40
****************************************************************************/
41
42
#ifndef QSCRIPTEDIT_P_H
43
#define QSCRIPTEDIT_P_H
44
45
//
46
// W A R N I N G
47
// -------------
48
//
49
// This file is not part of the Qt API. It exists purely as an
50
// implementation detail. This header file may change from version to
51
// version without notice, or even be removed.
52
//
53
// We mean it.
54
//
55
56
#include <QtGui/qplaintextedit.h>
57
58
#include <QtCore/qhash.h>
59
#include <QtCore/qset.h>
60
61
QT_BEGIN_NAMESPACE
62
63
class
QScriptEditExtraArea
;
64
65
class
Q_AUTOTEST_EXPORT
QScriptEdit
:
public
QPlainTextEdit
66
{
67
Q_OBJECT
68
public
:
69
QScriptEdit
(
QWidget
*parent = 0);
70
~
QScriptEdit
();
71
72
int
baseLineNumber()
const
;
73
void
setBaseLineNumber(
int
base
);
74
75
int
executionLineNumber()
const
;
76
void
setExecutionLineNumber(
int
lineNumber,
bool
error
);
77
void
setExecutableLineNumbers(
const
QSet<int>
&lineNumbers);
78
bool
isExecutableLine(
int
lineNumber)
const
;
79
80
int
currentLineNumber()
const
;
81
void
gotoLine(
int
lineNumber);
82
83
void
setBreakpoint(
int
lineNumber);
84
void
setBreakpointEnabled(
int
lineNumber,
bool
enable);
85
void
deleteBreakpoint(
int
lineNumber);
86
87
int
extraAreaWidth()
const
;
88
89
signals
:
90
void
breakpointToggleRequest(
int
lineNumber,
bool
on);
91
void
breakpointEnableRequest(
int
lineNumber,
bool
enable);
92
93
protected
:
94
void
paintEvent
(
QPaintEvent
*e);
95
void
resizeEvent
(
QResizeEvent
*e);
96
97
void
extraAreaPaintEvent(
QPaintEvent
*e);
98
void
extraAreaMouseEvent(
QMouseEvent
*e);
99
bool
extraAreaEvent(
QEvent
*e);
100
101
private
slots
:
102
void
updateExtraAreaWidth();
103
void
updateExtraArea(
const
QRect
&,
int
);
104
void
highlightCurrentLine();
105
106
private
:
107
QTextEdit::ExtraSelection
currentLineSelection()
const
;
108
QTextEdit::ExtraSelection
currentExecutionLineSelection()
const
;
109
void
updateExtraSelections();
110
111
private
:
112
QScriptEditExtraArea
*
m_extraArea
;
113
int
m_baseLineNumber
;
114
int
m_executionLineNumber
;
115
QSet<int>
m_executableLineNumbers
;
116
bool
m_executionLineNumberHasError
;
117
int
m_extraAreaToggleBlockNumber
;
118
119
struct
BreakpointData
{
120
BreakpointData
() :
enabled
(true) {}
121
bool
enabled
;
122
};
123
QHash<int, BreakpointData>
m_breakpoints
;
124
125
private
:
126
Q_DISABLE_COPY
(
QScriptEdit
)
127
friend
class
QScriptEditExtraArea
;
128
};
129
130
QT_END_NAMESPACE
131
132
#endif
QT_END_NAMESPACE
#define QT_END_NAMESPACE
This macro expands to.
Definition:
qglobal.h:90
QScriptEdit
Definition:
qscriptedit_p.h:65
QScriptEdit::m_executionLineNumber
int m_executionLineNumber
Definition:
qscriptedit_p.h:114
error
#define error(msg)
Definition:
qabstractduration.cpp:58
QWidget
The QWidget class is the base class of all user interface objects.
Definition:
qwidget.h:150
Q_DISABLE_COPY
#define Q_DISABLE_COPY(Class)
Disables the use of copy constructors and assignment operators for the given Class.
Definition:
qglobal.h:2523
QScriptEdit::m_baseLineNumber
int m_baseLineNumber
Definition:
qscriptedit_p.h:113
QHash
The QHash class is a template class that provides a hash-table-based dictionary.
Definition:
qdatastream.h:66
base
static const uint base
Definition:
qurl.cpp:268
QPlainTextEdit::paintEvent
virtual void paintEvent(QPaintEvent *e)
Reimplemented Function
Definition:
qplaintextedit.cpp:1854
QScriptEdit::BreakpointData::BreakpointData
BreakpointData()
Definition:
qscriptedit_p.h:120
QT_BEGIN_NAMESPACE
#define QT_BEGIN_NAMESPACE
This macro expands to.
Definition:
qglobal.h:89
QScriptEdit::BreakpointData::enabled
bool enabled
Definition:
qscriptedit_p.h:121
QScriptEdit::m_breakpoints
QHash< int, BreakpointData > m_breakpoints
Definition:
qscriptedit_p.h:123
QResizeEvent
The QResizeEvent class contains event parameters for resize events.
Definition:
qevent.h:349
QScriptEditExtraArea
Definition:
qscriptedit.cpp:57
QPlainTextEdit
The QPlainTextEdit class provides a widget that is used to edit and display plain text...
Definition:
qplaintextedit.h:69
QScriptEdit::BreakpointData
Definition:
qscriptedit_p.h:119
QScriptEdit::m_extraArea
QScriptEditExtraArea * m_extraArea
Definition:
qscriptedit_p.h:112
QScriptEdit::m_extraAreaToggleBlockNumber
int m_extraAreaToggleBlockNumber
Definition:
qscriptedit_p.h:117
Q_OBJECT
#define Q_OBJECT
Definition:
qobjectdefs.h:157
QMouseEvent
The QMouseEvent class contains parameters that describe a mouse event.
Definition:
qevent.h:85
QSet< int >
QRect
The QRect class defines a rectangle in the plane using integer precision.
Definition:
qrect.h:58
Q_AUTOTEST_EXPORT
#define Q_AUTOTEST_EXPORT
Definition:
qglobal.h:1510
QTextEdit::ExtraSelection
The QTextEdit::ExtraSelection structure provides a way of specifying a character format for a given s...
Definition:
qtextedit.h:222
QPlainTextEdit::resizeEvent
virtual void resizeEvent(QResizeEvent *e)
Reimplemented Function
Definition:
qplaintextedit.cpp:1808
QScriptEdit::m_executableLineNumbers
QSet< int > m_executableLineNumbers
Definition:
qscriptedit_p.h:115
QScriptEdit::m_executionLineNumberHasError
bool m_executionLineNumberHasError
Definition:
qscriptedit_p.h:116
slots
#define slots
Definition:
qobjectdefs.h:68
signals
#define signals
Definition:
qobjectdefs.h:69
class
#define class
Definition:
qapplication_x11.cpp:92
QPaintEvent
The QPaintEvent class contains event parameters for paint events.
Definition:
qevent.h:298
QEvent
The QEvent class is the base class of all event classes.
Definition:
qcoreevent.h:56
enabled
#define enabled
Qt 4.8 Source Code Browser