#include "MetaDataRegistry.hpp" #include #include #include #include "Radio.hpp" #include "models/FrequencyList.hpp" #include "Audio/AudioDevice.hpp" #include "Configuration.hpp" #include "models/StationList.hpp" #include "Transceiver/Transceiver.hpp" #include "Transceiver/TransceiverFactory.hpp" #include "WFPalette.hpp" #include "models/IARURegions.hpp" #include "models/DecodeHighlightingModel.hpp" #include "widgets/DateTimeEdit.hpp" namespace { class ItemEditorFactory final : public QItemEditorFactory { public: ItemEditorFactory () : default_factory_ {QItemEditorFactory::defaultFactory ()} { } QWidget * createEditor (int user_type, QWidget * parent) const override { auto editor = QItemEditorFactory::createEditor (user_type, parent); return editor ? editor : default_factory_->createEditor (user_type, parent); } private: QItemEditorFactory const * default_factory_; }; } void register_types () { auto item_editor_factory = new ItemEditorFactory; QItemEditorFactory::setDefaultFactory (item_editor_factory); // types in Radio.hpp 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 (), new QStandardItemEditorCreator ()); // Frequency list model qRegisterMetaTypeStreamOperators ("Item_v2"); QMetaType::registerConverter (&FrequencyList_v2::Item::toString); qRegisterMetaTypeStreamOperators ("FrequencyItems_v2"); // defunct old versions qRegisterMetaTypeStreamOperators ("Item"); qRegisterMetaTypeStreamOperators ("FrequencyItems"); // Audio device qRegisterMetaType ("AudioDevice::Channel"); // Configuration qRegisterMetaTypeStreamOperators ("Configuration::DataMode"); qRegisterMetaTypeStreamOperators ("Configuration::Type2MsgGen"); // Station details qRegisterMetaType ("Station"); QMetaType::registerConverter (&StationList::Station::toString); qRegisterMetaType ("Stations"); qRegisterMetaTypeStreamOperators ("Station"); qRegisterMetaTypeStreamOperators ("Stations"); // Transceiver qRegisterMetaType ("Transceiver::TransceiverState"); // Transceiver factory qRegisterMetaTypeStreamOperators ("TransceiverFactory::DataBits"); qRegisterMetaTypeStreamOperators ("TransceiverFactory::StopBits"); qRegisterMetaTypeStreamOperators ("TransceiverFactory::Handshake"); qRegisterMetaTypeStreamOperators ("TransceiverFactory::PTTMethod"); qRegisterMetaTypeStreamOperators ("TransceiverFactory::TXAudioSource"); qRegisterMetaTypeStreamOperators ("TransceiverFactory::SplitMode"); // Waterfall palette qRegisterMetaTypeStreamOperators ("Colours"); // IARURegions qRegisterMetaTypeStreamOperators ("IARURegions::Region"); // DecodeHighlightingModel qRegisterMetaTypeStreamOperators ("HighlightInfo"); QMetaType::registerConverter (&DecodeHighlightingModel::HighlightInfo::toString); qRegisterMetaTypeStreamOperators ("HighlightItems"); }