LibreVNA/Software/PC_Application/modehandler.h
Kiara Navarro 2fbe6e84be
mode: move responsabilities from mode to modehandler
- Pass the following responsabilities from mode to mode handler:
   - active / deactive target mode
   - get active mode
   - create new modes

- Move back setting averaging mode when settings are
updated using getModes() method instead of handling
logic in mode handler.
2022-07-11 19:33:28 -05:00

59 lines
1.3 KiB
C++

#ifndef MODEHANDLER_H
#define MODEHANDLER_H
#include "mode.h"
#include "appwindow.h"
#include <vector>
#include <QObject>
class ModeHandler: public QObject
{
Q_OBJECT
public:
ModeHandler(AppWindow *window);
~ModeHandler() = default;
void shutdown();
int createMode(QString name, Mode::Type t);
void closeMode(int index);
void currentModeMoved(int from, int to);
void closeModes();
int getCurrentIndex();
Mode* getActiveMode();
void activate(Mode * mode);
void deactivate(Mode* mode);
Mode* getMode(int index);
std::vector<Mode*> getModes();
bool nameAllowed(const QString &name);
int findIndex(Mode *targetMode);
Mode* findFirstOfType(Mode::Type t);
signals:
void StatusBarMessageChanged(const QString &msg);
void ModeCreated(int modeIndex);
void ModeClosed(int modeIndex);
void CurrentModeChanged(int modeIndex);
public slots:
void setCurrentIndex(int modeIndex);
private:
std::vector<Mode*> modes;
int currentModeIndex;
int createMode(Mode *mode);
Mode *createNew(AppWindow *window, QString name, Mode::Type t);
AppWindow *aw;
Mode *activeMode = nullptr;
private slots:
void setStatusBarMessageChanged(const QString &msg);
};
#endif // MODEHANDLER_H