• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.14.38 API Reference
  • KDE Home
  • Contact Us
 

KTextEditor

  • interfaces
  • ktexteditor
codecompletionmodel.cpp
Go to the documentation of this file.
1/* This file is part of the KDE libraries
2 Copyright (C) 2005-2006 Hamish Rodda <rodda@kde.org>
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License version 2 as published by the Free Software Foundation.
7
8 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 Library General Public License for more details.
12
13 You should have received a copy of the GNU Library General Public License
14 along with this library; see the file COPYING.LIB. If not, write to
15 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
16 Boston, MA 02110-1301, USA.
17*/
18
19#include "codecompletionmodel.h"
20
21#include "document.h"
22
23using namespace KTextEditor;
24
25class KTextEditor::CodeCompletionModelPrivate
26{
27public:
28 CodeCompletionModelPrivate()
29 : rowCount(0),hasGroups(true)
30 {}
31
32 int rowCount;
33 bool hasGroups;
34};
35
36CodeCompletionModel::CodeCompletionModel(QObject* parent)
37 : QAbstractItemModel(parent)
38 , d(new CodeCompletionModelPrivate)
39{
40}
41
42CodeCompletionModel::~ CodeCompletionModel()
43{
44 delete d;
45}
46
47int CodeCompletionModel::columnCount( const QModelIndex & ) const
48{
49 return ColumnCount;
50}
51
52QModelIndex CodeCompletionModel::index( int row, int column, const QModelIndex & parent ) const
53{
54 if (row < 0 || row >= d->rowCount || column < 0 || column >= ColumnCount || parent.isValid())
55 return QModelIndex();
56
57 return createIndex(row, column, 0);
58}
59
60QMap< int, QVariant > CodeCompletionModel::itemData( const QModelIndex & index ) const
61{
62 QMap<int, QVariant> ret = QAbstractItemModel::itemData(index);
63
64 for (int i = CompletionRole; i <= LastItemDataRole; ++i) {
65 QVariant v = data(index, i);
66 if (v.isValid())
67 ret.insert(i, v);
68 }
69
70 return ret;
71}
72
73QModelIndex CodeCompletionModel::parent( const QModelIndex & ) const
74{
75 return QModelIndex();
76}
77
78void CodeCompletionModel::setRowCount( int rowCount )
79{
80 d->rowCount = rowCount;
81}
82
83int CodeCompletionModel::rowCount( const QModelIndex & parent ) const
84{
85 if (parent.isValid())
86 return 0;
87
88 return d->rowCount;
89}
90
91void CodeCompletionModel::completionInvoked(KTextEditor::View* view, const Range& range, InvocationType invocationType)
92{
93 Q_UNUSED(view)
94 Q_UNUSED(range)
95 Q_UNUSED(invocationType)
96}
97
98void CodeCompletionModel::executeCompletionItem(Document* document, const Range& word, int row) const
99{
100 document->replaceText(word, data(index(row, Name, QModelIndex())).toString());
101}
102
103bool CodeCompletionModel::hasGroups() const {
104 return d->hasGroups;
105}
106
107void CodeCompletionModel::setHasGroups(bool hasGroups)
108{
109 if (d->hasGroups!=hasGroups) {
110 d->hasGroups=hasGroups;
111 emit hasGroupsChanged(this,hasGroups);
112 }
113}
114
115CodeCompletionModel2::CodeCompletionModel2(QObject* parent) : CodeCompletionModel(parent)
116{
117}
118
119void CodeCompletionModel2::executeCompletionItem2(Document* document, const Range& word, const QModelIndex& index) const
120{
121 document->replaceText(word, data(index.sibling(index.row(), Name)).toString());
122}
123
124#include "codecompletionmodel.moc"
KTextEditor::CodeCompletionModel2::executeCompletionItem2
virtual void executeCompletionItem2(Document *document, const Range &word, const QModelIndex &index) const
This function is responsible for inserting a selected completion into the document.
Definition: codecompletionmodel.cpp:119
KTextEditor::CodeCompletionModel2::CodeCompletionModel2
CodeCompletionModel2(QObject *parent)
Definition: codecompletionmodel.cpp:115
KTextEditor::CodeCompletionModel
An item model for providing code completion, and meta information for enhanced presentation.
Definition: codecompletionmodel.h:78
KTextEditor::CodeCompletionModel::hasGroups
bool hasGroups() const
This function returns true if the model needs grouping, otherwise false in KDE 4 default value is tru...
Definition: codecompletionmodel.cpp:103
KTextEditor::CodeCompletionModel::executeCompletionItem
virtual void executeCompletionItem(Document *document, const Range &word, int row) const
Definition: codecompletionmodel.cpp:98
KTextEditor::CodeCompletionModel::ColumnCount
static const int ColumnCount
Definition: codecompletionmodel.h:96
KTextEditor::CodeCompletionModel::setRowCount
void setRowCount(int rowCount)
Definition: codecompletionmodel.cpp:78
KTextEditor::CodeCompletionModel::rowCount
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const
Reimplemented from QAbstractItemModel::rowCount().
Definition: codecompletionmodel.cpp:83
KTextEditor::CodeCompletionModel::Name
@ Name
Definition: codecompletionmodel.h:92
KTextEditor::CodeCompletionModel::completionInvoked
virtual void completionInvoked(KTextEditor::View *view, const KTextEditor::Range &range, InvocationType invocationType)
This function is responsible to generating / updating the list of current completions.
Definition: codecompletionmodel.cpp:91
KTextEditor::CodeCompletionModel::LastItemDataRole
static const int LastItemDataRole
Definition: codecompletionmodel.h:363
KTextEditor::CodeCompletionModel::InvocationType
InvocationType
Definition: codecompletionmodel.h:367
KTextEditor::CodeCompletionModel::parent
virtual QModelIndex parent(const QModelIndex &index) const
Reimplemented from QAbstractItemModel::parent().
Definition: codecompletionmodel.cpp:73
KTextEditor::CodeCompletionModel::hasGroupsChanged
void hasGroupsChanged(KTextEditor::CodeCompletionModel *model, bool hasGroups)
Internal.
KTextEditor::CodeCompletionModel::itemData
virtual QMap< int, QVariant > itemData(const QModelIndex &index) const
Reimplemented from QAbstractItemModel::itemData().
Definition: codecompletionmodel.cpp:60
KTextEditor::CodeCompletionModel::setHasGroups
void setHasGroups(bool hasGroups)
Definition: codecompletionmodel.cpp:107
KTextEditor::CodeCompletionModel::index
virtual QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const
Reimplemented from QAbstractItemModel::index().
Definition: codecompletionmodel.cpp:52
KTextEditor::CodeCompletionModel::CompletionRole
@ CompletionRole
The model should return a set of CompletionProperties.
Definition: codecompletionmodel.h:151
KTextEditor::CodeCompletionModel::columnCount
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const
Reimplemented from QAbstractItemModel::columnCount().
Definition: codecompletionmodel.cpp:47
KTextEditor::CodeCompletionModel::CodeCompletionModel
CodeCompletionModel(QObject *parent)
Definition: codecompletionmodel.cpp:36
KTextEditor::Document
A KParts derived class representing a text document.
Definition: document.h:112
KTextEditor::Document::replaceText
virtual bool replaceText(const Range &range, const QString &text, bool block=false)
Replace text from range with specified text.
Definition: document.cpp:179
KTextEditor::Range
An object representing a section of text, from one Cursor to another.
Definition: range.h:55
KTextEditor::View
A text widget with KXMLGUIClient that represents a Document.
Definition: view.h:146
QAbstractItemModel
QMap
QObject
codecompletionmodel.h
document.h
KTextEditor
Namespace for the KDE Text Editor Interfaces.
Definition: annotationinterface.h:31
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by doxygen 1.9.6 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KTextEditor

Skip menu "KTextEditor"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules
  • Related Pages

kdelibs-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal