88 lines · 1.9 KB · C
RawDownload
////  ModelsBrowser.h//  interface/src/ui////  Created by Clement on 3/17/14.//  Copyright 2014 High Fidelity, Inc.////  Distributed under the Apache License, Version 2.0.//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html// #ifndef hifi_ModelsBrowser_h#define hifi_ModelsBrowser_h #include <QReadWriteLock>#include <QStandardItemModel>#include <QTreeView> #include <FSTReader.h> class QNetworkReply; extern const char* MODEL_TYPE_NAMES[]; class ModelHandler : public QObject {    Q_OBJECTpublic:    ModelHandler(FSTReader::ModelType modelsType, QWidget* parent = NULL);        void lockModel() { _lock.lockForRead(); }    QStandardItemModel* getModel() { return &_model; }    void unlockModel() { _lock.unlock(); }    signals:    void doneDownloading();    void updated();    public slots:    void setNameFilter(QString nameFilter);    void download();    void update();    void exit();    private slots:    void downloadFinished();    private:    bool _initiateExit;    FSTReader::ModelType _type;    QReadWriteLock _lock;    QStandardItemModel _model;    QString _nameFilter;        void queryNewFiles(QString marker = QString());    bool parseXML(QByteArray xmlFile);    bool parseHeaders(QNetworkReply* reply);};  class ModelsBrowser : public QWidget {    Q_OBJECTpublic:        ModelsBrowser(FSTReader::ModelType modelsType, QWidget* parent = NULL);    QString getSelectedFile() { return _selectedFile; }    signals:    void startDownloading();    void startUpdating();    void selected(QString filename);    public slots:    void setNameFilter(QString nameFilter);    void browse();    private slots:    void applyFilter(const QString& filter);    void resizeView();    void enableSearchBar();    private:    ModelHandler* _handler;    QLineEdit* _searchBar;    QTreeView _view;    QString _selectedFile;}; #endif // hifi_ModelsBrowser_h