• 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
  • plugins
  • runner
  • monav
MonavMapsModel.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 2010 Dennis Nienhüser <earthwings@gentoo.org>
9 //
10 
11 #include "MonavMapsModel.h"
12 
13 #include <QDate>
14 
15 namespace Marble
16 {
17 
18 void MonavMapsModel::deleteMapFiles( int row )
19 {
20  if ( row >= 0 && row < m_data.size() ) {
21  m_data.at( row ).remove();
22  beginRemoveRows( QModelIndex(), row, row );
23  m_data.remove( row );
24  endRemoveRows();
25  }
26 }
27 
28 void MonavMapsModel::setInstallableVersions( const QMap<QString, QString> remoteMaps )
29 {
30  m_remoteMaps = remoteMaps;
31  beginResetModel();
32  endResetModel();
33 }
34 
35 MonavMapsModel::MonavMapsModel( const QVector<MonavMap> &data, QObject * parent ) :
36  QAbstractTableModel( parent ), m_data( data )
37 {
38  qSort( m_data.begin(), m_data.end(), &MonavMap::nameLessThan );
39 }
40 
41 QVariant MonavMapsModel::headerData ( int section, Qt::Orientation orientation, int role ) const
42 {
43  if ( orientation == Qt::Horizontal && role == Qt::DisplayRole ) {
44  switch( section ) {
45  case 0:
46  return tr( "Name" );
47  case 1:
48  return tr( "Transport" );
49  case 2:
50  return tr( "Size" );
51  case 3:
52  return tr( "Update" );
53  case 4:
54  return tr( "Delete" );
55  case 5:
57  return tr( "Update" );
58  }
59  }
60 
61  return QVariant();
62 }
63 
64 QVariant MonavMapsModel::data ( const QModelIndex & index, int role ) const
65 {
66  if ( index.isValid() && role == Qt::DisplayRole ) {
67  int const row = index.row();
68  if ( row >= 0 && row < m_data.size() )
69  switch( index.column() ) {
70  case 0:
71  return m_data.at( row ).name();
72  case 1:
73  return m_data.at( row ).transport();
74  case 2:
75  return QString( "%1 MB" ).arg( 1 + m_data.at( row ).size() / 1024 / 1024 );
76  case 3: {
77  QString payload = m_data.at( row ).payload();
78  payload = payload.mid( payload.lastIndexOf( "/" ) + 1 );
79  if ( m_remoteMaps.contains( payload ) ) {
80  QDate remote = QDate::fromString( m_remoteMaps[payload], "MM/dd/yy" );
81  QDate local = QDate::fromString( m_data.at( row ).date(), "MM/dd/yy" );
82  return remote > local;
83  }
84 
85  return false;
86  }
87  case 4:
88  return QFileInfo( m_data.at( row ).directory().absolutePath() ).isWritable();
89  case 5:
90  {
91  QDate date = QDate::fromString( m_data.at( row ).date(), "MM/dd/yy" );
92  if ( date.year() < 2000 ) {
93  // Qt interprets 11 as 1911
94  date.setDate( date.year() + 100, date.month(), date.day() );
95  }
96  return date.toString( Qt::SystemLocaleShortDate );
97  }
98  }
99  }
100 
101  return QVariant();
102 }
103 
104 int MonavMapsModel::rowCount ( const QModelIndex & parent ) const
105 {
106  return parent.isValid() ? 0 : m_data.size();
107 }
108 
109 int MonavMapsModel::columnCount ( const QModelIndex & parent ) const
110 {
111  return parent.isValid() ? 0 : 6;
112 }
113 
114 QString MonavMapsModel::payload( int index ) const
115 {
116  if ( index >= 0 && index <= m_data.size() ) {
117  return m_data.at( index ).payload();
118  }
119 
120  return QString();
121 }
122 
123 }
124 
125 #include "MonavMapsModel.moc"
Marble::MonavMap::nameLessThan
static bool nameLessThan(const MonavMap &first, const MonavMap &second)
Definition: MonavMap.cpp:175
Marble::MonavMapsModel::MonavMapsModel
MonavMapsModel(const QVector< MonavMap > &data, QObject *parent=0)
Definition: MonavMapsModel.cpp:35
Marble::MonavMapsModel::deleteMapFiles
void deleteMapFiles(int index)
Definition: MonavMapsModel.cpp:18
Marble::MonavMapsModel::data
virtual QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
Definition: MonavMapsModel.cpp:64
QObject
Marble::MonavMapsModel::setInstallableVersions
void setInstallableVersions(const QMap< QString, QString > localMaps)
Definition: MonavMapsModel.cpp:28
MonavMapsModel.h
Marble::MonavMapsModel::headerData
virtual QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
Definition: MonavMapsModel.cpp:41
Marble::MonavMapsModel::payload
QString payload(int index) const
Definition: MonavMapsModel.cpp:114
Marble::MonavMapsModel::rowCount
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const
Definition: MonavMapsModel.cpp:104
Marble::MonavMapsModel::columnCount
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const
Definition: MonavMapsModel.cpp:109
QAbstractTableModel
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