58 lines
1.2 KiB
C++
58 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <QMainWindow>
|
|
|
|
#include "uisocket.h"
|
|
#include "data/project.h"
|
|
#include "ui/patterneditormodel.h"
|
|
|
|
class QUndoStack;
|
|
|
|
namespace Ui {
|
|
class MainWindow;
|
|
}
|
|
|
|
namespace Xybrid {
|
|
class MainWindow : public QMainWindow {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit MainWindow(QWidget *parent = nullptr);
|
|
~MainWindow() override;
|
|
|
|
private:
|
|
Ui::MainWindow* ui;
|
|
UISocket* socket;
|
|
std::shared_ptr<Data::Project> project;
|
|
std::shared_ptr<Data::Pattern> editingPattern;
|
|
|
|
QUndoStack* undoStack;
|
|
|
|
void onNewProjectLoaded();
|
|
void updatePatternLists();
|
|
bool selectPatternForEditing(Data::Pattern*);
|
|
|
|
void openGraph(const std::shared_ptr<Data::Graph>&);
|
|
|
|
void updateTitle();
|
|
|
|
public:
|
|
const std::shared_ptr<Data::Project>& getProject() const { return project; }
|
|
|
|
int patternSelection(int = -100);
|
|
int sequenceSelection(int = -100);
|
|
|
|
void playbackPosition(int seq, int row);
|
|
|
|
protected:
|
|
bool eventFilter(QObject *obj, QEvent *event) override;
|
|
|
|
public slots:
|
|
void menuFileNew();
|
|
void menuFileOpen();
|
|
void menuFileSave();
|
|
void menuFileSaveAs();
|
|
|
|
};
|
|
}
|