12 #ifndef hifi_ModelsBrowser_h
13 #define hifi_ModelsBrowser_h
15 #include <QReadWriteLock>
16 #include <QStandardItemModel>
19 #include <FSTReader.h>
23 extern const char* MODEL_TYPE_NAMES[];
25 class ModelHandler :
public QObject {
28 ModelHandler(FSTReader::ModelType modelsType, QWidget* parent = NULL);
30 void lockModel() { _lock.lockForRead(); }
31 QStandardItemModel* getModel() {
return &_model; }
32 void unlockModel() { _lock.unlock(); }
35 void doneDownloading();
39 void setNameFilter(QString nameFilter);
45 void downloadFinished();
49 FSTReader::ModelType _type;
51 QStandardItemModel _model;
54 void queryNewFiles(QString marker = QString());
55 bool parseXML(QByteArray xmlFile);
56 bool parseHeaders(QNetworkReply* reply);
60 class ModelsBrowser :
public QWidget {
64 ModelsBrowser(FSTReader::ModelType modelsType, QWidget* parent = NULL);
65 QString getSelectedFile() {
return _selectedFile; }
68 void startDownloading();
70 void selected(QString filename);
73 void setNameFilter(QString nameFilter);
77 void applyFilter(
const QString& filter);
79 void enableSearchBar();
82 ModelHandler* _handler;
83 QLineEdit* _searchBar;
85 QString _selectedFile;