#ifndef PULSEVIEW_PV_APPLICATION_HPP
#define PULSEVIEW_PV_APPLICATION_HPP
+#include <vector>
+
#include <QApplication>
+#include <QStringList>
+#include <QTranslator>
+
+#include <libsigrokcxx/libsigrokcxx.hpp>
+
+#include "globalsettings.hpp"
-class Application : public QApplication
+using std::shared_ptr;
+using std::pair;
+using std::vector;
+
+class Application : public QApplication, public pv::GlobalSettingsInterface
{
+ Q_OBJECT
+
public:
Application(int &argc, char* argv[]);
+
+ QStringList get_languages();
+ void switch_language(const QString& language);
+ void on_setting_changed(const QString &key, const QVariant &value);
+
+ void collect_version_info(shared_ptr<sigrok::Context> context);
+ void print_version_info();
+
+ vector< pair<QString, QString> > get_version_info() const;
+ vector<QString> get_fw_path_list() const;
+ vector<QString> get_pd_path_list() const;
+ vector< pair<QString, QString> > get_driver_list() const;
+ vector< pair<QString, QString> > get_input_format_list() const;
+ vector< pair<QString, QString> > get_output_format_list() const;
+ vector< pair<QString, QString> > get_pd_list() const;
+
private:
bool notify(QObject *receiver, QEvent *event);
+
+ vector< pair<QString, QString> > version_info_;
+ vector<QString> fw_path_list_;
+ vector<QString> pd_path_list_;
+ vector< pair<QString, QString> > driver_list_;
+ vector< pair<QString, QString> > input_format_list_;
+ vector< pair<QString, QString> > output_format_list_;
+ vector< pair<QString, QString> > pd_list_;
+
+ QTranslator app_translator_, qt_translator_, qtbase_translator_;
};
#endif // PULSEVIEW_PV_APPLICATION_HPP