Revision 48:5f23d5b29aaf common/Objects.h

View differences:

common/Objects.h
580 580
    static QMutex m_mutex;
581 581
};
582 582

  
583
// Separate AudioFile and Signal, to correspond with 
583
class AudioFileTag : public QObject
584
{
585
    Q_OBJECT
586

  
587
    Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged STORED true)
588
    Q_PROPERTY(QString value READ value WRITE setValue NOTIFY valueChanged STORED true)
589

  
590
public:
591
    AudioFileTag(QObject *parent = 0) : QObject(parent) { }
592
    AudioFileTag(QString name, QString value, QObject *parent = 0) :
593
        QObject(parent), m_name(name), m_value(value) { }
594

  
595
    QString name() const { return m_name; }
596
    void setName(QString n) { m_name = n; emit nameChanged(m_name); }
597

  
598
    QString value() const { return m_value; }
599
    void setValue(QString v) { m_value = v; emit valueChanged(m_value); }
600
    
601
signals:
602
    void nameChanged(QString);
603
    void valueChanged(QString);
604

  
605
private:
606
    QString m_name;
607
    QString m_value;
608
};
609
    
610
// Separate AudioFile and Signal, to correspond with MO
584 611

  
585 612
class AudioFile : public QObject
586 613
{
......
588 615

  
589 616
    Q_PROPERTY(QString hash READ hash WRITE setHash NOTIFY hashChanged STORED true)
590 617
    Q_PROPERTY(Dataquay::Uri uri READ uri WRITE setUri NOTIFY uriChanged STORED true)
618
    Q_PROPERTY(QSet<ClassicalData::AudioFileTag *> tags READ tags WRITE setTags NOTIFY tagsChanged STORED true)
591 619

  
592 620
public:
593 621
    AudioFile(QObject *parent = 0);
594 622
    AudioFile(FileSource file, QObject *parent = 0);
623
    ~AudioFile();
595 624

  
596 625
    /// The URI is set automatically from the FileSource at construction
597 626
    Dataquay::Uri uri() const { return m_uri; }
......
601 630
    QString hash() const { return m_hash; }
602 631
    void setHash(QString hash) { m_hash = hash; emit hashChanged(hash); }
603 632

  
633
    /// I take ownership of all tags
634
    QSet<AudioFileTag *> tags() { return m_tags; }
635
    void setTags(QSet<AudioFileTag *> t);
636
    void addTag(AudioFileTag *t);
637

  
604 638
signals:
605 639
    void uriChanged(Dataquay::Uri);
606 640
    void hashChanged(QString);
641
    void tagsChanged(QSet<AudioFileTag *>);
607 642

  
608 643
private:
609 644
    Dataquay::Uri m_uri;
610 645
    QString m_hash;
646
    QSet<AudioFileTag *> m_tags;
611 647
};
612 648

  
613 649
class Signal : public QObject
......
670 706
Q_DECLARE_METATYPE(ClassicalData::Work*);
671 707
Q_DECLARE_METATYPE(ClassicalData::Movement*);
672 708
Q_DECLARE_METATYPE(ClassicalData::Document*);
709
Q_DECLARE_METATYPE(ClassicalData::AudioFileTag*);
673 710
Q_DECLARE_METATYPE(ClassicalData::AudioFile*);
674 711
Q_DECLARE_METATYPE(ClassicalData::Signal*);
675 712
Q_DECLARE_METATYPE(QSet<QString>);
......
677 714
Q_DECLARE_METATYPE(QSet<ClassicalData::Work*>);
678 715
Q_DECLARE_METATYPE(QSet<ClassicalData::Movement*>);
679 716
Q_DECLARE_METATYPE(QSet<ClassicalData::Document*>);
717
Q_DECLARE_METATYPE(QSet<ClassicalData::AudioFileTag*>);
680 718
Q_DECLARE_METATYPE(QSet<ClassicalData::AudioFile*>);
681 719
Q_DECLARE_METATYPE(QSet<ClassicalData::Signal*>);
682 720
Q_DECLARE_METATYPE(ClassicalData::Composer*);

Also available in: Unified diff