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

KNewStuff

  • sources
  • kde-4.12
  • kdelibs
  • knewstuff
  • knewstuff3
  • ui
itemsgridviewdelegate.cpp
Go to the documentation of this file.
1 /*
2  Copyright (C) 2008 Jeremy Whiting <jpwhiting@kde.org>
3  Copyright (C) 2010 Reza Fatahilah Shah <rshah0385@kireihana.com>
4  Copyright (C) 2010 Frederik Gladhorn <gladhorn@kde.org>
5 
6  This library is free software; you can redistribute it and/or
7  modify it under the terms of the GNU Lesser General Public
8  License as published by the Free Software Foundation; either
9  version 2.1 of the License, or (at your option) any later version.
10 
11  This library is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public
17  License along with this library. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #include "itemsgridviewdelegate.h"
21 
22 #include <QtGui/QPainter>
23 #include <QtGui/QSortFilterProxyModel>
24 #include <QtGui/QApplication>
25 #include <QLabel>
26 #include <QToolButton>
27 #include <QMenu>
28 #include <QHBoxLayout>
29 #include <QAbstractItemView>
30 
31 #include <kdebug.h>
32 #include <klocale.h>
33 #include <kmenu.h>
34 #include <kratingwidget.h>
35 #include <ksqueezedtextlabel.h>
36 
37 #include "itemsmodel.h"
38 
39 namespace KNS3
40 {
41  enum { DelegateTitleLabel, DelegateAuthorLabel, DelegateDownloadCounterLabel,
42  DelegateGridRatingWidget };
43 
44 ItemsGridViewDelegate::ItemsGridViewDelegate(QAbstractItemView *itemView, Engine* engine, QObject * parent)
45  : ItemsViewBaseDelegate(itemView, engine, parent)
46  ,m_elementYPos(0)
47 {
48  createOperationBar();
49 }
50 
51 ItemsGridViewDelegate::~ItemsGridViewDelegate()
52 {
53 }
54 
55 QList<QWidget*> ItemsGridViewDelegate::createItemWidgets() const
56 {
57  QList<QWidget*> m_widgetList;
58  KSqueezedTextLabel * titleLabel = new KSqueezedTextLabel();
59  titleLabel->setOpenExternalLinks(true);
60  titleLabel->setTextElideMode(Qt::ElideRight);
61  // not so nice - work around constness to install the event filter
62  ItemsGridViewDelegate* delegate = const_cast<ItemsGridViewDelegate*>(this);
63  titleLabel->installEventFilter(delegate);
64  m_widgetList << titleLabel;
65 
66  KSqueezedTextLabel * authorLabel = new KSqueezedTextLabel();
67  authorLabel->setTextElideMode(Qt::ElideRight);
68  m_widgetList << authorLabel;
69 
70  KSqueezedTextLabel * downloadCounterLabel = new KSqueezedTextLabel();
71  downloadCounterLabel->setTextElideMode(Qt::ElideRight);
72  m_widgetList << downloadCounterLabel;
73 
74  KRatingWidget* rating = new KRatingWidget();
75  rating->setMaxRating(10);
76  rating->setHalfStepsEnabled(true);
77  m_widgetList << rating;
78 
79  return m_widgetList;
80 }
81 
82 void ItemsGridViewDelegate::updateItemWidgets(const QList<QWidget*> widgets,
83  const QStyleOptionViewItem &option,
84  const QPersistentModelIndex &index) const
85 {
86  const ItemsModel * model = qobject_cast<const ItemsModel*>(index.model());
87  if (!model) {
88  kDebug() << "WARNING - INVALID MODEL!";
89  return;
90  }
91 
92  EntryInternal entry = index.data(Qt::UserRole).value<KNS3::EntryInternal>();
93  int elementXPos = ItemMargin;
94  int elementYPos = PreviewHeight + ItemMargin + FrameThickness*2;
95 
96  //setup rating widget
97  KRatingWidget * rating = qobject_cast<KRatingWidget*>(widgets.at(DelegateGridRatingWidget));
98  if (rating) {
99  if (entry.rating() > 0) {
100  rating->setToolTip(i18n("Rating: %1%", entry.rating()));
101  // assume all entries come with rating 0..100 but most are in the range 20 - 80, so 20 is 0 stars, 80 is 5 stars
102  rating->setRating((entry.rating()-20)*10/60);
103  //make the rating widget smaller than the one at list view
104  int newWidth = 68;
105  QSize size(newWidth, 15);
106  rating->resize(size);
107  //put rating widget under image rectangle
108  rating->move((ItemGridWidth-newWidth)/2, elementYPos);
109  elementYPos += rating->height();
110  } else {
111  //is it better to stay visible?
112  rating->setVisible(false);
113  }
114  }
115  elementYPos += ItemMargin;
116 
117  //setup title label
118  QLabel * titleLabel = qobject_cast<QLabel*>(widgets.at(DelegateTitleLabel));
119  if (titleLabel != NULL) {
120  titleLabel->setWordWrap(true);
121  titleLabel->setAlignment(Qt::AlignHCenter);
122  //titleLabel->setFrameStyle(QFrame::Panel);
123  titleLabel->resize(QSize(option.rect.width() - (ItemMargin * 2), option.fontMetrics.height() * 2));
124  titleLabel->move((ItemGridWidth-titleLabel->width())/2, elementYPos);
125 
126  QString title;
127  KUrl link = qvariant_cast<KUrl>(entry.homepage());
128  if (!link.isEmpty()) {
129  title += "<b><a href=\"" + link.url() + "\">" + entry.name() + "</a></b>\n";
130  } else {
131  title += "<b>" + entry.name() + "</b>";
132  }
133  titleLabel->setText(title);
134  elementYPos += titleLabel->height();
135  }
136  //setup author label
137  QLabel * authorLabel = qobject_cast<QLabel*>(widgets.at(DelegateAuthorLabel));
138  if (authorLabel != NULL) {
139  authorLabel->setWordWrap(true);
140  authorLabel->setAlignment(Qt::AlignHCenter);
141  authorLabel->resize(QSize(option.rect.width() - (ItemMargin * 2), option.fontMetrics.height()));
142  authorLabel->move((ItemGridWidth-authorLabel->width())/2,elementYPos);
143 
144  QString text;
145  QString authorName = entry.author().name();
146  QString email = entry.author().email();
147  QString authorPage = entry.author().homepage();
148 
149  if (!authorName.isEmpty()) {
150  if (!authorPage.isEmpty()) {
151  text += "<p>" + i18nc("Show the author of this item in a list", "By <i>%1</i>", " <a href=\"" + authorPage + "\">" + authorName + "</a>") + "</p>\n";
152  } else if (!email.isEmpty()) {
153  text += "<p>" + i18nc("Show the author of this item in a list", "By <i>%1</i>", authorName) + " <a href=\"mailto:" + email + "\">" + email + "</a></p>\n";
154  } else {
155  text += "<p>" + i18nc("Show the author of this item in a list", "By <i>%1</i>", authorName) + "</p>\n";
156  }
157  }
158  authorLabel->setText(text);
159  elementYPos += authorLabel->height();
160  }
161  elementYPos += ItemMargin;
162 
163  //setup download label
164  QLabel * downloadLabel = qobject_cast<QLabel*>(widgets.at(DelegateDownloadCounterLabel));
165  if (downloadLabel != NULL) {
166  downloadLabel->setWordWrap(true);
167  downloadLabel->setAlignment(Qt::AlignHCenter);
168  downloadLabel->resize(QSize(option.rect.width() - (ItemMargin * 2), option.fontMetrics.height()));
169  downloadLabel->move((ItemGridWidth-downloadLabel->width())/2,elementYPos);
170 
171  unsigned int fans = entry.numberFans();
172  unsigned int downloads = entry.downloadCount();
173 
174  QString text;
175  QString fanString;
176  QString downloadString;
177  if (fans > 0) {
178  fanString = i18ncp("fan as in supporter", "1 fan", "%1 fans", fans);
179  }
180  if (downloads > 0) {
181  downloadString = i18np("1 download", "%1 downloads", downloads);
182  }
183  if (downloads > 0 || fans > 0) {
184  text += "<p>" + downloadString;
185  if (downloads > 0 && fans > 0) {
186  text += ", ";
187  }
188  text += fanString + QLatin1String("</p>");
189  }
190  downloadLabel->setText(text);
191  elementYPos += downloadLabel->height();
192  }
193  elementYPos += ItemMargin;
194  m_elementYPos = elementYPos;
195 }
196 
197 void ItemsGridViewDelegate::paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const
198 {
199  if (option.state & QStyle::State_MouseOver) {
200  QModelIndex focIndex = focusedIndex();
201  if (m_oldIndex != focIndex || !m_operationBar->isVisible()) {
202  ItemsGridViewDelegate* delegate = const_cast<ItemsGridViewDelegate*>(this);
203 
204  delegate->displayOperationBar(option.rect,index);
205  delegate->m_oldIndex = focIndex;
206  }
207  } else {
208  QModelIndex focindex = focusedIndex();
209  if(!focindex.isValid()){
210  //kDebug() << "INVALID hide selection";
211  m_operationBar->hide();
212  }
213  }
214 
215  QStyle *style = QApplication::style();
216  style->drawPrimitive(QStyle::PE_PanelItemViewItem, &option, painter, 0);
217 
218  painter->save();
219 
220  if (option.state & QStyle::State_Selected) {
221  painter->setPen(QPen(option.palette.highlightedText().color()));
222  } else {
223  painter->setPen(QPen(option.palette.text().color()));
224  }
225 
226  const ItemsModel * realmodel = qobject_cast<const ItemsModel*>(index.model());
227 
228  if (realmodel->hasPreviewImages()) {
229  int height = option.rect.height();
230  int width = option.rect.width();
231 
232  KNS3::EntryInternal entry = index.data(Qt::UserRole).value<KNS3::EntryInternal>();
233  if (entry.previewUrl(EntryInternal::PreviewSmall1).isEmpty()) {
234  ;
235  } else {
236  QPoint centralPoint(option.rect.left() + width/2,option.rect.top() + ItemMargin + FrameThickness + PreviewHeight/2);
237  QImage image = entry.previewImage(EntryInternal::PreviewSmall1);
238  if (!image.isNull()) {
239  QPoint previewPoint(centralPoint.x() - image.width()/2, centralPoint.y() - image.height()/2);
240  painter->drawImage(previewPoint, image);
241 
242  QPixmap frameImageScaled = m_frameImage.scaled(image.width() + FrameThickness*2, image.height() + FrameThickness*2);
243  QPoint framePoint(centralPoint.x() - frameImageScaled.width()/2, centralPoint.y() - frameImageScaled.height()/2);
244  painter->drawPixmap(framePoint, frameImageScaled);
245  } else {
246  QPoint thumbnailPoint(option.rect.left() + ((width - PreviewWidth - FrameThickness*2) / 2), option.rect.top() + ItemMargin);
247  QRect rect(thumbnailPoint, QSize(PreviewWidth + FrameThickness*2, PreviewHeight + FrameThickness*2));
248  painter->drawText(rect, Qt::AlignCenter | Qt::TextWordWrap, i18n("Loading Preview"));
249  }
250  }
251  }
252 
253  painter->restore();
254 }
255 
256 QSize ItemsGridViewDelegate::sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const
257 {
258  Q_UNUSED(option);
259  Q_UNUSED(index);
260 
261  QSize size;
262 
263  size.setWidth(ItemGridWidth);
264  size.setHeight(qMax(option.fontMetrics.height() * 13, ItemGridHeight)); // up to 6 lines of text, and two margins
265  return size;
266 }
267 
268 void ItemsGridViewDelegate::createOperationBar()
269 {
270  m_operationBar = new QWidget(this->itemView()->viewport());
271 
272  m_detailsButton = new QToolButton();
273  m_detailsButton->setToolButtonStyle(Qt::ToolButtonFollowStyle);
274  m_detailsButton->setPopupMode(QToolButton::InstantPopup);
275  m_detailsButton->setToolTip(i18n("Details"));
276  m_detailsButton->setIcon(KIcon("documentinfo"));
277  setBlockedEventTypes(m_detailsButton, QList<QEvent::Type>() << QEvent::MouseButtonPress
278  << QEvent::MouseButtonRelease << QEvent::MouseButtonDblClick);
279  connect(m_detailsButton, SIGNAL(clicked()), this, SLOT(slotDetailsClicked()));
280 
281  m_installButton = new QToolButton();
282  m_installButton->setToolButtonStyle(Qt::ToolButtonFollowStyle);
283  m_installButton->setPopupMode(QToolButton::InstantPopup);
284 
285  setBlockedEventTypes(m_installButton, QList<QEvent::Type>() << QEvent::MouseButtonPress
286  << QEvent::MouseButtonRelease << QEvent::MouseButtonDblClick);
287  connect(m_installButton, SIGNAL(clicked()), this, SLOT(slotInstallClicked()));
288  connect(m_installButton, SIGNAL(triggered(QAction*)), this, SLOT(slotInstallActionTriggered(QAction*)));
289 
290 
291  if (m_installButton->menu()) {
292  QMenu* buttonMenu = m_installButton->menu();
293  buttonMenu->clear();
294  m_installButton->setMenu(0);
295  buttonMenu->deleteLater();
296  }
297 
298  QHBoxLayout* layout = new QHBoxLayout(m_operationBar);
299 
300  layout->setSpacing(1);
301  layout->addWidget(m_installButton);
302  layout->addWidget(m_detailsButton);
303 
304  m_operationBar->adjustSize();
305  m_operationBar->hide();
306 }
307 
308 void ItemsGridViewDelegate::displayOperationBar(const QRect &rect,const QModelIndex & index)
309 {
310  KNS3::EntryInternal entry = index.data(Qt::UserRole).value<KNS3::EntryInternal>();
311  if (m_installButton != 0) {
312  if (m_installButton->menu() != 0) {
313  QMenu* buttonMenu = m_installButton->menu();
314  buttonMenu->clear();
315  m_installButton->setMenu(0);
316  buttonMenu->deleteLater();
317  }
318 
319  bool installable = false;
320  bool enabled = true;
321  QString text;
322  KIcon icon;
323 
324  switch (entry.status()) {
325  case Entry::Installed:
326  text = i18n("Uninstall");
327  icon = m_iconDelete;
328  break;
329  case Entry::Updateable:
330  text = i18n("Update");
331  icon = m_iconUpdate;
332  installable = true;
333  break;
334  case Entry::Installing:
335  text = i18n("Installing");
336  enabled = false;
337  icon = m_iconUpdate;
338  break;
339  case Entry::Updating:
340  text = i18n("Updating");
341  enabled = false;
342  icon = m_iconUpdate;
343  break;
344  case Entry::Downloadable:
345  text = i18n("Install");
346  icon = m_iconInstall;
347  installable = true;
348  break;
349  case Entry::Deleted:
350  text = i18n("Install Again");
351  icon = m_iconInstall;
352  installable = true;
353  break;
354  default:
355  text = i18n("Install");
356  }
357  m_installButton->setToolTip(text);
358  m_installButton->setIcon(icon);
359  m_installButton->setEnabled(enabled);
360  if (installable && entry.downloadLinkCount() > 1) {
361  KMenu * installMenu = new KMenu(m_installButton);
362  foreach (EntryInternal::DownloadLinkInformation info, entry.downloadLinkInformationList()) {
363  QString text = info.name;
364  if (!info.distributionType.trimmed().isEmpty()) {
365  text + " (" + info.distributionType.trimmed() + ")";
366  }
367  QAction* installAction = installMenu->addAction(m_iconInstall, text);
368  installAction->setData(QPoint(index.row(), info.id));
369  }
370  m_installButton->setMenu(installMenu);
371  }
372 
373  m_operationBar->move(rect.left()+(ItemGridWidth-m_operationBar->width())/2,rect.top() + m_elementYPos);
374  m_operationBar->show();
375  }
376 }
377 }
378 
379 #include "itemsgridviewdelegate.moc"
KNS3::Entry::Deleted
Definition: knewstuff3/entry.h:63
i18n
QString i18n(const char *text)
KNS3::EntryInternal::downloadLinkCount
int downloadLinkCount() const
Definition: entryinternal.cpp:397
KRatingWidget::setRating
void setRating(int rating)
KNS3::EntryInternal::PreviewSmall1
Definition: entryinternal.h:71
KWidgetItemDelegate::focusedIndex
QPersistentModelIndex focusedIndex() const
kdebug.h
KNS3::EntryInternal
KNewStuff data entry container.
Definition: entryinternal.h:54
KNS3::ItemsViewBaseDelegate::m_frameImage
QPixmap m_frameImage
Definition: itemsviewbasedelegate.h:78
KNS3::ItemsGridViewDelegate::paint
virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
Definition: itemsgridviewdelegate.cpp:197
KNS3::Engine
KNewStuff engine.
Definition: knewstuff3/core/engine.h:52
KNS3::EntryInternal::name
QString name() const
Retrieve the name of the data object.
Definition: entryinternal.cpp:124
i18np
QString i18np(const char *sing, const char *plur, const A1 &a1)
KMenu
KWidgetItemDelegate::itemView
QAbstractItemView * itemView() const
QWidget
KNS3::FrameThickness
static const int FrameThickness
Definition: itemsgridviewdelegate.h:30
KNS3::ItemsGridViewDelegate
Definition: itemsgridviewdelegate.h:32
KNS3::PreviewHeight
static const int PreviewHeight
Definition: entryinternal.h:37
KNS3::ItemsModel::hasPreviewImages
bool hasPreviewImages() const
Definition: knewstuff3/ui/itemsmodel.cpp:142
KRatingWidget::setHalfStepsEnabled
void setHalfStepsEnabled(bool enabled)
KNS3::Author::name
QString name() const
Retrieve the author's name.
Definition: knewstuff3/core/author.cpp:30
KNS3::ItemMargin
static const int ItemMargin
Definition: itemsgridviewdelegate.h:31
QString
QObject
kDebug
static QDebug kDebug(bool cond, int area=KDE_DEFAULT_DEBUG_AREA)
KRatingWidget::setMaxRating
void setMaxRating(int max)
klocale.h
KWidgetItemDelegate::setBlockedEventTypes
void setBlockedEventTypes(QWidget *widget, QList< QEvent::Type > types) const
KUrl
i18nc
QString i18nc(const char *ctxt, const char *text)
KNS3::ItemsViewBaseDelegate::m_iconUpdate
KIcon m_iconUpdate
Definition: itemsviewbasedelegate.h:76
KNS3::Entry::Installed
Definition: knewstuff3/entry.h:61
kmenu.h
KNS3::EntryInternal::previewImage
QImage previewImage(PreviewType type=PreviewSmall1) const
This will not be loaded automatically, instead use Engine to load the actual images.
Definition: entryinternal.cpp:274
i18ncp
QString i18ncp(const char *ctxt, const char *sing, const char *plur, const A1 &a1)
KNS3::EntryInternal::numberFans
int numberFans() const
Definition: entryinternal.cpp:304
KNS3::ItemsViewBaseDelegate::slotInstallActionTriggered
void slotInstallActionTriggered(QAction *action)
Definition: itemsviewbasedelegate.cpp:87
KNS3::ItemsGridViewDelegate::updateItemWidgets
virtual void updateItemWidgets(const QList< QWidget * > widgets, const QStyleOptionViewItem &option, const QPersistentModelIndex &index) const
Definition: itemsgridviewdelegate.cpp:82
KNS3::EntryInternal::status
Entry::Status status() const
Retrieves the entry's status.
Definition: entryinternal.cpp:367
KNS3::PreviewWidth
static const int PreviewWidth
Definition: entryinternal.h:36
KIcon
link
CopyJob * link(const KUrl &src, const KUrl &destDir, JobFlags flags=DefaultFlags)
KNS3::ItemsModel
Definition: knewstuff3/ui/itemsmodel.h:33
KNS3::EntryInternal::previewUrl
QString previewUrl(PreviewType type=PreviewSmall1) const
Retrieve the file name of an image containing a preview of the object.
Definition: entryinternal.cpp:264
KNS3::Entry::Downloadable
Definition: knewstuff3/entry.h:60
KNS3::Author::homepage
QString homepage() const
Retrieve the author's homepage.
Definition: knewstuff3/core/author.cpp:60
KSqueezedTextLabel
KNS3::ItemsViewBaseDelegate::m_iconInstall
KIcon m_iconInstall
Definition: itemsviewbasedelegate.h:75
KNS3::EntryInternal::rating
int rating() const
Retrieve the rating for the object, which has been determined by its users and thus might change over...
Definition: entryinternal.cpp:284
KNS3::ItemsGridViewDelegate::createItemWidgets
virtual QList< QWidget * > createItemWidgets() const
Definition: itemsgridviewdelegate.cpp:55
ksqueezedtextlabel.h
KSqueezedTextLabel::setTextElideMode
void setTextElideMode(Qt::TextElideMode mode)
KNS3::ItemsViewBaseDelegate
Definition: itemsviewbasedelegate.h:40
QMenu
KNS3::ItemsGridViewDelegate::~ItemsGridViewDelegate
~ItemsGridViewDelegate()
Definition: itemsgridviewdelegate.cpp:51
KNS3::EntryInternal::author
Author author() const
Retrieve the author of the object.
Definition: entryinternal.cpp:174
KNS3::Entry::Installing
Definition: knewstuff3/entry.h:64
KNS3::DelegateDownloadCounterLabel
Definition: itemsgridviewdelegate.cpp:41
QPoint
KNS3::ItemsViewBaseDelegate::m_iconDelete
KIcon m_iconDelete
Definition: itemsviewbasedelegate.h:77
KNS3::EntryInternal::downloadCount
int downloadCount() const
Retrieve the download count for the object, which has been determined by its hosting sites and thus m...
Definition: entryinternal.cpp:294
QRect
QLabel
KNS3::ItemsViewBaseDelegate::slotDetailsClicked
void slotDetailsClicked()
Definition: itemsviewbasedelegate.cpp:98
KNS3::DelegateTitleLabel
Definition: itemsgridviewdelegate.cpp:41
KNS3::Entry::Updating
Definition: knewstuff3/entry.h:65
KRatingWidget
KNS3::ItemGridHeight
static const int ItemGridHeight
Definition: itemsgridviewdelegate.h:27
QSize
itemsmodel.h
KUrl::url
QString url(AdjustPathOption trailing=LeaveTrailingSlash) const
KNS3::EntryInternal::homepage
KUrl homepage() const
Definition: entryinternal.cpp:164
kratingwidget.h
QToolButton
KNS3::EntryInternal::downloadLinkInformationList
QList< DownloadLinkInformation > downloadLinkInformationList() const
Definition: entryinternal.cpp:402
KNS3::DelegateGridRatingWidget
Definition: itemsgridviewdelegate.cpp:42
KNS3::ItemGridWidth
static const int ItemGridWidth
Definition: itemsgridviewdelegate.h:28
itemsgridviewdelegate.h
KNS3::ItemsGridViewDelegate::sizeHint
virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
Definition: itemsgridviewdelegate.cpp:256
KNS3::ItemsViewBaseDelegate::slotInstallClicked
void slotInstallClicked()
Definition: itemsviewbasedelegate.cpp:69
QAction
KNS3::ItemsGridViewDelegate::ItemsGridViewDelegate
ItemsGridViewDelegate(QAbstractItemView *itemView, Engine *engine, QObject *parent=0)
Definition: itemsgridviewdelegate.cpp:44
KNS3::Author::email
QString email() const
Retrieve the author's email address.
Definition: knewstuff3/core/author.cpp:40
KNS3::Entry::Updateable
Definition: knewstuff3/entry.h:62
QList
KNS3::DelegateAuthorLabel
Definition: itemsgridviewdelegate.cpp:41
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:50:48 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KNewStuff

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

kdelibs API Reference

Skip menu "kdelibs 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
  • kjsembed
  •   WTF
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Nepomuk-Core
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver

Search



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