Files
@ f7670384fcb0
Branch filter:
Location: tempo-plotter/src/recordpanel.h
f7670384fcb0
3.4 KiB
text/plain
added linear index buffer to support scaled x axis
this is also an important step towards "x data" support
this is also an important step towards "x data" support
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | /*
Copyright © 2018 Hasan Yavuz Özderya
This file is part of serialplot.
serialplot 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.
serialplot 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 serialplot. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef RECORDPANEL_H
#define RECORDPANEL_H
#include <QWidget>
#include <QString>
#include <QToolBar>
#include <QAction>
#include "datarecorder.h"
#include "stream.h"
namespace Ui {
class RecordPanel;
}
class RecordPanel : public QWidget
{
Q_OBJECT
public:
explicit RecordPanel(Stream* stream, QWidget* parent = 0);
~RecordPanel();
QToolBar* toolbar();
bool recordPaused();
/// Stores settings into a `QSettings`
void saveSettings(QSettings* settings);
/// Loads settings from a `QSettings`.
void loadSettings(QSettings* settings);
signals:
void recordStarted();
void recordStopped();
void recordPausedChanged(bool enabled);
public slots:
/// Must be called when port is closed
void onPortClose();
private:
Ui::RecordPanel *ui;
QToolBar recordToolBar;
QAction recordAction;
bool overwriteSelected;
DataRecorder recorder;
Stream* _stream;
/**
* @brief Increments the file name.
*
* If file name doesn't have a number at the end of it, a number is appended
* with underscore starting from 1.
*
* @return false if user cancels
*/
bool incrementFileName(void);
/**
* @brief Used to ask user confirmation if auto generated file
* name exists.
*
* If user confirms overwrite, `selectedFile` is set to
* `fileName`. User is also given option to select file and is
* shown a file select dialog in this case.
*
* @param fileName auto generated file name.
* @return false if user cancels
*/
bool confirmOverwrite(QString fileName);
/// Returns filename in edit box. May be invalid!
QString selectedFile() const;
/// Sets the filename in edit box.
void setSelectedFile(QString f);
/**
* Tries to get a valid file name by handling user interactions and
* automatic naming (increment, timestamp etc).
*
* Returned file name can be used immediately. File name box should also be
* set to selected file name.
*
* @return empty if failure otherwise valid filename
*/
QString getSelectedFile();
/// Formats timestamp in given text
QString formatTimeStamp(QString t) const;
bool startRecording(QString fileName);
void stopRecording(void);
/// Returns separator text from ui. "\t" is converted to TAB
/// character.
QString getSeparator() const;
private slots:
/**
* @brief Opens up the file select dialog
*
* If you cancel the selection operation, currently selected file is not
* changed.
*
* @return true if file selected, false if user cancels
*/
bool selectFile();
void onRecord(bool start);
};
#endif // RECORDPANEL_H
|