/* * scribiu -- read notebooks and voice memos from Livescribe pens * Copyright (C) 2015 Javier S. Pedro * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include "notebookmodel.h" #include "paperreplaymodel.h" #include "smartpenmanager.h" namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); public slots: void closeNotebook(); void openNotebook(const QString &pen, const QString ¬ebook); void exportCurrentPageAsPng(const QString &file); void exportCurrentPageAsSvg(const QString &file); void exportCurrentPaperReplayAsAac(const QString &file); private slots: void handleNotebookSelected(const QModelIndex &index); void handleNotebookRowsInserted(const QModelIndex &index, int start, int end); void handleCurPageChanged(); void handlePaperReplaySelected(const QModelIndex &index); void handlePaperReplayRequested(const QString &file, qint64 time); void handlePaperReplayPlay(); void handlePaperReplayPause(); void handleMediaStateChange(Phonon::State state); void handleMediaTotalTimeChanged(qint64 time); void handleMediaTick(qint64 time); void handlePensBeingSynchronizedChanged(); void handlePenSyncComplete(const QString &penName); void handlePenSyncFailed(const QString &penName); void handleExport(); void handleAbout(); protected: void closeEvent(QCloseEvent *event); private: QString formatDuration(qint64 time); private: Ui::MainWindow *ui; NotebookModel *_notebooks; SmartpenManager *_manager; Phonon::MediaObject *_media; Phonon::AudioOutput *_mediaOutput; qint64 _pendingSeek; QString _curPenName; QString _curNotebookName; PaperReplay *_replay; PaperReplayModel *_replayModel; QLabel *_statusLabel; }; #endif // MAINWINDOW_H