~ea4k/klog/trunk

« back to all changes in this revision

Viewing changes to branches/1.3/logmodel.cpp

  • Committer: jaime
  • Date: 2020-10-03 09:19:54 UTC
  • Revision ID: svn-v4:5834a56a-7829-0410-841d-b57922c102d6::782
KLogĀ 1.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "logmodel.h"
 
2
 
 
3
LogModel::LogModel(DataProxy_SQLite *dp, QObject *parent):QSqlRelationalTableModel(parent)
 
4
{
 
5
       //qDebug() << "LogModel::LogModel "  << endl;
 
6
    //logModel = new QSqlRelationalTableModel(this);
 
7
    dataProxy = dp;
 
8
    setTable("log");
 
9
    setEditStrategy(QSqlTableModel::OnFieldChange);
 
10
       //qDebug() << "LogModel::LogModel - END"  << endl;
 
11
}
 
12
 
 
13
 
 
14
void LogModel::createlogModel(const int _i)
 
15
{
 
16
/*
 
17
    Log_Id = 0,
 
18
    Log_Name = 1,
 
19
    Log_BandId = 2,
 
20
    Log_ModeId = 3,
 
21
    Log_DateId = 4,
 
22
    Log_TimeId = 5
 
23
 
 
24
setRelation ( int column, const QSqlRelation & relation )
 
25
 
 
26
    model->setTable("employee");
 
27
    model->setRelation(2, QSqlRelation("city", "id", "name"));
 
28
 
 
29
The setRelation() call specifies that column 2 in table employee
 
30
is a foreign key that maps with field id of table city, and that
 
31
the view should present the city's name field to the user.
 
32
 
 
33
*/
 
34
 
 
35
/*
 
36
This should be coherent with the logview
 
37
*/
 
38
 
 
39
      //qDebug() << "LogModel::createlogModel: log: " << QString::number(_i) << endl;
 
40
 
 
41
   //QString contestMode = dataProxy->getLogTypeOfUserLog(_i);
 
42
 
 
43
 
 
44
    QString stringQuery = QString("lognumber='%1'").arg(_i);
 
45
    QSqlQuery query(stringQuery);
 
46
    setFilter(stringQuery);
 
47
    setColumnsToDX();
 
48
 
 
49
    /*
 
50
 
 
51
   //if (contestMode.compare("DX"))
 
52
    if (contestMode == "DX")
 
53
   {
 
54
          //qDebug() << "LogModel::createlogModel: found type DX" << endl;
 
55
 
 
56
   }
 
57
   else if (contestMode == "CQ-WW-SSB")
 
58
   {
 
59
          //qDebug() << "LogModel::createlogModel: found type CQ-WW-SSB" << endl;
 
60
   }
 
61
   else
 
62
   {
 
63
       // THIS POINT SHOULD NOT BE REACHED. It means that there is a kind of contest not supported.
 
64
       // Maybe the way should be to move ALL the actions from DX here.
 
65
          //qDebug() << "LogModel::createlogModel: log type NOT found" << endl;
 
66
   }
 
67
    */
 
68
 
 
69
    select();
 
70
 
 
71
 
 
72
}
 
73
 
 
74
 void LogModel::setColumnsToDX()
 
75
 {
 
76
        //qDebug() << "LogModel::setColumnsToDX"  << endl;
 
77
 
 
78
     QSqlQuery q;
 
79
     QString stringQuery = QString("SELECT * from log LIMIT 1");
 
80
     QSqlRecord rec; // = q.record();
 
81
 
 
82
     int nameCol;
 
83
 
 
84
     bool sqlOK = q.exec(stringQuery);
 
85
     if (!sqlOK)
 
86
     {
 
87
         emit queryError(Q_FUNC_INFO, q.lastError().databaseText(), q.lastError().number(), q.lastQuery());
 
88
 
 
89
     }
 
90
     q.next();
 
91
     rec = q.record(); // Number of columns
 
92
 
 
93
    //qDebug() << "LogModel::createlogModel - columns: " << QString::number(rec.count()) << endl;
 
94
 
 
95
     nameCol = rec.indexOf("bandid");
 
96
     setRelation(nameCol, QSqlRelation("band", "id", "name"));
 
97
 
 
98
     nameCol = rec.indexOf("modeid");     
 
99
     setRelation(nameCol, QSqlRelation("mode", "id", "submode"));
 
100
 
 
101
     nameCol = rec.indexOf("id");
 
102
     setSort(nameCol, Qt::AscendingOrder);
 
103
 
 
104
     nameCol = rec.indexOf("qso_date");
 
105
     setHeaderData(nameCol, Qt::Horizontal, tr("Date"));
 
106
 
 
107
     nameCol = rec.indexOf("call");
 
108
     setHeaderData(nameCol, Qt::Horizontal,tr("QRZ"));
 
109
 
 
110
     nameCol = rec.indexOf("bandid");
 
111
     setHeaderData(nameCol, Qt::Horizontal, tr("Band"));
 
112
 
 
113
     nameCol = rec.indexOf("modeid");
 
114
     setHeaderData(nameCol, Qt::Horizontal, tr("Mode"));
 
115
 
 
116
     nameCol = rec.indexOf("rst_sent");
 
117
     setHeaderData(nameCol, Qt::Horizontal, tr("RSTtx"));
 
118
 
 
119
     nameCol = rec.indexOf("rst_rcvd");
 
120
     setHeaderData(nameCol, Qt::Horizontal, tr("RSTrx"));
 
121
 
 
122
     nameCol = rec.indexOf("comment");
 
123
     setHeaderData(nameCol, Qt::Horizontal, tr("Comment"));
 
124
 }
 
125
 
 
126