void PlotWindow::keyPressEvent(QKeyEvent *event) { //bool ctrl = event->modifiers() & (Qt::ControlModifier); switch (event->key()) { case Qt::Key_Left: emit prevSnapshot(); break; case Qt::Key_Right: emit nextSnapshot(); break; case Qt::Key_Up: emit play(); break; case Qt::Key_Down: emit pause(); break; } }
LPMain::LPMain(QWidget *parent) : QMainWindow(parent), ui(new Ui::LPMain){ ui->setupUi(this); //load the Qt-designer UI file //Initialize the auto-refresh timer timer = new QTimer(this); timer->setSingleShot(true); timer->setInterval(60000); // 1 minute timer connect(timer, SIGNAL(timeout()), this, SLOT(updateTabs()) ); //Initialize the system watcher watcher = new QFileSystemWatcher(this); //Make sure the lpreserver log directory exists and watch it if(!QFile::exists("/var/log/lpreserver")){ qDebug() << "Creating the lpreserver log directory (/var/log/lpreserver)"; QDir dir; dir.mkpath("/var/log/lpreserver"); } watcher->addPath("/var/log/lpreserver/"); //Initialize the waitbox pointer waitBox = 0; //Initialize the classic dialog pointer classicDLG = 0; //Create the basic/advanced view options viewBasic = new QRadioButton(tr("Basic"), ui->menuView); QWidgetAction *WABasic = new QWidgetAction(this); WABasic->setDefaultWidget(viewBasic); ui->menuView->addAction(WABasic); viewAdvanced = new QRadioButton(tr("Advanced"), ui->menuView); QWidgetAction *WAAdv = new QWidgetAction(this); WAAdv->setDefaultWidget(viewAdvanced); ui->menuView->addAction(WAAdv); connect(viewBasic, SIGNAL(toggled(bool)), this, SLOT(viewChanged()) ); //Now set the default view type settings = new QSettings(QSettings::UserScope, "PC-BSD", "Life-Preserver-GUI", this); bool basicMode = settings->value("viewmode", true).toBool(); //basic by default if(basicMode){ viewBasic->setChecked(true); } //will automatically call the "viewChanged" function else{ viewAdvanced->setChecked(true); } //will automatically call the "viewChanged" function //Create the filesystem model and tie it to the treewidget fsModel = new QFileSystemModel(this); fsModel->setReadOnly(true); ui->treeView->setModel(fsModel); //Connect the UI to all the functions connect(ui->tool_refresh, SIGNAL(clicked()), this, SLOT(updatePoolList()) ); connect(ui->combo_pools, SIGNAL(currentIndexChanged(int)), this, SLOT(updateTabs()) ); connect(ui->combo_datasets, SIGNAL(currentIndexChanged(int)), this, SLOT(updateDataset()) ); connect(ui->slider_snapshots, SIGNAL(valueChanged(int)), this, SLOT(updateSnapshot()) ); connect(ui->push_prevsnap, SIGNAL(clicked()), this, SLOT(prevSnapshot()) ); connect(ui->push_nextsnap, SIGNAL(clicked()), this, SLOT(nextSnapshot()) ); connect(ui->check_hidden, SIGNAL(stateChanged(int)), this, SLOT(setFileVisibility()) ); connect(ui->push_restore, SIGNAL(clicked()), this, SLOT(restoreFiles()) ); connect(ui->push_configure, SIGNAL(clicked()), this, SLOT(openConfigGUI()) ); //Connect the Menu buttons connect(ui->menuManage_Pool, SIGNAL(triggered(QAction*)), this, SLOT(menuAddPool(QAction*)) ); connect(ui->menuUnmanage_Pool, SIGNAL(triggered(QAction*)), this, SLOT(menuRemovePool(QAction*)) ); connect(ui->action_SaveKeyToUSB, SIGNAL(triggered()), this, SLOT(menuSaveSSHKey()) ); connect(ui->actionClose_Window, SIGNAL(triggered()), this, SLOT(menuCloseWindow()) ); connect(ui->menuCompress_Home_Dir, SIGNAL(triggered(QAction*)), this, SLOT(menuCompressHomeDir(QAction*)) ); connect(ui->actionExtract_Home_Dir, SIGNAL(triggered()), this, SLOT(menuExtractHomeDir()) ); connect(ui->actionAdd_Disk, SIGNAL(triggered()), this, SLOT(menuAddDisk()) ); connect(ui->menuRemove_Disk, SIGNAL(triggered(QAction*)), this, SLOT(menuRemoveDisk(QAction*)) ); connect(ui->menuSet_Disk_Offline, SIGNAL(triggered(QAction*)), this, SLOT(menuOfflineDisk(QAction*)) ); connect(ui->menuSet_Disk_Online, SIGNAL(triggered(QAction*)), this, SLOT(menuOnlineDisk(QAction*)) ); connect(ui->action_startScrub, SIGNAL(triggered()), this, SLOT(menuStartScrub()) ); connect(ui->action_stopScrub, SIGNAL(triggered()), this, SLOT(menuStopScrub()) ); connect(ui->action_newSnapshot, SIGNAL(triggered()), this, SLOT(menuNewSnapshot()) ); connect(ui->menuDelete_Snapshot, SIGNAL(triggered(QAction*)), this, SLOT(menuRemoveSnapshot(QAction*)) ); //Update the interface QTimer::singleShot(0,this,SLOT(updatePoolList()) ); //Make sure the status tab is shown initially ui->tabWidget->setCurrentWidget(ui->tab_status); //Now connect the watcher to the update slot connect(watcher, SIGNAL(directoryChanged(QString)), this, SLOT(autoRefresh()) ); }