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

marble

  • sources
  • kde-4.14
  • kdeedu
  • marble
  • src
  • lib
  • marble
MarblePluginSettingsWidget.cpp
Go to the documentation of this file.
1 //
2 // This file is part of the Marble Virtual Globe.
3 //
4 // This program is free software licensed under the GNU LGPL. You can
5 // find a copy of this license in LICENSE.txt in the top directory of
6 // the source code.
7 //
8 // Copyright 2007 Torsten Rahn <rahn@kde.org>
9 // Copyright 2008 Jens-Michael Hoffmann <jensmh@gmx.de>
10 //
11 
12 #include "MarblePluginSettingsWidget.h"
13 #include "ui_MarblePluginSettingsWidget.h"
14 
15 // Qt
16 #include <QPointer>
17 #include <QDialog>
18 
19 // Marble
20 #include "DialogConfigurationInterface.h"
21 #include "PluginAboutDialog.h"
22 #include "PluginItemDelegate.h"
23 #include "RenderPluginModel.h"
24 
25 namespace Marble
26 {
27 
28 class MarblePluginSettingsWidgetPrivate : public Ui::MarblePluginSettingsWidget
29 {
30  public:
31  MarblePluginSettingsWidgetPrivate( Marble::MarblePluginSettingsWidget *parent ) :
32  q( parent ),
33  m_itemDelegate( 0 )
34  {}
35 
39  void showPluginAboutDialog( const QModelIndex &index );
40 
44  void showPluginConfigDialog( const QModelIndex &index );
45 
46  Marble::MarblePluginSettingsWidget *const q;
47  PluginItemDelegate *m_itemDelegate;
48  QPointer<RenderPluginModel> m_pluginModel;
49 };
50 
51 void MarblePluginSettingsWidgetPrivate::showPluginAboutDialog( const QModelIndex &index )
52 {
53  if ( m_pluginModel.isNull() )
54  return;
55 
56  QPointer<PluginAboutDialog> aboutDialog = new PluginAboutDialog( q );
57 
58  aboutDialog->setName( m_pluginModel->data( index, RenderPluginModel::Name ).toString() );
59  aboutDialog->setIcon( qvariant_cast<QIcon>( m_pluginModel->data( index, RenderPluginModel::Icon ) ) );
60  aboutDialog->setVersion( m_pluginModel->data( index, RenderPluginModel::Version ).toString() );
61  aboutDialog->setDataText( m_pluginModel->data( index, RenderPluginModel::AboutDataText ).toString() );
62  const QString copyrightText = QObject::tr( "<br/>(c) %1 The Marble Project<br /><br/><a href=\"http://edu.kde.org/marble\">http://edu.kde.org/marble</a>" );
63  aboutDialog->setAboutText( copyrightText.arg( m_pluginModel->data( index, RenderPluginModel::CopyrightYears ).toString() ) );
64  aboutDialog->setAuthors( m_pluginModel->pluginAuthors( index ) );
65 
66  aboutDialog->exec();
67  delete aboutDialog;
68 }
69 
70 void MarblePluginSettingsWidgetPrivate::showPluginConfigDialog( const QModelIndex &index )
71 {
72  if ( m_pluginModel.isNull() )
73  return;
74 
75  DialogConfigurationInterface *configInterface = m_pluginModel->pluginDialogConfigurationInterface( index );;
76  QDialog *configDialog = configInterface ? configInterface->configDialog() : 0;
77  if ( configDialog ) {
78  configDialog->show();
79  }
80 }
81 
82 MarblePluginSettingsWidget::MarblePluginSettingsWidget( QWidget *parent )
83  : QWidget( parent ),
84  d( new MarblePluginSettingsWidgetPrivate( this ) )
85 {
86  d->setupUi( this );
87 
88  d->m_itemDelegate = new PluginItemDelegate( d->m_pluginListView, this );
89  d->m_pluginListView->setItemDelegate( d->m_itemDelegate );
90  connect( d->m_itemDelegate, SIGNAL(aboutPluginClicked(QModelIndex)),
91  this, SLOT(showPluginAboutDialog(QModelIndex)) );
92  connect( d->m_itemDelegate, SIGNAL(configPluginClicked(QModelIndex)),
93  this, SLOT(showPluginConfigDialog(QModelIndex)) );
94 }
95 
96 void MarblePluginSettingsWidget::setAboutIcon( const QIcon& icon )
97 {
98  d->m_itemDelegate->setAboutIcon( icon );
99 }
100 
101 MarblePluginSettingsWidget::~MarblePluginSettingsWidget()
102 {
103  delete d;
104 }
105 
106 void MarblePluginSettingsWidget::setConfigIcon( const QIcon& icon )
107 {
108  d->m_itemDelegate->setConfigIcon( icon );
109 }
110 
111 void MarblePluginSettingsWidget::setModel( RenderPluginModel* pluginModel )
112 {
113  if ( !d->m_pluginModel.isNull() ) {
114  disconnect( d->m_pluginModel.data(), 0, this, 0 );
115  }
116 
117  d->m_pluginModel = pluginModel;
118  d->m_pluginListView->setModel( pluginModel );
119 
120  if ( !d->m_pluginModel.isNull() ) {
121  connect( d->m_pluginModel.data(), SIGNAL(itemChanged(QStandardItem*)),
122  this, SIGNAL(pluginListViewClicked()) );
123  }
124 }
125 
126 } // namespace Marble
127 
128 #include "MarblePluginSettingsWidget.moc"
Marble::RenderPluginModel
Provides common access to various kinds of plugins without having to know about their details...
Definition: RenderPluginModel.h:30
QModelIndex
QWidget
Marble::RenderPluginModel::AboutDataText
Definition: RenderPluginModel.h:46
RenderPluginModel.h
Marble::MarblePluginSettingsWidget::~MarblePluginSettingsWidget
~MarblePluginSettingsWidget()
Definition: MarblePluginSettingsWidget.cpp:101
MarblePluginSettingsWidget.h
This file contains the multiple inheritance ui-wrapper for the MarblePluginSettingsWidget ui file...
QPointer
Marble::RenderPluginModel::Version
Definition: RenderPluginModel.h:45
Marble::MarblePluginSettingsWidget
Definition: MarblePluginSettingsWidget.h:39
Marble::RenderPluginModel::Name
Definition: RenderPluginModel.h:39
QObject::disconnect
bool disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *method)
QObject::tr
QString tr(const char *sourceText, const char *disambiguation, int n)
DialogConfigurationInterface.h
PluginItemDelegate.h
QString
Marble::MarblePluginSettingsWidget::pluginListViewClicked
void pluginListViewClicked()
Marble::MarblePluginSettingsWidget::setConfigIcon
void setConfigIcon(const QIcon &icon)
Definition: MarblePluginSettingsWidget.cpp:106
Marble::RenderPluginModel::Icon
Definition: RenderPluginModel.h:40
Marble::MarblePluginSettingsWidget::setAboutIcon
void setAboutIcon(const QIcon &icon)
Definition: MarblePluginSettingsWidget.cpp:96
PluginAboutDialog.h
Marble::MarblePluginSettingsWidget::setModel
void setModel(RenderPluginModel *pluginModel)
Definition: MarblePluginSettingsWidget.cpp:111
QDialog
Marble::MarblePluginSettingsWidget::MarblePluginSettingsWidget
MarblePluginSettingsWidget(QWidget *parent=0)
Definition: MarblePluginSettingsWidget.cpp:82
Marble::PluginItemDelegate
Definition: PluginItemDelegate.h:27
QWidget::show
void show()
QStandardItem
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QString::arg
QString arg(qlonglong a, int fieldWidth, int base, const QChar &fillChar) const
QIcon
Marble::RenderPluginModel::CopyrightYears
Definition: RenderPluginModel.h:47
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:13:40 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

marble

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

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

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