#ifndef INDEXERWIDGET_H #define INDEXERWIDGET_H #include #include #include #include "taglib/fileref.h" class QTextEdit; class BeetReader; struct BeetObject; class IndexerWidget : public QWidget { Q_OBJECT public: explicit IndexerWidget(QWidget *parent = 0); public slots: void startIndexing(); void stopIndexing(); void addToLog(QString msg); private: QTextEdit *mLog; BeetReader *mReader; }; class BeetReader : public QThread { Q_OBJECT public: explicit BeetReader(); virtual void run(); void cancel(); signals: void message(const QString &msg); void processed(BeetObject &obj); private: QString toQString(TagLib::String string); QMutex mCancelMx; bool mCanceled; }; struct BeetObject { QString artist; QString album; quint16 year; QString genre; quint16 pos; QString title; QString fullpath; }; #endif // INDEXERWIDGET_H