Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
openpagesmodel.cpp
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
#
include
"openpagesmodel.h"
4
5
#
include
"helpenginewrapper.h"
6
#
include
"helpviewer.h"
7
#
include
"tracer.h"
8
9
#
include
<
QtCore
/
QStringList
>
10
#
include
<
QtCore
/
QUrl
>
11
12
QT_BEGIN_NAMESPACE
13
14
using
namespace
Qt::StringLiterals;
15
16
OpenPagesModel
::OpenPagesModel(QObject *parent) : QAbstractTableModel(parent)
17
{
18
TRACE_OBJ
19
}
20
21
int
OpenPagesModel
::
rowCount
(
const
QModelIndex
&parent)
const
22
{
23
TRACE_OBJ
24
return
parent.isValid() ? 0 : m_pages.size();
25
}
26
27
int
OpenPagesModel
::
columnCount
(
const
QModelIndex
&
/*parent*/
)
const
28
{
29
TRACE_OBJ
30
return
2;
31
}
32
33
QVariant
OpenPagesModel
::
data
(
const
QModelIndex
&index,
int
role)
const
34
{
35
TRACE_OBJ
36
if
(!index.isValid() || index.row() >= rowCount() || index.column() > 0
37
|| role != Qt::DisplayRole)
38
return
QVariant();
39
QString title = m_pages.at(index.row())->title();
40
title.replace(u'&',
"&&"_L1
);
41
return
title.isEmpty() ?
"(Untitled)"_L1
: title;
42
}
43
44
HelpViewer
*
OpenPagesModel
::
addPage
(
const
QUrl &url, qreal zoom)
45
{
46
TRACE_OBJ
47
beginInsertRows(QModelIndex(),
rowCount
(
)
,
rowCount
(
)
);
48
HelpViewer
*page =
new
HelpViewer
(zoom);
49
connect(page, &HelpViewer::titleChanged,
this
, &OpenPagesModel::handleTitleChanged);
50
m_pages << page;
51
endInsertRows();
52
page->setSource(url);
53
return
page;
54
}
55
56
void
OpenPagesModel
::
removePage
(
int
index)
57
{
58
TRACE_OBJ
59
Q_ASSERT(index >= 0 && index <
rowCount
(
)
);
60
beginRemoveRows(QModelIndex(), index, index);
61
HelpViewer
*page = m_pages.at(index);
62
m_pages.removeAt(index);
63
endRemoveRows();
64
page->deleteLater();
65
}
66
67
HelpViewer
*
OpenPagesModel
::
pageAt
(
int
index)
const
68
{
69
TRACE_OBJ
70
Q_ASSERT(index >= 0 && index <
rowCount
(
)
);
71
return
m_pages.at(index);
72
}
73
74
void
OpenPagesModel
::handleTitleChanged()
75
{
76
TRACE_OBJ
77
HelpViewer
*page =
static_cast
<
HelpViewer
*>(sender());
78
const
int
row = m_pages.indexOf(page);
79
Q_ASSERT(row != -1 );
80
const
QModelIndex
&item = index(row, 0);
81
emit dataChanged(item, item);
82
}
83
84
QT_END_NAMESPACE
HelpViewer
Definition
helpviewer.h:24
OpenPagesModel
Definition
openpagesmodel.h:18
OpenPagesModel::addPage
HelpViewer * addPage(const QUrl &url, qreal zoom=0)
Definition
openpagesmodel.cpp:44
OpenPagesModel::removePage
void removePage(int index)
Definition
openpagesmodel.cpp:56
OpenPagesModel::columnCount
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Returns the number of columns for the children of the given parent.
Definition
openpagesmodel.cpp:27
OpenPagesModel::rowCount
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Returns the number of rows under the given parent.
Definition
openpagesmodel.cpp:21
OpenPagesModel::data
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
Returns the data stored under the given role for the item referred to by the index.
Definition
openpagesmodel.cpp:33
OpenPagesModel::pageAt
HelpViewer * pageAt(int index) const
Definition
openpagesmodel.cpp:67
QModelIndex
\inmodule QtCore
Definition
qabstractitemmodel.h:128
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
TRACE_OBJ
#define TRACE_OBJ
Definition
tracer.h:34
qttools
src
assistant
assistant
openpagesmodel.cpp
Generated on
for Qt by
1.18.0