MainUI::MainUI() : QMainWindow(), ui(new Ui::MainUI){ ui->setupUi(this); //load the designer file mousegrabbed = false; XCB = new LXCB(); IMG = new ImageEditor(this); ui->scrollArea->setWidget(IMG); ui->tabWidget->setCurrentWidget(ui->tab_view); ppath = QDir::homePath(); setupIcons(); ui->spin_monitor->setMaximum(QApplication::desktop()->screenCount()); if(ui->spin_monitor->maximum()<2){ ui->spin_monitor->setEnabled(false); ui->radio_monitor->setEnabled(false); } //Setup the connections connect(ui->tool_save, SIGNAL(clicked()), this, SLOT(saveScreenshot()) ); connect(ui->actionSave_As, SIGNAL(triggered()), this, SLOT(saveScreenshot()) ); connect(ui->tool_quicksave, SIGNAL(clicked()), this, SLOT(quicksave()) ); connect(ui->actionQuick_Save, SIGNAL(triggered()), this, SLOT(quicksave()) ); connect(ui->actionClose, SIGNAL(triggered()), this, SLOT(closeApplication()) ); connect(ui->push_snap, SIGNAL(clicked()), this, SLOT(startScreenshot()) ); connect(ui->actionTake_Screenshot, SIGNAL(triggered()), this, SLOT(startScreenshot()) ); connect(ui->tool_crop, SIGNAL(clicked()), IMG, SLOT(cropImage()) ); connect(IMG, SIGNAL(selectionChanged(bool)), this, SLOT(imgselchanged(bool)) ); settings = new QSettings("lumina-desktop", "lumina-screenshot",this); if(settings->value("screenshot-target", "window").toString() == "window") { ui->radio_window->setChecked(true); }else{ ui->radio_all->setChecked(true); } ui->spin_delay->setValue(settings->value("screenshot-delay", 0).toInt()); ui->tool_resize->setVisible(false); //not implemented yet this->show(); IMG->setDefaultSize(ui->scrollArea->maximumViewportSize()); IMG->LoadImage( QApplication::screens().at(0)->grabWindow(QApplication::desktop()->winId()).toImage() ); //initial screenshot //ui->label_screenshot->setPixmap( cpic.scaled(ui->label_screenshot->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation) ); }
void Screenshot::delayScreenshot(double num) { QString summary = QString(tr("Deepin Screenshot will start after %1 seconds").arg(num)); QStringList actions = QStringList(); QVariantMap hints; DBusNotify* notifyDBus = new DBusNotify(this); if (num >= 2) { notifyDBus->Notify("Deepin Screenshot", 0, "deepin-screenshot", "", summary, actions, hints, 0); } QTimer* timer = new QTimer; timer->setSingleShot(true); timer->start(int(1000*num)); connect(timer, &QTimer::timeout, this, [=]{ notifyDBus->CloseNotification(0); startScreenshot(); }); }