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

marble

  • sources
  • kde-4.12
  • 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  {}
34 
38  void showPluginAboutDialog( const QModelIndex &index );
39 
43  void showPluginConfigDialog( const QModelIndex &index );
44 
45  Marble::MarblePluginSettingsWidget *const q;
46  PluginItemDelegate *m_itemDelegate;
47  QPointer<RenderPluginModel> m_pluginModel;
48 };
49 
50 void MarblePluginSettingsWidgetPrivate::showPluginAboutDialog( const QModelIndex &index )
51 {
52  if ( m_pluginModel.isNull() )
53  return;
54 
55  QPointer<PluginAboutDialog> aboutDialog = new PluginAboutDialog( q );
56 
57  aboutDialog->setName( m_pluginModel->data( index, RenderPluginModel::Name ).toString() );
58  aboutDialog->setIcon( qvariant_cast<QIcon>( m_pluginModel->data( index, RenderPluginModel::Icon ) ) );
59  aboutDialog->setVersion( m_pluginModel->data( index, RenderPluginModel::Version ).toString() );
60  aboutDialog->setDataText( m_pluginModel->data( index, RenderPluginModel::AboutDataText ).toString() );
61  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>" );
62  aboutDialog->setAboutText( copyrightText.arg( m_pluginModel->data( index, RenderPluginModel::CopyrightYears ).toString() ) );
63  aboutDialog->setAuthors( m_pluginModel->pluginAuthors( index ) );
64 
65  aboutDialog->exec();
66  delete aboutDialog;
67 }
68 
69 void MarblePluginSettingsWidgetPrivate::showPluginConfigDialog( const QModelIndex &index )
70 {
71  if ( m_pluginModel.isNull() )
72  return;
73 
74  DialogConfigurationInterface *configInterface = m_pluginModel->pluginDialogConfigurationInterface( index );;
75  QDialog *configDialog = configInterface ? configInterface->configDialog() : 0;
76  if ( configDialog ) {
77  configDialog->show();
78  }
79 }
80 
81 MarblePluginSettingsWidget::MarblePluginSettingsWidget( QWidget *parent )
82  : QWidget( parent ),
83  d( new MarblePluginSettingsWidgetPrivate( this ) )
84 {
85  d->setupUi( this );
86 
87  d->m_itemDelegate = new PluginItemDelegate( d->m_pluginListView, this );
88  d->m_pluginListView->setItemDelegate( d->m_itemDelegate );
89  connect( d->m_itemDelegate, SIGNAL(aboutPluginClicked(QModelIndex)),
90  this, SLOT(showPluginAboutDialog(QModelIndex)) );
91  connect( d->m_itemDelegate, SIGNAL(configPluginClicked(QModelIndex)),
92  this, SLOT(showPluginConfigDialog(QModelIndex)) );
93 }
94 
95 void MarblePluginSettingsWidget::setAboutIcon( const QIcon& icon )
96 {
97  d->m_itemDelegate->setAboutIcon( icon );
98 }
99 
100 MarblePluginSettingsWidget::~MarblePluginSettingsWidget()
101 {
102  delete d;
103 }
104 
105 void MarblePluginSettingsWidget::setConfigIcon( const QIcon& icon )
106 {
107  d->m_itemDelegate->setConfigIcon( icon );
108 }
109 
110 void MarblePluginSettingsWidget::setModel( RenderPluginModel* pluginModel )
111 {
112  if ( !d->m_pluginModel.isNull() ) {
113  disconnect( d->m_pluginModel.data(), 0, this, 0 );
114  }
115 
116  d->m_pluginModel = pluginModel;
117  d->m_pluginListView->setModel( pluginModel );
118 
119  if ( !d->m_pluginModel.isNull() ) {
120  connect( d->m_pluginModel.data(), SIGNAL(itemChanged(QStandardItem*)),
121  this, SIGNAL(pluginListViewClicked()) );
122  }
123 }
124 
125 } // namespace Marble
126 
127 #include "MarblePluginSettingsWidget.moc"
Marble::RenderPluginModel
Provides common access to various kinds of plugins without having to know about their details...
Definition: RenderPluginModel.h:30
Marble::RenderPluginModel::AboutDataText
Definition: RenderPluginModel.h:46
RenderPluginModel.h
Marble::MarblePluginSettingsWidget::~MarblePluginSettingsWidget
~MarblePluginSettingsWidget()
Definition: MarblePluginSettingsWidget.cpp:100
MarblePluginSettingsWidget.h
This file contains the multiple inheritance ui-wrapper for the MarblePluginSettingsWidget ui file...
QDialog
QWidget
Marble::RenderPluginModel::Version
Definition: RenderPluginModel.h:45
Marble::MarblePluginSettingsWidget
Definition: MarblePluginSettingsWidget.h:39
Marble::RenderPluginModel::Name
Definition: RenderPluginModel.h:39
DialogConfigurationInterface.h
PluginItemDelegate.h
Marble::MarblePluginSettingsWidget::pluginListViewClicked
void pluginListViewClicked()
Marble::MarblePluginSettingsWidget::setConfigIcon
void setConfigIcon(const QIcon &icon)
Definition: MarblePluginSettingsWidget.cpp:105
Marble::RenderPluginModel::Icon
Definition: RenderPluginModel.h:40
Marble::MarblePluginSettingsWidget::setAboutIcon
void setAboutIcon(const QIcon &icon)
Definition: MarblePluginSettingsWidget.cpp:95
PluginAboutDialog.h
Marble::MarblePluginSettingsWidget::setModel
void setModel(RenderPluginModel *pluginModel)
Definition: MarblePluginSettingsWidget.cpp:110
Marble::MarblePluginSettingsWidget::MarblePluginSettingsWidget
MarblePluginSettingsWidget(QWidget *parent=0)
Definition: MarblePluginSettingsWidget.cpp:81
Marble::PluginItemDelegate
Definition: PluginItemDelegate.h:27
Marble::RenderPluginModel::CopyrightYears
Definition: RenderPluginModel.h:47
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:38:51 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
  • kstars
  • libkdeedu
  •   keduvocdocument
  • 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