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

KNewStuff

  • knewstuff
  • knewstuff2
  • ui
providerdialog.cpp
Go to the documentation of this file.
1/*
2 This file is part of KNewStuff2.
3 Copyright (c) 2002 Cornelius Schumacher <schumacher@kde.org>
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#include "providerdialog.h"
20
21#include <QLabel>
22#include <QLayout>
23#include <QTreeWidget>
24
25
26#include <klocale.h>
27#include <kmessagebox.h>
28
29//#include "engine.h"
30#include "knewstuff2/core/provider.h"
31
32using namespace KNS;
33
34class ProviderItem : public QTreeWidgetItem
35{
36public:
37 ProviderItem(QTreeWidget *parent, Provider *provider) :
38 QTreeWidgetItem(parent), mProvider(provider) {
39 setText(0, provider->name().representation());
40 }
41
42 Provider *provider() {
43 return mProvider;
44 }
45
46private:
47 Provider *mProvider;
48};
49
50ProviderDialog::ProviderDialog(/*Engine *engine,*/ QWidget *parent) :
51 KDialog(parent)
52// mEngine( engine )
53{
54 setCaption(i18n("Hot New Stuff Providers"));
55 setButtons(Ok | Cancel);
56 setDefaultButton(Cancel);
57 setModal(false);
58
59 QFrame *topPage = new QFrame(this);
60 setMainWidget(topPage);
61
62 QBoxLayout *topLayout = new QVBoxLayout(topPage);
63
64 QLabel *description = new QLabel(i18n("Please select one of the providers listed below:"), topPage);
65 topLayout->addWidget(description);
66
67 mListWidget = new QTreeWidget(topPage);
68 mListWidget->setHeaderLabels(QStringList(i18n("Name")));
69 topLayout->addWidget(mListWidget);
70 connect(this, SIGNAL(okClicked()), this, SLOT(slotOk()));
71}
72
73void ProviderDialog::clear()
74{
75 mListWidget->clear();
76}
77
78void ProviderDialog::addProvider(Provider *provider)
79{
80 new ProviderItem(mListWidget, provider);
81 if (mListWidget->model()->rowCount() == 1) {
82 QModelIndex index = mListWidget->model()->index(0, 0);
83 mListWidget->selectionModel()->setCurrentIndex(index, QItemSelectionModel::Select);
84 } else if (mListWidget->model()->rowCount() > 1) {
85 QModelIndex index = mListWidget->model()->index(0, 0);
86 mListWidget->selectionModel()->setCurrentIndex(index, QItemSelectionModel::Deselect);
87 }
88}
89
90void ProviderDialog::slotOk()
91{
92 QList<QTreeWidgetItem*> items = mListWidget->selectedItems();
93 ProviderItem *item = static_cast<ProviderItem *>(items.first());
94 if (!item) {
95 KMessageBox::error(this, i18n("No provider selected."));
96 return;
97 }
98
99// mEngine->requestMetaInformation( item->provider() );
100// FIXME: return properly
101 m_provider = item->provider();
102
103 accept();
104}
105
106KNS::Provider *ProviderDialog::provider() const
107{
108 return m_provider;
109}
110
111#include "providerdialog.moc"
KDialog
KDialog::setMainWidget
void setMainWidget(QWidget *widget)
KDialog::setButtons
void setButtons(ButtonCodes buttonMask)
KDialog::Ok
Ok
KDialog::Cancel
Cancel
KDialog::okClicked
void okClicked()
KDialog::setDefaultButton
void setDefaultButton(ButtonCode id)
KDialog::setCaption
virtual void setCaption(const QString &caption)
KMessageBox::error
static void error(QWidget *parent, const QString &text, const QString &caption=QString(), Options options=Notify)
KNS::KTranslatable::representation
QString representation() const
Returns the string which matches most closely the current language.
Definition: ktranslatable.cpp:64
KNS::ProviderDialog::slotOk
void slotOk()
Definition: providerdialog.cpp:90
KNS::ProviderDialog::provider
Provider * provider() const
Definition: providerdialog.cpp:106
KNS::ProviderDialog::addProvider
void addProvider(Provider *)
Adds a Hotstuff provider to the list.
Definition: providerdialog.cpp:78
KNS::ProviderDialog::ProviderDialog
ProviderDialog(QWidget *parent)
Constructor.
Definition: providerdialog.cpp:50
KNS::ProviderDialog::clear
void clear()
Clears the list of providers.
Definition: providerdialog.cpp:73
KNS::Provider
KNewStuff provider container.
Definition: knewstuff2/core/provider.h:52
KNS::Provider::name
KTranslatable name() const
Retrieves the common name of the provider.
Definition: knewstuff2/core/provider.cpp:64
QFrame
QLabel
QList
QTreeWidget
QWidget
klocale.h
i18n
QString i18n(const char *text)
kmessagebox.h
provider.h
KNS
Definition: knewstuff2/core/author.h:27
providerdialog.h
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.

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-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