File: MetaDataRegistry.cpp

package info (click to toggle)
js8call 2.5.1%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 24,720 kB
  • sloc: cpp: 562,655; sh: 898; python: 132; ansic: 102; makefile: 4
file content (80 lines) | stat: -rw-r--r-- 2,853 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include "MetaDataRegistry.h"

#include <QItemEditorFactory>
#include <QMetaType>
#include <QStandardItemEditorCreator>

#include "FrequencyList.h"
#include "IARURegions.h"
#include "JS8_Audio/AudioDevice.h"
#include "JS8_Transceiver/Transceiver.h"
#include "JS8_Transceiver/TransceiverFactory.h"
#include "JS8_UI/Configuration.h"
#include "Radio.h"
#include "StationList.h"
#include "WF.h"

#include "FrequencyLineEdit.h"

QItemEditorFactory *item_editor_factory() {
    static QItemEditorFactory *our_item_editor_factory = new QItemEditorFactory;
    return our_item_editor_factory;
}

void register_types() {
    // types in Radio.h are registered in their own translation unit
    // as they are needed in the wsjtx_udp shared library too

    // we still have to register the fully qualified names of enum types
    // used as signal/slot connection arguments since the new Qt 5.5
    // Q_ENUM macro only seems to register the unqualified name

    item_editor_factory()->registerEditor(
        qMetaTypeId<Radio::Frequency>(),
        new QStandardItemEditorCreator<FrequencyLineEdit>());
    // auto frequency_delta_type_id = qRegisterMetaType<Radio::FrequencyDelta>
    // ("FrequencyDelta");
    item_editor_factory()->registerEditor(
        qMetaTypeId<Radio::FrequencyDelta>(),
        new QStandardItemEditorCreator<FrequencyDeltaLineEdit>());

    // V100 Frequency list model
    qRegisterMetaType<FrequencyList_v2::Item>("Item_v2");
    qRegisterMetaType<FrequencyList_v2::FrequencyItems>("FrequencyItems_v2");

    // Audio device
    qRegisterMetaType<AudioDevice::Channel>("AudioDevice::Channel");

    // Configuration
    qRegisterMetaType<Configuration::DataMode>("Configuration::DataMode");

    // Station details
    qRegisterMetaType<StationList::Station>("Station");
    qRegisterMetaType<StationList::Stations>("Stations");

    // Transceiver
    qRegisterMetaType<Transceiver::TransceiverState>(
        "Transceiver::TransceiverState");
    qRegisterMetaType<Transceiver::MODE>("Transceiver::MODE");

    // Transceiver factory
    qRegisterMetaType<TransceiverFactory::DataBits>(
        "TransceiverFactory::DataBits");
    qRegisterMetaType<TransceiverFactory::StopBits>(
        "TransceiverFactory::StopBits");
    qRegisterMetaType<TransceiverFactory::Handshake>(
        "TransceiverFactory::Handshake");
    qRegisterMetaType<TransceiverFactory::PTTMethod>(
        "TransceiverFactory::PTTMethod");
    qRegisterMetaType<TransceiverFactory::TXAudioSource>(
        "TransceiverFactory::TXAudioSource");
    qRegisterMetaType<TransceiverFactory::SplitMode>(
        "TransceiverFactory::SplitMode");

    // Waterfall
    qRegisterMetaType<WF::Spectrum>("Spectrum");
    qRegisterMetaType<WF::Palette::Colours>("Colours");

    // IARURegions
    qRegisterMetaType<IARURegions::Region>("IARURegions::Region");
}