parent
4cf1c980c5
commit
38d8226204
@ -55,6 +55,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi
|
|||||||
QAction *picker = new QAction("Show color picker", this);
|
QAction *picker = new QAction("Show color picker", this);
|
||||||
QAction *rec = new QAction("Record screen", this);
|
QAction *rec = new QAction("Record screen", this);
|
||||||
QAction *recoff = new QAction("Stop recording", this);
|
QAction *recoff = new QAction("Stop recording", this);
|
||||||
|
QAction *recabort = new QAction("Abort recording", this);
|
||||||
menu->addActions({ quit, shtoggle, picker });
|
menu->addActions({ quit, shtoggle, picker });
|
||||||
menu->addSeparator();
|
menu->addSeparator();
|
||||||
menu->addActions({ fullscreen, area, active });
|
menu->addActions({ fullscreen, area, active });
|
||||||
@ -62,7 +63,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi
|
|||||||
menu->addAction(area);
|
menu->addAction(area);
|
||||||
#endif
|
#endif
|
||||||
menu->addSeparator();
|
menu->addSeparator();
|
||||||
menu->addActions({ rec, recoff });
|
menu->addActions({ rec, recoff, recabort });
|
||||||
connect(quit, &QAction::triggered, this, &MainWindow::quit);
|
connect(quit, &QAction::triggered, this, &MainWindow::quit);
|
||||||
connect(shtoggle, &QAction::triggered, this, &MainWindow::toggleVisible);
|
connect(shtoggle, &QAction::triggered, this, &MainWindow::toggleVisible);
|
||||||
connect(picker, &QAction::triggered, [] { ColorPickerScene::showPicker(); });
|
connect(picker, &QAction::triggered, [] { ColorPickerScene::showPicker(); });
|
||||||
@ -73,7 +74,8 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi
|
|||||||
connect(fullscreen, &QAction::triggered, this, [] { screenshotter::fullscreenDelayed(); });
|
connect(fullscreen, &QAction::triggered, this, [] { screenshotter::fullscreenDelayed(); });
|
||||||
connect(area, &QAction::triggered, this, [] { screenshotter::areaDelayed(); });
|
connect(area, &QAction::triggered, this, [] { screenshotter::areaDelayed(); });
|
||||||
connect(rec, &QAction::triggered, this, &MainWindow::rec);
|
connect(rec, &QAction::triggered, this, &MainWindow::rec);
|
||||||
connect(recoff, &QAction::triggered, [this] { controller->end(); });
|
connect(recoff, &QAction::triggered, controller, &RecordingController::end);
|
||||||
|
connect(recabort, &QAction::triggered, controller, &RecordingController::abort);
|
||||||
connect(ui->settings, &QPushButton::clicked, this, &MainWindow::on_actionSettings_triggered);
|
connect(ui->settings, &QPushButton::clicked, this, &MainWindow::on_actionSettings_triggered);
|
||||||
|
|
||||||
tray->setContextMenu(menu);
|
tray->setContextMenu(menu);
|
||||||
@ -83,6 +85,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi
|
|||||||
addHotkey("active", [] { screenshotter::active(); });
|
addHotkey("active", [] { screenshotter::active(); });
|
||||||
addHotkey("picker", [] { ColorPickerScene::showPicker(); });
|
addHotkey("picker", [] { ColorPickerScene::showPicker(); });
|
||||||
addHotkey("recordingstop", [&] { controller->end(); });
|
addHotkey("recordingstop", [&] { controller->end(); });
|
||||||
|
addHotkey("recordingabort", [&] { controller->abort(); });
|
||||||
addHotkey("recordingstart", [&] { this->rec(); });
|
addHotkey("recordingstart", [&] { this->rec(); });
|
||||||
|
|
||||||
auto errors = UploaderSingleton::inst().errors();
|
auto errors = UploaderSingleton::inst().errors();
|
||||||
@ -163,3 +166,7 @@ void MainWindow::on_actionAbout_triggered() {
|
|||||||
void MainWindow::on_actionActive_window_triggered() {
|
void MainWindow::on_actionActive_window_triggered() {
|
||||||
screenshotter::activeDelayed();
|
screenshotter::activeDelayed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::on_actionAbort_triggered() {
|
||||||
|
controller->abort();
|
||||||
|
}
|
||||||
|
@ -56,6 +56,30 @@ bool RecordingController::end() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool RecordingController::abort() {
|
||||||
|
emit ended();
|
||||||
|
if (!isRunning()) return false;
|
||||||
|
area = QRect();
|
||||||
|
if (preview) {
|
||||||
|
preview->close();
|
||||||
|
preview->deleteLater();
|
||||||
|
}
|
||||||
|
|
||||||
|
preview = 0;
|
||||||
|
WorkerContext *c = new WorkerContext;
|
||||||
|
c->consumer = [&](QImage) {
|
||||||
|
_context->finalizer();
|
||||||
|
_context->postUploadTask();
|
||||||
|
};
|
||||||
|
c->targetFormat = QImage::Format_Alpha8;
|
||||||
|
c->pixmap = QPixmap(0, 0);
|
||||||
|
Worker::queue(c);
|
||||||
|
|
||||||
|
frame = 0;
|
||||||
|
time = 0;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void RecordingController::queue(_QueueContext arr) {
|
void RecordingController::queue(_QueueContext arr) {
|
||||||
QMutexLocker l(&lock);
|
QMutexLocker l(&lock);
|
||||||
uploadQueue.enqueue(arr);
|
uploadQueue.enqueue(arr);
|
||||||
|
@ -38,6 +38,7 @@ public slots:
|
|||||||
// Returns false if not running
|
// Returns false if not running
|
||||||
bool end();
|
bool end();
|
||||||
void queue(_QueueContext arr);
|
void queue(_QueueContext arr);
|
||||||
|
bool abort();
|
||||||
private slots:
|
private slots:
|
||||||
void timeout();
|
void timeout();
|
||||||
void startWithArea(QRect newArea);
|
void startWithArea(QRect newArea);
|
||||||
|
Loading…
Reference in New Issue
Block a user