• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

MerginMaps / input / 5983636709

26 Aug 2023 07:50AM UTC coverage: 62.064% (+1.1%) from 60.955%
5983636709

push

github

web-flow
Lcov to lnx (#2772)

move lcov to linux tests

7552 of 12168 relevant lines covered (62.06%)

102.52 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/app/fieldsmodel.cpp
1
#include "fieldsmodel.h"
2
#include <QtDebug>
3

4
FieldsModel::FieldsModel( QObject *parent )
×
5
  : QAbstractListModel( parent )
×
6
{
7
}
×
8

9
bool FieldsModel::addField( const QString &name, const QString &widgetType )
×
10
{
11
  if ( contains( name ) )
×
12
  {
13
    if ( name.isEmpty() )
×
14
    {
15
      emit notify( tr( "Please fill a name of previous field before adding a new field." ) );
×
16
    }
17
    else
18
    {
19
      emit notify( tr( "Field %1 already exists." ).arg( name ) );
×
20
    }
21
    return false;
×
22
  }
23

24
  beginResetModel();
×
25

26
  FieldConfiguration fc;
×
27
  fc.attributeName = name;
×
28
  fc.widgetType = widgetType;
×
29
  mFields.append( fc );
×
30

31
  endResetModel();
×
32
  return true;
×
33
}
×
34

35
bool FieldsModel::removeField( int row )
×
36
{
37
  if ( row < 0 || row >= mFields.count() )
×
38
    return false;
×
39

40
  beginResetModel();
×
41
  mFields.removeAt( row );
×
42
  endResetModel();
×
43
  return true;
×
44
}
45

46
QVariantMap FieldsModel::supportedTypes()
×
47
{
48
  QVariantMap supportedTypes;
×
49
  supportedTypes.insert( "TextEdit", "Text" );
×
50
  supportedTypes.insert( "DateTime", "Date&time" );
×
51
  supportedTypes.insert( "Range", "Number" );
×
52
  supportedTypes.insert( "CheckBox", "Checkbox" );
×
53
  supportedTypes.insert( "ExternalResource", "Photo" );
×
54

55
  return supportedTypes;
×
56
}
×
57

58
QList<FieldConfiguration> FieldsModel::fields()
×
59
{
60
  return mFields;
×
61
}
62

63
QHash<int, QByteArray> FieldsModel::roleNames() const
×
64
{
65
  QHash<int, QByteArray> roles = QAbstractListModel::roleNames();
×
66
  roles[AttributeName]  = QByteArrayLiteral( "AttributeName" );
×
67
  roles[WidgetType]  = QByteArrayLiteral( "WidgetType" );
×
68

69
  return roles;
×
70
}
×
71

72

73
int FieldsModel::rowCount( const QModelIndex &parent ) const
×
74
{
75
  Q_UNUSED( parent );
76
  return mFields.count();
×
77
}
78

79
QVariant FieldsModel::data( const QModelIndex &index, int role ) const
×
80
{
81
  int row = index.row();
×
82
  if ( row < 0 || row >= mFields.count() )
×
83
    return QVariant();
×
84

85
  FieldConfiguration field = mFields[row];
×
86

87
  switch ( role )
×
88
  {
89
    case AttributeName:
×
90
      return field.attributeName;
×
91
      break;
92

93
    case WidgetType:
×
94
      return field.widgetType;
×
95
      break;
96
  }
97

98
  return QVariant();
×
99
}
×
100

101
bool FieldsModel::setData( const QModelIndex &index, const QVariant &value, int role )
×
102
{
103
  if ( data( index, role ) == value )
×
104
    return true;
×
105

106
  int row = index.row();
×
107
  if ( row < 0 || row >= mFields.count() )
×
108
    return false;
×
109

110
  switch ( role )
×
111
  {
112
    case AttributeName:
×
113
    {
114
      if ( contains( value.toString() ) )
×
115
      {
116
        emit notify( tr( "Field %1 already exists. \nWon't be added to the project." ).arg( value.toString() ) );
×
117
      }
118
      mFields[row].attributeName = value.toString();
×
119
      emit dataChanged( index, index, {AttributeName} );
×
120
      return true;
×
121
    }
122
    case WidgetType:
×
123
    {
124
      mFields[row].widgetType = value.toString();
×
125
      emit dataChanged( index, index, {WidgetType} );
×
126
      return true;
×
127
    }
128
  }
129

130
  return false;
×
131
}
132

133
void FieldsModel::initModel()
×
134
{
135
  mFields.clear();
×
136
  addField( "Date", "DateTime" );
×
137
  addField( "Notes", "TextEdit" );
×
138
  addField( "Photo", "ExternalResource" );
×
139
}
×
140

141
bool FieldsModel::contains( const QString &name )
×
142
{
143
  for ( int i = 0; i < mFields.count(); ++i )
×
144
  {
145
    if ( mFields.at( i ).attributeName == name )
×
146
      return true;
×
147
  }
148
  return false;
×
149
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc