8#include "ui_kis_delayed_save_dialog.h"
10#include <QElapsedTimer>
27 const bool allowLocked = type != SaveDialog;
28 return image->
isIdle(allowLocked);
49 , m_d(new
Private(image, busyWait, type))
71 setWindowFlags(windowFlags() & ~Qt::WindowCloseButtonHint);
76 m_d->image->compositeProgressProxy()->addProxy(
ui->progressBar);
83 m_d->image->compositeProgressProxy()->removeProxy(
ui->progressBar);
89 if (
m_d->checkImageIdle()) {
94 m_d->image->requestStrokeEnd();
99 while (t.elapsed() <
m_d->busyWait) {
100 QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
102 if (
m_d->checkImageIdle()) {
107 QThread::yieldCurrentThread();
110 m_d->updateTimer.start(200);
112 m_d->updateTimer.stop();
117 if (
m_d->checkImageIdle()) {
124 m_d->image->requestStrokeCancellation();
132#include "kis_delayed_save_dialog.moc"
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
bool isIdle(bool allowLocked=false)
A dialog base class with standard buttons and predefined layouts.
void setMainWidget(QWidget *widget)
void setButtonText(ButtonCode id, const QString &text)
QSize sizeHint() const override
void setButtons(ButtonCodes buttonMask)
@ Ok
Show Ok button. (this button accept()s the dialog; result set to QDialog::Accepted)
@ User1
Show User defined button 1.
@ Cancel
Show Cancel-button. (this button reject()s the dialog; result set to QDialog::Rejected)
WdgDelayedSaveDialog(QWidget *parent=nullptr)
#define KIS_ASSERT_RECOVER_NOOP(cond)
Private(KisImageSP _image, int _busyWait, Type _type)
KisDelayedSaveDialog(KisImageSP image, Type type, int busyWait, QWidget *parent=nullptr)
void blockIfImageIsBusy()
void slotIgnoreRequested()
const QScopedPointer< Private > m_d
void slotCancelRequested()
WdgDelayedSaveDialog * ui
~KisDelayedSaveDialog() override