void SeafileTrayIcon::createActions() { disable_auto_sync_action_ = new QAction(tr("Disable auto sync"), this); connect(disable_auto_sync_action_, SIGNAL(triggered()), this, SLOT(disableAutoSync())); enable_auto_sync_action_ = new QAction(tr("Enable auto sync"), this); connect(enable_auto_sync_action_, SIGNAL(triggered()), this, SLOT(enableAutoSync())); view_unread_seahub_notifications_action_ = new QAction(tr("View unread notifications"), this); connect(view_unread_seahub_notifications_action_, SIGNAL(triggered()), this, SLOT(viewUnreadNotifications())); quit_action_ = new QAction(tr("&Quit"), this); connect(quit_action_, SIGNAL(triggered()), this, SLOT(quitSeafile())); toggle_main_window_action_ = new QAction(tr("Show main window"), this); connect(toggle_main_window_action_, SIGNAL(triggered()), this, SLOT(toggleMainWindow())); settings_action_ = new QAction(tr("Settings"), this); connect(settings_action_, SIGNAL(triggered()), this, SLOT(showSettingsWindow())); open_log_directory_action_ = new QAction(tr("Open &logs folder"), this); open_log_directory_action_->setStatusTip(tr("open seafile log directory")); connect(open_log_directory_action_, SIGNAL(triggered()), this, SLOT(openLogDirectory())); about_action_ = new QAction(tr("&About"), this); about_action_->setStatusTip(tr("Show the application's About box")); connect(about_action_, SIGNAL(triggered()), this, SLOT(about())); open_help_action_ = new QAction(tr("&Online help"), this); open_help_action_->setStatusTip(tr("open seafile online help")); connect(open_help_action_, SIGNAL(triggered()), this, SLOT(openHelp())); }
void SeafileTrayIcon::createActions() { disable_auto_sync_action_ = new QAction(tr("Disable auto sync"), this); connect(disable_auto_sync_action_, SIGNAL(triggered()), this, SLOT(disableAutoSync())); enable_auto_sync_action_ = new QAction(tr("Enable auto sync"), this); connect(enable_auto_sync_action_, SIGNAL(triggered()), this, SLOT(enableAutoSync())); quit_action_ = new QAction(tr("&Quit"), this); connect(quit_action_, SIGNAL(triggered()), this, SLOT(quitSeafile())); toggle_main_window_action_ = new QAction(tr("Show main window"), this); connect(toggle_main_window_action_, SIGNAL(triggered()), this, SLOT(toggleMainWindow())); settings_action_ = new QAction(tr("Settings"), this); connect(settings_action_, SIGNAL(triggered()), this, SLOT(showSettingsWindow())); about_action_ = new QAction(tr("&About"), this); about_action_->setStatusTip(tr("Show the application's About box")); connect(about_action_, SIGNAL(triggered()), this, SLOT(about())); open_help_action_ = new QAction(tr("&Online help"), this); open_help_action_->setStatusTip(tr("open seafile online help")); connect(open_help_action_, SIGNAL(triggered()), this, SLOT(openHelp())); }
ConfigVehicleTypeWidget::ConfigVehicleTypeWidget(QWidget *parent) : ConfigTaskWidget(parent) { m_aircraft = new Ui_AircraftWidget(); m_aircraft->setupUi(this); ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); Core::Internal::GeneralSettings *settings = pm->getObject<Core::Internal::GeneralSettings>(); if (!settings->useExpertMode()) { m_aircraft->saveAircraftToRAM->setVisible(false); } ConfigGadgetFactory *configGadgetFactory = pm->getObject<ConfigGadgetFactory>(); connect(m_aircraft->vehicleSetupWizardButton, SIGNAL(clicked()), configGadgetFactory, SIGNAL(onOpenVehicleConfigurationWizard())); SystemSettings *syssettings = SystemSettings::GetInstance(getObjectManager()); Q_ASSERT(syssettings); m_aircraft->nameEdit->setMaxLength(syssettings->VEHICLENAME_NUMELEM); addApplySaveButtons(m_aircraft->saveAircraftToRAM, m_aircraft->saveAircraftToSD); addUAVObject("SystemSettings"); addUAVObject("MixerSettings"); addUAVObject("ActuatorSettings"); m_ffTuningInProgress = false; m_ffTuningPhase = false; // The order of the tabs is important since they correspond with the AirframCategory enum m_aircraft->aircraftType->addTab(tr("Multirotor")); m_aircraft->aircraftType->addTab(tr("Fixed Wing")); m_aircraft->aircraftType->addTab(tr("Helicopter")); m_aircraft->aircraftType->addTab(tr("Ground")); m_aircraft->aircraftType->addTab(tr("Custom")); // Connect aircraft type selection dropbox to callback function connect(m_aircraft->aircraftType, SIGNAL(currentChanged(int)), this, SLOT(switchAirframeType(int))); // Connect the three feed forward test checkboxes connect(m_aircraft->ffTestBox1, SIGNAL(clicked(bool)), this, SLOT(enableFFTest())); connect(m_aircraft->ffTestBox2, SIGNAL(clicked(bool)), this, SLOT(enableFFTest())); connect(m_aircraft->ffTestBox3, SIGNAL(clicked(bool)), this, SLOT(enableFFTest())); // Connect the help pushbutton connect(m_aircraft->airframeHelp, SIGNAL(clicked()), this, SLOT(openHelp())); refreshWidgetsValues(); // register FF widgets for dirty state management addWidget(m_aircraft->feedForwardSlider); addWidget(m_aircraft->accelTime); addWidget(m_aircraft->decelTime); addWidget(m_aircraft->maxAccelSlider); addWidget(m_aircraft->ffTestBox1); addWidget(m_aircraft->ffTestBox2); addWidget(m_aircraft->ffTestBox3); addWidget(m_aircraft->nameEdit); disableMouseWheelEvents(); updateEnableControls(); }
ConfigCCAttitudeWidget::ConfigCCAttitudeWidget(QWidget *parent) : ConfigTaskWidget(parent), ui(new Ui_ccattitude) { ui->setupUi(this); // Initialization of the Paper plane widget ui->sixPointHelp->setScene(new QGraphicsScene(this)); paperplane = new QGraphicsSvgItem(); paperplane->setSharedRenderer(new QSvgRenderer()); paperplane->renderer()->load(QString(":/configgadget/images/paper-plane.svg")); paperplane->setElementId("plane-horizontal"); ui->sixPointHelp->scene()->addItem(paperplane); ui->sixPointHelp->setSceneRect(paperplane->boundingRect()); //dynamic widgets don't recieve the connected signal forceConnectedState(); ExtensionSystem::PluginManager *pm=ExtensionSystem::PluginManager::instance(); Core::Internal::GeneralSettings * settings=pm->getObject<Core::Internal::GeneralSettings>(); if(!settings->useExpertMode()) ui->applyButton->setVisible(false); addApplySaveButtons(ui->applyButton,ui->saveButton); addUAVObject("AttitudeSettings"); addUAVObject("InertialSensorSettings"); addUAVObject("HwCopterControl"); // Load UAVObjects to widget relations from UI file // using objrelation dynamic property autoLoadWidgets(); addUAVObjectToWidgetRelation("AttitudeSettings","ZeroDuringArming",ui->zeroGyroBiasOnArming); // Connect signals connect(ui->ccAttitudeHelp, SIGNAL(clicked()), this, SLOT(openHelp())); connect(ui->sixPointStart, SIGNAL(clicked()), &calibration, SLOT(doStartSixPoint())); connect(ui->sixPointSave, SIGNAL(clicked()), &calibration, SLOT(doSaveSixPointPosition())); connect(ui->levelButton ,SIGNAL(clicked()), &calibration, SLOT(doStartLeveling())); connect(ui->sixPointCancel, SIGNAL(clicked()), &calibration ,SLOT(doCancelSixPoint())); // Let calibration update the UI connect(&calibration, SIGNAL(levelingProgressChanged(int)), ui->levelProgress, SLOT(setValue(int))); connect(&calibration, SIGNAL(sixPointProgressChanged(int)), ui->sixPointProgress, SLOT(setValue(int))); connect(&calibration, SIGNAL(showSixPointMessage(QString)), ui->sixPointCalibInstructions, SLOT(setText(QString))); connect(&calibration, SIGNAL(updatePlane(int)), this, SLOT(displayPlane(int))); // Let the calibration gadget control some control enables connect(&calibration, SIGNAL(toggleSavePosition(bool)), ui->sixPointSave, SLOT(setEnabled(bool))); connect(&calibration, SIGNAL(toggleControls(bool)), ui->sixPointCancel, SLOT(setDisabled(bool))); connect(&calibration, SIGNAL(toggleControls(bool)), ui->sixPointStart, SLOT(setEnabled(bool))); connect(&calibration, SIGNAL(toggleControls(bool)), ui->levelButton, SLOT(setEnabled(bool))); addWidget(ui->levelButton); refreshWidgetsValues(); }
ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(parent),wasItMe(false) { m_config = new Ui_OutputWidget(); m_config->setupUi(this); ExtensionSystem::PluginManager *pm=ExtensionSystem::PluginManager::instance(); Core::Internal::GeneralSettings * settings=pm->getObject<Core::Internal::GeneralSettings>(); if(!settings->useExpertMode()) m_config->saveRCOutputToRAM->setVisible(false); UAVSettingsImportExportFactory * importexportplugin = pm->getObject<UAVSettingsImportExportFactory>(); connect(importexportplugin,SIGNAL(importAboutToBegin()),this,SLOT(stopTests())); // NOTE: we have channel indices from 0 to 9, but the convention for OP is Channel 1 to Channel 10. // Register for ActuatorSettings changes: for (unsigned int i = 0; i < ActuatorCommand::CHANNEL_NUMELEM; i++) { OutputChannelForm *outputForm = new OutputChannelForm(i, this, i==0); m_config->channelLayout->addWidget(outputForm); connect(m_config->channelOutTest, SIGNAL(toggled(bool)), outputForm, SLOT(enableChannelTest(bool))); connect(outputForm, SIGNAL(channelChanged(int,int)), this, SLOT(sendChannelTest(int,int))); connect(outputForm, SIGNAL(formChanged()), this, SLOT(do_SetDirty())); } connect(m_config->channelOutTest, SIGNAL(toggled(bool)), this, SLOT(runChannelTests(bool))); // Configure the task widget // Connect the help button connect(m_config->outputHelp, SIGNAL(clicked()), this, SLOT(openHelp())); addApplySaveButtons(m_config->saveRCOutputToRAM,m_config->saveRCOutputToSD); // Track the ActuatorSettings object addUAVObject("ActuatorSettings"); // Associate the buttons with their UAVO fields addWidget(m_config->cb_outputRate4); addWidget(m_config->cb_outputRate3); addWidget(m_config->cb_outputRate2); addWidget(m_config->cb_outputRate1); addWidget(m_config->spinningArmed); disconnect(this, SLOT(refreshWidgetsValues(UAVObject*))); UAVObjectManager *objManager = pm->getObject<UAVObjectManager>(); UAVObject* obj = objManager->getObject(QString("ActuatorCommand")); if(UAVObject::GetGcsTelemetryUpdateMode(obj->getMetadata()) == UAVObject::UPDATEMODE_ONCHANGE) this->setEnabled(false); connect(obj,SIGNAL(objectUpdated(UAVObject*)),this,SLOT(disableIfNotMe(UAVObject*))); connect(SystemSettings::GetInstance(objManager), SIGNAL(objectUpdated(UAVObject*)),this,SLOT(assignOutputChannels(UAVObject*))); refreshWidgetsValues(); }
ConfigVehicleTypeWidget::ConfigVehicleTypeWidget(QWidget *parent) : ConfigTaskWidget(parent) { m_aircraft = new Ui_AircraftWidget(); m_aircraft->setupUi(this); ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); Core::Internal::GeneralSettings *settings = pm->getObject<Core::Internal::GeneralSettings>(); if (!settings->useExpertMode()) { m_aircraft->saveAircraftToRAM->setVisible(false); } addApplySaveButtons(m_aircraft->saveAircraftToRAM, m_aircraft->saveAircraftToSD); addUAVObject("SystemSettings"); addUAVObject("MixerSettings"); addUAVObject("ActuatorSettings"); ffTuningInProgress = false; ffTuningPhase = false; QStringList airframeTypes; airframeTypes << "Fixed Wing" << "Multirotor" << "Helicopter" << "Ground" << "Custom"; m_aircraft->aircraftType->addItems(airframeTypes); // Set default vehicle to MultiRotor // m_aircraft->aircraftType->setCurrentIndex(3); // Connect aircraft type selection dropbox to callback function connect(m_aircraft->aircraftType, SIGNAL(currentIndexChanged(int)), this, SLOT(switchAirframeType(int))); // Connect the three feed forward test checkboxes connect(m_aircraft->ffTestBox1, SIGNAL(clicked(bool)), this, SLOT(enableFFTest())); connect(m_aircraft->ffTestBox2, SIGNAL(clicked(bool)), this, SLOT(enableFFTest())); connect(m_aircraft->ffTestBox3, SIGNAL(clicked(bool)), this, SLOT(enableFFTest())); // Connect the help pushbutton connect(m_aircraft->airframeHelp, SIGNAL(clicked()), this, SLOT(openHelp())); refreshWidgetsValues(); // register widgets for dirty state management addWidget(m_aircraft->aircraftType); // register FF widgets for dirty state management addWidget(m_aircraft->feedForwardSlider); addWidget(m_aircraft->accelTime); addWidget(m_aircraft->decelTime); addWidget(m_aircraft->maxAccelSlider); addWidget(m_aircraft->ffTestBox1); addWidget(m_aircraft->ffTestBox2); addWidget(m_aircraft->ffTestBox3); disableMouseWheelEvents(); updateEnableControls(); }
ConfigCCHWWidget::ConfigCCHWWidget(QWidget *parent) : ConfigTaskWidget(parent) { m_telemetry = new Ui_CC_HW_Widget(); m_telemetry->setupUi(this); ExtensionSystem::PluginManager *pm=ExtensionSystem::PluginManager::instance(); Core::Internal::GeneralSettings * settings=pm->getObject<Core::Internal::GeneralSettings>(); if(!settings->useExpertMode()) m_telemetry->saveTelemetryToRAM->setVisible(false); UAVObjectUtilManager* utilMngr = pm->getObject<UAVObjectUtilManager>(); int id = utilMngr->getBoardModel(); switch (id) { case 0x0101: m_telemetry->label_2->setPixmap(QPixmap(":/uploader/images/deviceID-0101.svg")); break; case 0x0301: m_telemetry->label_2->setPixmap(QPixmap(":/uploader/images/deviceID-0301.svg")); break; case 0x0401: m_telemetry->label_2->setPixmap(QPixmap(":/configgadget/images/coptercontrol.svg")); break; case 0x0402: m_telemetry->label_2->setPixmap(QPixmap(":/configgadget/images/coptercontrol.svg")); break; case 0x0201: m_telemetry->label_2->setPixmap(QPixmap(":/uploader/images/deviceID-0201.svg")); break; default: m_telemetry->label_2->setPixmap(QPixmap(":/configgadget/images/coptercontrol.svg")); break; } addApplySaveButtons(m_telemetry->saveTelemetryToRAM,m_telemetry->saveTelemetryToSD); addUAVObjectToWidgetRelation("HwCopterControl","FlexiPort",m_telemetry->cbFlexi); addUAVObjectToWidgetRelation("HwCopterControl","MainPort",m_telemetry->cbTele); addUAVObjectToWidgetRelation("HwCopterControl","RcvrPort",m_telemetry->cbRcvr); addUAVObjectToWidgetRelation("HwCopterControl","USB_HIDPort",m_telemetry->cbUsbHid); addUAVObjectToWidgetRelation("HwCopterControl","USB_VCPPort",m_telemetry->cbUsbVcp); addUAVObjectToWidgetRelation("ModuleSettings","TelemetrySpeed",m_telemetry->telemetrySpeed); addUAVObjectToWidgetRelation("ModuleSettings","GPSSpeed",m_telemetry->gpsSpeed); addUAVObjectToWidgetRelation("ModuleSettings","ComUsbBridgeSpeed",m_telemetry->comUsbBridgeSpeed); // Load UAVObjects to widget relations from UI file // using objrelation dynamic property autoLoadWidgets(); connect(m_telemetry->cchwHelp,SIGNAL(clicked()),this,SLOT(openHelp())); enableControls(false); populateWidgets(); refreshWidgetsValues(); forceConnectedState(); }
PreferencesPanel::PreferencesPanel(boost::shared_ptr<Settings> settings, Gui *parent) : QWidget(parent) , _gui(parent) , _settings(settings) , _changedKnobs() , _closeIsOK(false) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); setWindowFlags(Qt::Window); setWindowTitle( tr("Preferences") ); _mainLayout = new QVBoxLayout(this); _mainLayout->setContentsMargins(0, 0, 0, 0); _mainLayout->setSpacing(0); _panel = new DockablePanel(_gui, _settings.get(), _mainLayout, DockablePanel::eHeaderModeNoHeader, true, boost::shared_ptr<QUndoStack>(), QString(), QString(), false, QString(), this); _panel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); _mainLayout->addWidget(_panel); _buttonBox = new QDialogButtonBox(Qt::Horizontal); _restoreDefaultsB = new Button( tr("Restore defaults") ); _restoreDefaultsB->setToolTip( GuiUtils::convertFromPlainText(tr("Restore default values for all preferences."), Qt::WhiteSpaceNormal) ); _prefsHelp = new Button( tr("Help") ); _prefsHelp->setToolTip( tr("Show help for preference") ); _cancelB = new Button( tr("Discard") ); _cancelB->setToolTip( GuiUtils::convertFromPlainText(tr("Cancel changes that were not saved and close the window."), Qt::WhiteSpaceNormal) ); _okB = new Button( tr("Save") ); _okB->setToolTip( GuiUtils::convertFromPlainText(tr("Save changes on disk and close the window."), Qt::WhiteSpaceNormal) ); _buttonBox->addButton(_restoreDefaultsB, QDialogButtonBox::ResetRole); _buttonBox->addButton(_prefsHelp, QDialogButtonBox::ResetRole); _buttonBox->addButton(_cancelB, QDialogButtonBox::RejectRole); _buttonBox->addButton(_okB, QDialogButtonBox::AcceptRole); // _mainLayout->addStretch(); _mainLayout->addWidget(_buttonBox); QObject::connect( _restoreDefaultsB, SIGNAL(clicked()), this, SLOT(restoreDefaults()) ); QObject::connect( _prefsHelp, SIGNAL(clicked()), this, SLOT(openHelp()) ); QObject::connect( _buttonBox, SIGNAL(rejected()), this, SLOT(cancelChanges()) ); QObject::connect( _buttonBox, SIGNAL(accepted()), this, SLOT(saveChangesAndClose()) ); QObject::connect( _settings.get(), SIGNAL(settingChanged(KnobI*)), this, SLOT(onSettingChanged(KnobI*)) ); _panel->initializeKnobs(); resize( TO_DPIX(900), TO_DPIY(600) ); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); m_idRecord = -1; connect(ui->action_File_Create, SIGNAL(triggered()), this, SLOT(createKhollo())); connect(ui->action_File_Open, SIGNAL(triggered()), this, SLOT(openKhollo())); connect(ui->action_File_Settings, SIGNAL(triggered()), this, SLOT(openSettings())); connect(ui->action_File_Quit, SIGNAL(triggered()), this, SLOT(close())); connect(ui->action_DB_Students, SIGNAL(triggered()), this, SLOT(openStudentsManager())); connect(ui->action_DB_Groups, SIGNAL(triggered()), this, SLOT(openGroupsManager())); connect(ui->action_DB_Subjects, SIGNAL(triggered()), this, SLOT(openSubjectsManager())); connect(ui->action_DB_Kholleurs, SIGNAL(triggered()), this, SLOT(openKholleursManager())); connect(ui->action_Schedule_Students_Groups, SIGNAL(triggered()), this, SLOT(openUsersGroupsManager())); connect(ui->action_Schedule_Timetable, SIGNAL(triggered()), this, SLOT(openCoursesManager())); connect(ui->action_Schedule_Swapping_Groups, SIGNAL(triggered()), this, SLOT(openGroupsSwappingsManager())); connect(ui->action_Schedule_Tribes, SIGNAL(triggered()), this, SLOT(openTribesManager())); connect(ui->action_Schedule_Kholles, SIGNAL(triggered()), this, SLOT(openTimeslotsManager())); connect(ui->action_Schedule_Events, SIGNAL(triggered()), this, SLOT(openEventsManager())); connect(ui->action_Kholles_Interface, SIGNAL(triggered()), this, SLOT(openInterface())); connect(ui->action_Kholles_Generate, SIGNAL(triggered()), this, SLOT(openKholloscope())); connect(ui->action_Kholles_Historic, SIGNAL(triggered()), this, SLOT(openReview())); connect(ui->action_Kholles_LastChanges, SIGNAL(triggered()), this, SLOT(openLastChanges())); connect(ui->action_Help, SIGNAL(triggered()), this, SLOT(openHelp())); connect(ui->action_AboutIt, SIGNAL(triggered()), this, SLOT(openAboutIt())); connect(this, SIGNAL(triggerInterface(QDate,int)), this, SLOT(openInterfaceWithDate(QDate,int))); m_shortcutNotepad = Notepad::shortcut(); this->addAction(m_shortcutNotepad); updateWindow(); #ifndef Q_OS_MAC // Ouvrir directement un fichier sur OS autre que Mac args = QCoreApplication::arguments(); if(args.count() > 1) { QString suffix = QFileInfo(args[1]).suffix().toUpper(); // Check the file suffix if(suffix == "KSCOPE") { openKhollo(args[1]); // Try to open the file } else { QMessageBox::critical(this, "Fichier non pris en charge", "Erreur : Fichier " + QFileInfo(args[1]).suffix().toUpper() + " non pris en charge."); } } #endif }
ConfigRevoNanoHWWidget::ConfigRevoNanoHWWidget(QWidget *parent) : ConfigTaskWidget(parent), m_refreshing(true) { m_ui = new Ui_RevoNanoHWWidget(); m_ui->setupUi(this); ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); Core::Internal::GeneralSettings *settings = pm->getObject<Core::Internal::GeneralSettings>(); if (!settings->useExpertMode()) { m_ui->saveTelemetryToRAM->setEnabled(false); m_ui->saveTelemetryToRAM->setVisible(false); } addApplySaveButtons(m_ui->saveTelemetryToRAM, m_ui->saveTelemetryToSD); forceConnectedState(); addWidgetBinding("HwSettings", "RM_FlexiPort", m_ui->cbFlexi); addWidgetBinding("HwSettings", "RM_MainPort", m_ui->cbMain); addWidgetBinding("HwSettings", "RM_RcvrPort", m_ui->cbRcvr, 0, 1, true); addWidgetBinding("HwSettings", "USB_HIDPort", m_ui->cbUSBHIDFunction); addWidgetBinding("HwSettings", "USB_VCPPort", m_ui->cbUSBVCPFunction); addWidgetBinding("HwSettings", "ComUsbBridgeSpeed", m_ui->cbUSBVCPSpeed); addWidgetBinding("HwSettings", "TelemetrySpeed", m_ui->cbFlexiTelemSpeed); addWidgetBinding("HwSettings", "GPSSpeed", m_ui->cbFlexiGPSSpeed); addWidgetBinding("HwSettings", "ComUsbBridgeSpeed", m_ui->cbFlexiComSpeed); addWidgetBinding("HwSettings", "TelemetrySpeed", m_ui->cbMainTelemSpeed); addWidgetBinding("HwSettings", "GPSSpeed", m_ui->cbMainGPSSpeed); addWidgetBinding("HwSettings", "ComUsbBridgeSpeed", m_ui->cbMainComSpeed); addWidgetBinding("HwSettings", "TelemetrySpeed", m_ui->cbRcvrTelemSpeed); addWidgetBinding("HwSettings", "ComUsbBridgeSpeed", m_ui->cbRcvrComSpeed); // Add Gps protocol configuration addWidgetBinding("GPSSettings", "DataProtocol", m_ui->cbMainGPSProtocol); addWidgetBinding("GPSSettings", "DataProtocol", m_ui->cbFlexiGPSProtocol); connect(m_ui->cchwHelp, SIGNAL(clicked()), this, SLOT(openHelp())); setupCustomCombos(); enableControls(true); populateWidgets(); refreshWidgetsValues(); setDirty(false); m_refreshing = false; }
UploaderGadgetWidget::UploaderGadgetWidget(QWidget *parent) : QWidget(parent) { m_config = new Ui_UploaderWidget(); m_config->setupUi(this); m_currentIAPStep = IAP_STATE_READY; m_resetOnly = false; m_dfu = NULL; m_autoUpdateClosing = false; // Listen to autopilot connection events ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); TelemetryManager *telMngr = pm->getObject<TelemetryManager>(); connect(telMngr, SIGNAL(connected()), this, SLOT(onAutopilotConnect())); connect(telMngr, SIGNAL(disconnected()), this, SLOT(onAutopilotDisconnect())); Core::ConnectionManager *cm = Core::ICore::instance()->connectionManager(); connect(cm, SIGNAL(deviceConnected(QIODevice *)), this, SLOT(onPhysicalHWConnect())); connect(m_config->haltButton, SIGNAL(clicked()), this, SLOT(systemHalt())); connect(m_config->resetButton, SIGNAL(clicked()), this, SLOT(systemReset())); connect(m_config->bootButton, SIGNAL(clicked()), this, SLOT(systemBoot())); connect(m_config->safeBootButton, SIGNAL(clicked()), this, SLOT(systemSafeBoot())); connect(m_config->eraseBootButton, SIGNAL(clicked()), this, SLOT(systemEraseBoot())); connect(m_config->rescueButton, SIGNAL(clicked()), this, SLOT(systemRescue())); getSerialPorts(); connect(m_config->autoUpdateButton, SIGNAL(clicked()), this, SLOT(startAutoUpdate())); connect(m_config->autoUpdateEraseButton, SIGNAL(clicked()), this, SLOT(startAutoUpdateErase())); connect(m_config->autoUpdateOkButton, SIGNAL(clicked()), this, SLOT(closeAutoUpdate())); m_config->autoUpdateButton->setEnabled(autoUpdateCapable()); m_config->autoUpdateEraseButton->setEnabled(autoUpdateCapable()); m_config->autoUpdateGroupBox->setVisible(false); m_config->refreshPorts->setIcon(QIcon(":uploader/images/view-refresh.svg")); bootButtonsSetEnable(false); connect(m_config->refreshPorts, SIGNAL(clicked()), this, SLOT(getSerialPorts())); connect(m_config->pbHelp, SIGNAL(clicked()), this, SLOT(openHelp())); // And check whether by any chance we are not already connected if (telMngr->isConnected()) { onAutopilotConnect(); } }
void SeafileTrayIcon::createActions() { disable_auto_sync_action_ = new QAction(tr("Disable auto sync"), this); connect(disable_auto_sync_action_, SIGNAL(triggered()), this, SLOT(disableAutoSync())); enable_auto_sync_action_ = new QAction(tr("Enable auto sync"), this); connect(enable_auto_sync_action_, SIGNAL(triggered()), this, SLOT(enableAutoSync())); quit_action_ = new QAction(tr("&Quit"), this); connect(quit_action_, SIGNAL(triggered()), this, SLOT(quitSeafile())); show_main_window_action_ = new QAction(tr("Show main window"), this); connect(show_main_window_action_, SIGNAL(triggered()), this, SLOT(showMainWindow())); settings_action_ = new QAction(tr("Settings"), this); connect(settings_action_, SIGNAL(triggered()), this, SLOT(showSettingsWindow())); open_seafile_folder_action_ = new QAction(tr("Open %1 &folder").arg(getBrand()), this); open_seafile_folder_action_->setStatusTip(tr("open %1 folder").arg(getBrand())); connect(open_seafile_folder_action_, SIGNAL(triggered()), this, SLOT(openSeafileFolder())); #if defined(Q_OS_WIN32) shellext_fix_action_ = new QAction(tr("Repair explorer extension"), this); connect(shellext_fix_action_, SIGNAL(triggered()), this, SLOT(shellExtFix())); #endif open_log_directory_action_ = new QAction(tr("Open &logs folder"), this); open_log_directory_action_->setStatusTip(tr("open %1 log folder").arg(getBrand())); connect(open_log_directory_action_, SIGNAL(triggered()), this, SLOT(openLogDirectory())); upload_log_directory_action_ = new QAction(tr("Upload log files"), this); upload_log_directory_action_->setStatusTip(tr("upload %1 log files").arg(getBrand())); connect(upload_log_directory_action_, SIGNAL(triggered()), this, SLOT(uploadLogDirectory())); show_sync_errors_action_ = new QAction(tr("Show file sync errors"), this); show_sync_errors_action_->setStatusTip(tr("Show file sync errors")); connect(show_sync_errors_action_, SIGNAL(triggered()), this, SLOT(showSyncErrorsDialog())); about_action_ = new QAction(tr("&About"), this); about_action_->setStatusTip(tr("Show the application's About box")); connect(about_action_, SIGNAL(triggered()), this, SLOT(about())); open_help_action_ = new QAction(tr("&Online help"), this); open_help_action_->setStatusTip(tr("open %1 online help").arg(getBrand())); connect(open_help_action_, SIGNAL(triggered()), this, SLOT(openHelp())); }
UploaderGadgetWidget::UploaderGadgetWidget(QWidget *parent) : QWidget(parent) { m_config = new Ui_UploaderWidget(); m_config->setupUi(this); currentStep = IAP_STATE_READY; resetOnly=false; dfu = NULL; m_timer = 0; m_progress = 0; msg=new QErrorMessage(this); // Listen to autopilot connection events ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); TelemetryManager* telMngr = pm->getObject<TelemetryManager>(); connect(telMngr, SIGNAL(connected()), this, SLOT(onAutopilotConnect())); connect(telMngr, SIGNAL(connected()), this, SLOT(versionMatchCheck())); connect(telMngr, SIGNAL(disconnected()), this, SLOT(onAutopilotDisconnect())); connect(m_config->haltButton, SIGNAL(clicked()), this, SLOT(goToBootloader())); connect(m_config->resetButton, SIGNAL(clicked()), this, SLOT(systemReset())); connect(m_config->bootButton, SIGNAL(clicked()), this, SLOT(systemBoot())); connect(m_config->safeBootButton, SIGNAL(clicked()), this, SLOT(systemSafeBoot())); connect(m_config->rescueButton, SIGNAL(clicked()), this, SLOT(systemRescue())); Core::ConnectionManager *cm = Core::ICore::instance()->connectionManager(); connect(cm,SIGNAL(deviceConnected(QIODevice*)),this,SLOT(onPhisicalHWConnect())); getSerialPorts(); QIcon rbi; rbi.addFile(QString(":uploader/images/view-refresh.svg")); m_config->refreshPorts->setIcon(rbi); connect(m_config->refreshPorts, SIGNAL(clicked()), this, SLOT(getSerialPorts())); connect(m_config->pbHelp,SIGNAL(clicked()),this,SLOT(openHelp())); // And check whether by any chance we are not already connected if (telMngr->isConnected()) { onAutopilotConnect(); versionMatchCheck(); } }
ImportSummaryDialog::ImportSummaryDialog(QWidget *parent) : QDialog(parent), ui(new Ui::ImportSummaryDialog) { ui->setupUi(this); setWindowTitle(tr("Import Summary")); ui->importSummaryList->setColumnCount(3); ui->importSummaryList->setRowCount(0); QStringList header; header.append("Save"); header.append("Name"); header.append("Status"); ui->importSummaryList->setHorizontalHeaderLabels(header); ui->progressBar->setValue(0); connect(ui->closeButton, SIGNAL(clicked()), this, SLOT(close())); connect(ui->saveToFlash, SIGNAL(clicked()), this, SLOT(doTheSaving())); // Connect the help button connect(ui->helpButton, SIGNAL(clicked()), this, SLOT(openHelp())); }
ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(parent) { m_ui = new Ui_OutputWidget(); m_ui->setupUi(this); m_ui->gvFrame->setVisible(false); ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); Core::Internal::GeneralSettings *settings = pm->getObject<Core::Internal::GeneralSettings>(); if (!settings->useExpertMode()) { m_ui->saveRCOutputToRAM->setVisible(false); } UAVSettingsImportExportFactory *importexportplugin = pm->getObject<UAVSettingsImportExportFactory>(); connect(importexportplugin, SIGNAL(importAboutToBegin()), this, SLOT(stopTests())); connect(m_ui->channelOutTest, SIGNAL(clicked(bool)), this, SLOT(runChannelTests(bool))); // Configure the task widget // Connect the help button connect(m_ui->outputHelp, SIGNAL(clicked()), this, SLOT(openHelp())); addApplySaveButtons(m_ui->saveRCOutputToRAM, m_ui->saveRCOutputToSD); // Track the ActuatorSettings object addUAVObject("ActuatorSettings"); // NOTE: we have channel indices from 0 to 9, but the convention for OP is Channel 1 to Channel 10. // Register for ActuatorSettings changes: for (unsigned int i = 0; i < ActuatorCommand::CHANNEL_NUMELEM; i++) { OutputChannelForm *form = new OutputChannelForm(i, this); form->moveTo(*(m_ui->channelLayout)); connect(m_ui->channelOutTest, SIGNAL(toggled(bool)), form, SLOT(enableChannelTest(bool))); connect(form, SIGNAL(channelChanged(int, int)), this, SLOT(sendChannelTest(int, int))); addWidget(form->ui.actuatorMin); addWidget(form->ui.actuatorNeutral); addWidget(form->ui.actuatorMax); addWidget(form->ui.actuatorRev); addWidget(form->ui.actuatorLink); } // Associate the buttons with their UAVO fields addWidget(m_ui->spinningArmed); MixerSettings *mixer = MixerSettings::GetInstance(getObjectManager()); Q_ASSERT(mixer); m_banks << OutputBankControls(mixer, m_ui->chBank1, QColor("#C6ECAE"), m_ui->cb_outputRate1, m_ui->cb_outputMode1); m_banks << OutputBankControls(mixer, m_ui->chBank2, QColor("#91E5D3"), m_ui->cb_outputRate2, m_ui->cb_outputMode2); m_banks << OutputBankControls(mixer, m_ui->chBank3, QColor("#FCEC52"), m_ui->cb_outputRate3, m_ui->cb_outputMode3); m_banks << OutputBankControls(mixer, m_ui->chBank4, QColor("#C3A8FF"), m_ui->cb_outputRate4, m_ui->cb_outputMode4); m_banks << OutputBankControls(mixer, m_ui->chBank5, QColor("#F7F7F2"), m_ui->cb_outputRate5, m_ui->cb_outputMode5); m_banks << OutputBankControls(mixer, m_ui->chBank6, QColor("#FF9F51"), m_ui->cb_outputRate6, m_ui->cb_outputMode6); QList<int> rates; rates << 50 << 60 << 125 << 165 << 270 << 330 << 400 << 490; int i = 0; foreach(OutputBankControls controls, m_banks) { addWidget(controls.rateCombo()); controls.rateCombo()->addItem(tr("-"), QVariant(0)); controls.rateCombo()->model()->setData(controls.rateCombo()->model()->index(0, 0), QVariant(0), Qt::UserRole - 1); foreach(int rate, rates) { controls.rateCombo()->addItem(tr("%1 Hz").arg(rate), rate); }
ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(parent) { m_config = new Ui_OutputWidget(); m_config->setupUi(this); ExtensionSystem::PluginManager *pm=ExtensionSystem::PluginManager::instance(); Core::Internal::GeneralSettings * settings=pm->getObject<Core::Internal::GeneralSettings>(); if(!settings->useExpertMode()) m_config->saveRCOutputToRAM->setVisible(false); /* There's lots of situations where it's unsafe to run tests. * Import/export: */ UAVSettingsImportExportFactory * importexportplugin = pm->getObject<UAVSettingsImportExportFactory>(); connect(importexportplugin,SIGNAL(importAboutToBegin()),this,SLOT(stopTests())); /* Board connection/disconnection: */ TelemetryManager* telMngr = pm->getObject<TelemetryManager>(); connect(telMngr, SIGNAL(connected()), this, SLOT(stopTests())); connect(telMngr, SIGNAL(disconnected()), this, SLOT(stopTests())); /* When we go into wizards, etc.. time to stop this too. */ Core::ModeManager *modeMngr = Core::ModeManager::instance(); connect(modeMngr, SIGNAL(currentModeAboutToChange(Core::IMode *)), this, SLOT(stopTests())); connect(modeMngr, SIGNAL(currentModeChanged(Core::IMode *)), this, SLOT(stopTests())); // NOTE: we have channel indices from 0 to 9, but the convention for OP is Channel 1 to Channel 10. // Register for ActuatorSettings changes: for (unsigned int i = 0; i < ActuatorCommand::CHANNEL_NUMELEM; i++) { OutputChannelForm *outputForm = new OutputChannelForm(i, this, i==0); m_config->channelLayout->addWidget(outputForm); connect(m_config->channelOutTest, SIGNAL(toggled(bool)), outputForm, SLOT(enableChannelTest(bool))); connect(outputForm, SIGNAL(channelChanged(int,int)), this, SLOT(sendChannelTest(int,int))); connect(outputForm, SIGNAL(formChanged()), this, SLOT(do_SetDirty())); } connect(m_config->channelOutTest, SIGNAL(toggled(bool)), this, SLOT(runChannelTests(bool))); connect(m_config->calibrateESC, SIGNAL(clicked()), this, SLOT(startESCCalibration())); // Configure the task widget // Connect the help button connect(m_config->outputHelp, SIGNAL(clicked()), this, SLOT(openHelp())); addApplySaveButtons(m_config->saveRCOutputToRAM,m_config->saveRCOutputToSD); // Track the ActuatorSettings object addUAVObject("ActuatorSettings"); // Associate the buttons with their UAVO fields addWidget(m_config->cb_outputRate6); addWidget(m_config->cb_outputRate5); addWidget(m_config->cb_outputRate4); addWidget(m_config->cb_outputRate3); addWidget(m_config->cb_outputRate2); addWidget(m_config->cb_outputRate1); addWidget(m_config->spinningArmed); // Cache all the combo boxes and labels lblList.clear(); lblList << m_config->chBank1 << m_config->chBank2 << m_config->chBank3 << m_config->chBank4 << m_config->chBank5 << m_config->chBank6; rateList.clear(); rateList << m_config->cb_outputRate1 << m_config->cb_outputRate2 << m_config->cb_outputRate3 << m_config->cb_outputRate4 << m_config->cb_outputRate5 << m_config->cb_outputRate6; resList.clear(); resList << m_config->cb_outputResolution1 << m_config->cb_outputResolution2 << m_config->cb_outputResolution3 << m_config->cb_outputResolution4 << m_config->cb_outputResolution5 << m_config->cb_outputResolution6; // Get the list of output resolutions and assign to the resolution dropdowns ActuatorSettings *actuatorSettings = ActuatorSettings::GetInstance(getObjectManager()); Q_ASSERT(actuatorSettings); UAVObjectField *resolutions = actuatorSettings->getField("TimerPwmResolution"); Q_ASSERT(resolutions); QList<QComboBox*>::iterator resIter; for (resIter = resList.begin(); resIter != resList.end(); resIter++) { QComboBox *res = *resIter; res->clear(); res->addItems(resolutions->getOptions()); addWidget(res); connect(res, SIGNAL(currentIndexChanged(int)), this, SLOT(refreshWidgetRanges())); } QList<QComboBox*>::iterator rateIter; for (rateIter = rateList.begin(); rateIter != rateList.end(); rateIter++) { QComboBox *rate = *rateIter; connect(rate, SIGNAL(currentIndexChanged(int)), this, SLOT(refreshWidgetRanges())); } disconnect(this, SLOT(refreshWidgetsValues(UAVObject*))); UAVObjectManager *objManager = pm->getObject<UAVObjectManager>(); UAVObject* obj = objManager->getObject(QString("ActuatorCommand")); if(UAVObject::GetGcsTelemetryUpdateMode(obj->getMetadata()) == UAVObject::UPDATEMODE_ONCHANGE) this->setEnabled(false); connect(SystemSettings::GetInstance(objManager), SIGNAL(objectUpdated(UAVObject*)),this,SLOT(assignOutputChannels(UAVObject*))); refreshWidgetsValues(); }
void MainWindow::on_actionHelpContent_triggered() { openHelp(); }
ConfigCCHWWidget::ConfigCCHWWidget(QWidget *parent) : ConfigTaskWidget(parent) { m_telemetry = new Ui_CC_HW_Widget(); m_telemetry->setupUi(this); ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); Core::Internal::GeneralSettings *settings = pm->getObject<Core::Internal::GeneralSettings>(); if (!settings->useExpertMode()) { m_telemetry->saveTelemetryToRAM->setVisible(false); } UAVObjectUtilManager *utilMngr = pm->getObject<UAVObjectUtilManager>(); int id = utilMngr->getBoardModel(); switch (id) { case 0x0101: m_telemetry->label_2->setPixmap(QPixmap(":/uploader/images/deviceID-0101.svg")); break; case 0x0301: m_telemetry->label_2->setPixmap(QPixmap(":/uploader/images/deviceID-0301.svg")); break; case 0x0401: m_telemetry->label_2->setPixmap(QPixmap(":/configgadget/images/coptercontrol.svg")); break; case 0x0402: m_telemetry->label_2->setPixmap(QPixmap(":/configgadget/images/coptercontrol.svg")); break; case 0x0201: m_telemetry->label_2->setPixmap(QPixmap(":/uploader/images/deviceID-0201.svg")); break; default: m_telemetry->label_2->setPixmap(QPixmap(":/configgadget/images/coptercontrol.svg")); break; } addApplySaveButtons(m_telemetry->saveTelemetryToRAM, m_telemetry->saveTelemetryToSD); addWidgetBinding("HwSettings", "CC_FlexiPort", m_telemetry->cbFlexi); addWidgetBinding("HwSettings", "CC_MainPort", m_telemetry->cbTele); addWidgetBinding("HwSettings", "CC_RcvrPort", m_telemetry->cbRcvr); addWidgetBinding("HwSettings", "USB_HIDPort", m_telemetry->cbUsbHid); addWidgetBinding("HwSettings", "USB_VCPPort", m_telemetry->cbUsbVcp); addWidgetBinding("HwSettings", "TelemetrySpeed", m_telemetry->telemetrySpeed); addWidgetBinding("HwSettings", "GPSSpeed", m_telemetry->gpsSpeed); // Add Gps protocol configuration HwSettings *hwSettings = HwSettings::GetInstance(getObjectManager()); HwSettings::DataFields hwSettingsData = hwSettings->getData(); if (hwSettingsData.OptionalModules[HwSettings::OPTIONALMODULES_GPS] != HwSettings::OPTIONALMODULES_ENABLED) { m_telemetry->gpsProtocol->setEnabled(false); m_telemetry->gpsProtocol->setToolTip(tr("Enable GPS module and reboot the board to be able to select GPS protocol")); } else { addWidgetBinding("GPSSettings", "DataProtocol", m_telemetry->gpsProtocol); } addWidgetBinding("HwSettings", "ComUsbBridgeSpeed", m_telemetry->comUsbBridgeSpeed); connect(m_telemetry->cchwHelp, SIGNAL(clicked()), this, SLOT(openHelp())); enableSaveButtons(false); populateWidgets(); refreshWidgetsValues(); forceConnectedState(); }
QMenu* TabWidget::kueueMainMenu() { QMenu* menu = new QMenu( this ); QMenu* kueue = new QMenu( menu ); kueue->setIcon( QIcon( ":/icons/kueue.png" ) ); kueue->setTitle( "Kueue" ); mActionConfig = new QAction( kueue ); mActionConfig->setText( "Configure kueue" ); mActionConfig->setIcon( QIcon( ":/icons/menus/configure.png" ) ); mActionNSA = new QAction( kueue ); mActionNSA->setText( "Generate NSA Report" ); mActionNSA->setIcon( QIcon( ":/icons/menus/nsa.png" ) ); if ( Settings::unityEnabled() ) { mActionAddUnityTab = new QAction( kueue ); mActionAddUnityTab->setText( "Add Unity tab" ); mActionAddUnityTab->setIcon( QIcon( ":/icons/menus/web.png" ) ); } mActionQuit = new QAction( kueue ); mActionQuit->setText( "Quit" ); mActionQuit->setIcon( QIcon( ":/icons/menus/quit.png" ) ); mActionQuit->setShortcut ( QKeySequence( Qt::CTRL + Qt::Key_Q ) ); kueue->addAction( mActionConfig ); if ( Settings::unityEnabled() ) { kueue->addAction( mActionAddUnityTab ); } kueue->addAction( mActionNSA ); kueue->addAction( mActionQuit ); QMenu* view = new QMenu( menu ); view->setIcon( QIcon( ":/icons/conf/targets.png" ) ); view->setTitle( "Personal queue" ); QMenu* filter = new QMenu( menu ); filter->setIcon( QIcon( ":/icons/menus/filter.png" ) ); filter->setTitle( "Filter" ); mActionAwaitingCustomer = new QAction( filter ); mActionAwaitingCustomer->setText( "Awaiting Customer" ); mActionAwaitingCustomer->setCheckable( true ); mActionAwaitingSupport = new QAction( filter ); mActionAwaitingSupport->setText( "Awaiting Support" ); mActionAwaitingSupport->setCheckable( true ); mActionOthers = new QAction( filter ); mActionOthers->setText( "Other" ); mActionOthers->setCheckable( true ); mActionShowCR = new QAction( filter ); mActionShowCR->setText( "Show CRs" ); mActionShowCR->setCheckable( true ); mActionShowSR = new QAction( filter ); mActionShowSR->setText( "Show SRs" ); mActionShowSR->setCheckable( true ); filter->addAction( mActionAwaitingCustomer ); filter->addAction( mActionAwaitingSupport ); filter->addAction( mActionOthers ); filter->addSeparator(); filter->addAction( mActionShowCR ); filter->addAction( mActionShowSR ); view->addMenu( filter ); QMenu* sortby = new QMenu( menu ); sortby->setIcon( QIcon( ":/icons/menus/sort.png" ) ); sortby->setTitle( "Sort by" ); mActionSortUpdate = new QAction( sortby ); mActionSortUpdate->setText( "Last activity" ); mActionSortUpdate->setCheckable( true ); mActionSortAge = new QAction( sortby ); mActionSortAge->setText( "Age" ); mActionSortAge->setCheckable( true ); sortby->addAction( mActionSortUpdate ); sortby->addAction( mActionSortAge ); view->addMenu( sortby ); QMenu* other = new QMenu( menu ); other->setIcon( QIcon( ":/icons/menus/misc.png" ) ); other->setTitle( "Other" ); mActionCloseSrTables = new QAction( other ); mActionCloseSrTables->setText( "Close all SR tables" ); mActionExpandSrTables = new QAction( other ); mActionExpandSrTables->setText( "Expand all SR tables" ); other->addAction( mActionCloseSrTables ); other->addAction( mActionExpandSrTables ); view->addMenu( other ); QMenu* sub = new QMenu( menu ); sub->setIcon( QIcon( ":/icons/conf/targets.png" ) ); sub->setTitle( "Subowned SRs" ); QMenu* subfilter = new QMenu( menu ); subfilter->setIcon( QIcon( ":/icons/menus/filter.png" ) ); subfilter->setTitle( "Filter" ); mActionSubAwaitingCustomer = new QAction( subfilter ); mActionSubAwaitingCustomer->setText( "Awaiting Customer" ); mActionSubAwaitingCustomer->setCheckable( true ); mActionSubAwaitingSupport = new QAction( subfilter ); mActionSubAwaitingSupport->setText( "Awaiting Support" ); mActionSubAwaitingSupport->setCheckable( true ); mActionSubOthers = new QAction( subfilter ); mActionSubOthers->setText( "Other" ); mActionSubOthers->setCheckable( true ); mActionSubShowCR = new QAction( subfilter ); mActionSubShowCR->setText( "Show CRs" ); mActionSubShowCR->setCheckable( true ); mActionSubShowSR = new QAction( subfilter ); mActionSubShowSR->setText( "Show SRs" ); mActionSubShowSR->setCheckable( true ); subfilter->addAction( mActionSubAwaitingCustomer ); subfilter->addAction( mActionSubAwaitingSupport ); subfilter->addAction( mActionSubOthers ); subfilter->addSeparator(); subfilter->addAction( mActionSubShowCR ); subfilter->addAction( mActionSubShowSR ); sub->addMenu( subfilter ); QMenu* subsortby = new QMenu( menu ); subsortby->setIcon( QIcon( ":/icons/menus/sort.png" ) ); subsortby->setTitle( "Sort by" ); mActionSubSortUpdate = new QAction( subsortby ); mActionSubSortUpdate->setText( "Last activity" ); mActionSubSortUpdate->setCheckable( true ); mActionSubSortAge = new QAction( subsortby ); mActionSubSortAge->setText( "Age" ); mActionSubSortAge->setCheckable( true ); sortby->addAction( mActionSubSortUpdate ); sortby->addAction( mActionSubSortAge ); sub->addMenu( subsortby ); QMenu* subother = new QMenu( menu ); subother->setIcon( QIcon( ":/icons/menus/misc.png" ) ); subother->setTitle( "Other" ); mActionSubCloseSrTables = new QAction( other ); mActionSubCloseSrTables->setText( "Close all SR tables" ); mActionSubExpandSrTables = new QAction( other ); mActionSubExpandSrTables->setText( "Expand all SR tables" ); subother->addAction( mActionSubCloseSrTables ); subother->addAction( mActionSubExpandSrTables ); sub->addMenu( subother ); QMenu* qmon = new QMenu( menu ); qmon->setIcon( QIcon( ":/icons/conf/monitor.png" ) ); qmon->setTitle( "Queue monitor" ); QMenu* qmonfilter = new QMenu( qmon ); filter->setIcon( QIcon( ":/icons/menus/filter.png" ) ); filter->setTitle( "Filter" ); /*mActionQmonAwaitingCustomer = new QAction( qmonfilter ); mActionQmonAwaitingCustomer->setText( "Awaiting Customer" ); mActionQmonAwaitingCustomer->setCheckable( true ); mActionQmonAwaitingSupport = new QAction( qmonfilter ); mActionQmonAwaitingSupport->setText( "Awaiting Support" ); mActionQmonAwaitingSupport->setCheckable( true ); mActionQmonOthers = new QAction( qmonfilter ); mActionQmonOthers->setText( "Other" ); mActionQmonOthers->setCheckable( true ); qmonfilter->addAction( mActionAwaitingCustomer ); qmonfilter->addAction( mActionAwaitingSupport ); qmonfilter->addAction( mActionOthers );*/ qmon->addMenu( qmonfilter ); QMenu* help = new QMenu( menu ); help->setIcon( QIcon( ":/icons/menus/help.png" ) ); help->setTitle( "Help" ); mActionHelp = new QAction( help ); mActionHelp->setText( "Help" ); mActionHelp->setIcon( QIcon( ":/icons/menus/help.png" ) ); mActionBug = new QAction( help ); mActionBug->setText( "Report Bug" ); mActionBug->setIcon( QIcon( ":/icons/menus/reportbug.png" ) ); mActionFeature = new QAction( help ); mActionFeature->setText( "Suggest feature" ); mActionFeature->setIcon( QIcon( ":/icons/menus/feature.png" ) ); mActionAbout = new QAction( help ); mActionAbout->setText( "About kueue" ); mActionAbout->setIcon( QIcon( ":/icons/menus/about.png" ) ); help->addAction( mActionHelp ); help->addAction( mActionBug ); help->addAction( mActionFeature ); help->addAction( mActionAbout ); menu->addMenu( kueue ); menu->addMenu( view ); menu->addMenu( sub ); menu->addMenu( qmon ); menu->addMenu( help ); setMenus(); connect( mActionQuit, SIGNAL( activated() ), qApp, SLOT( quit() ) ); connect( mActionConfig, SIGNAL( activated() ), this, SIGNAL( openConfig() ) ); connect( mActionShowSR, SIGNAL( toggled( bool ) ), this, SLOT( setShowSR( bool ) ) ); connect( mActionShowCR, SIGNAL( toggled( bool ) ), this, SLOT( setShowCR( bool ) ) ); connect( mActionSortUpdate, SIGNAL( toggled( bool ) ), this, SLOT( setSortUpdate( bool ) ) ); connect( mActionSortAge, SIGNAL( toggled( bool ) ), this, SLOT( setSortAge( bool ) ) ); connect( mActionAwaitingCustomer, SIGNAL( toggled( bool ) ), this, SLOT( setShowAwaitingCustomer( bool ) ) ); connect( mActionAwaitingSupport, SIGNAL( toggled( bool ) ), this, SLOT( setShowAwaitingSupport( bool ) ) ); connect( mActionOthers, SIGNAL( toggled( bool ) ), this, SLOT( setShowStatusOthers( bool ) ) ); connect( mActionExpandSrTables, SIGNAL( activated() ), this, SLOT( expandAllTables() ) ); connect( mActionCloseSrTables, SIGNAL( activated() ), this, SLOT( closeAllTables() ) ); connect( mActionSubShowSR, SIGNAL( toggled( bool ) ), this, SLOT( subSetShowSR( bool ) ) ); connect( mActionSubShowCR, SIGNAL( toggled( bool ) ), this, SLOT( subSetShowCR( bool ) ) ); connect( mActionSubSortUpdate, SIGNAL( toggled( bool ) ), this, SLOT( subSetSortUpdate( bool ) ) ); connect( mActionSubSortAge, SIGNAL( toggled( bool ) ), this, SLOT( subSetSortAge( bool ) ) ); connect( mActionSubAwaitingCustomer, SIGNAL( toggled( bool ) ), this, SLOT( subSetShowAwaitingCustomer( bool ) ) ); connect( mActionSubAwaitingSupport, SIGNAL( toggled( bool ) ), this, SLOT( subSetShowAwaitingSupport( bool ) ) ); connect( mActionSubOthers, SIGNAL( toggled( bool ) ), this, SLOT( subSetShowStatusOthers( bool ) ) ); connect( mActionSubExpandSrTables, SIGNAL( activated() ), this, SLOT( subExpandAllTables() ) ); connect( mActionSubCloseSrTables, SIGNAL( activated() ), this, SLOT( subCloseAllTables() ) ); connect( mActionAbout, SIGNAL( activated() ), this, SLOT( aboutDialog() ) ); connect( mActionBug, SIGNAL( activated() ), this, SLOT( reportBug() ) ); connect( mActionFeature, SIGNAL( activated() ), this, SLOT( suggestFeature() ) ); connect( mActionHelp, SIGNAL( activated() ), this, SLOT( openHelp() ) ); if ( Settings::unityEnabled() ) { connect( mActionAddUnityTab, SIGNAL( activated() ), this, SLOT( addUnityBrowser() ) ); } connect( mActionNSA, SIGNAL( activated() ), this, SLOT( makeNsaReport() ) ); return menu; }
ConfigInputWidget::ConfigInputWidget(QWidget *parent) : ConfigTaskWidget(parent) { m_config = new Ui_InputWidget(); m_config->setupUi(this); ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); UAVObjectManager *objManager = pm->getObject<UAVObjectManager>(); // First of all, put all the channel widgets into lists, so that we can // manipulate those: inMaxLabels << m_config->ch0Max << m_config->ch1Max << m_config->ch2Max << m_config->ch3Max << m_config->ch4Max << m_config->ch5Max << m_config->ch6Max << m_config->ch7Max; inMinLabels << m_config->ch0Min << m_config->ch1Min << m_config->ch2Min << m_config->ch3Min << m_config->ch4Min << m_config->ch5Min << m_config->ch6Min << m_config->ch7Min; inSliders << m_config->inSlider0 << m_config->inSlider1 << m_config->inSlider2 << m_config->inSlider3 << m_config->inSlider4 << m_config->inSlider5 << m_config->inSlider6 << m_config->inSlider7; inRevCheckboxes << m_config->ch0Rev << m_config->ch1Rev << m_config->ch2Rev << m_config->ch3Rev << m_config->ch4Rev << m_config->ch5Rev << m_config->ch6Rev << m_config->ch7Rev; inChannelAssign << m_config->ch0Assign << m_config->ch1Assign << m_config->ch2Assign << m_config->ch3Assign << m_config->ch4Assign << m_config->ch5Assign << m_config->ch6Assign << m_config->ch7Assign; // Now connect the widget to the ManualControlCommand / Channel UAVObject UAVDataObject* obj = dynamic_cast<UAVDataObject*>(objManager->getObject(QString("ManualControlCommand"))); connect(obj, SIGNAL(objectUpdated(UAVObject*)), this, SLOT(updateChannels(UAVObject*))); // Register for ManualControlSettings changes: obj = dynamic_cast<UAVDataObject*>(objManager->getObject(QString("ManualControlSettings"))); connect(obj,SIGNAL(objectUpdated(UAVObject*)),this,SLOT(refreshValues())); // Get the receiver types supported by OpenPilot and fill the corresponding // dropdown menu: obj = dynamic_cast<UAVDataObject*>(objManager->getObject(QString("ManualControlSettings"))); UAVObjectField * field; // Fill in the dropdown menus for the channel RC Input assignement. QStringList channelsList; channelsList << "None"; QList<UAVObjectField*> fieldList = obj->getFields(); foreach (UAVObjectField* field, fieldList) { if (field->getUnits().contains("channel")) { channelsList.append(field->getName()); } } m_config->ch0Assign->addItems(channelsList); m_config->ch1Assign->addItems(channelsList); m_config->ch2Assign->addItems(channelsList); m_config->ch3Assign->addItems(channelsList); m_config->ch4Assign->addItems(channelsList); m_config->ch5Assign->addItems(channelsList); m_config->ch6Assign->addItems(channelsList); m_config->ch7Assign->addItems(channelsList); // And the flight mode settings: field = obj->getField(QString("FlightModePosition")); m_config->fmsModePos1->addItems(field->getOptions()); m_config->fmsModePos2->addItems(field->getOptions()); m_config->fmsModePos3->addItems(field->getOptions()); field = obj->getField(QString("Stabilization1Settings")); channelsList.clear(); channelsList.append(field->getOptions()); m_config->fmsSsPos1Roll->addItems(channelsList); m_config->fmsSsPos1Pitch->addItems(channelsList); m_config->fmsSsPos1Yaw->addItems(channelsList); m_config->fmsSsPos2Roll->addItems(channelsList); m_config->fmsSsPos2Pitch->addItems(channelsList); m_config->fmsSsPos2Yaw->addItems(channelsList); m_config->fmsSsPos3Roll->addItems(channelsList); m_config->fmsSsPos3Pitch->addItems(channelsList); m_config->fmsSsPos3Yaw->addItems(channelsList); // And the Armin configurations: field = obj->getField(QString("Arming")); m_config->armControl->clear(); m_config->armControl->addItems(field->getOptions()); connect(m_config->saveRCInputToSD, SIGNAL(clicked()), this, SLOT(saveRCInputObject())); connect(m_config->saveRCInputToRAM, SIGNAL(clicked()), this, SLOT(sendRCInputUpdate())); enableControls(false); refreshValues(); connect(parent, SIGNAL(autopilotConnected()),this, SLOT(onAutopilotConnect())); connect(parent, SIGNAL(autopilotDisconnected()), this, SLOT(onAutopilotDisconnect())); connect(m_config->ch0Rev, SIGNAL(toggled(bool)), this, SLOT(reverseCheckboxClicked(bool))); connect(m_config->ch1Rev, SIGNAL(toggled(bool)), this, SLOT(reverseCheckboxClicked(bool))); connect(m_config->ch2Rev, SIGNAL(toggled(bool)), this, SLOT(reverseCheckboxClicked(bool))); connect(m_config->ch3Rev, SIGNAL(toggled(bool)), this, SLOT(reverseCheckboxClicked(bool))); connect(m_config->ch4Rev, SIGNAL(toggled(bool)), this, SLOT(reverseCheckboxClicked(bool))); connect(m_config->ch5Rev, SIGNAL(toggled(bool)), this, SLOT(reverseCheckboxClicked(bool))); connect(m_config->ch6Rev, SIGNAL(toggled(bool)), this, SLOT(reverseCheckboxClicked(bool))); connect(m_config->ch7Rev, SIGNAL(toggled(bool)), this, SLOT(reverseCheckboxClicked(bool))); connect(m_config->doRCInputCalibration,SIGNAL(stateChanged(int)),this,SLOT(updateTips(int))); firstUpdate = true; // Connect the help button connect(m_config->inputHelp, SIGNAL(clicked()), this, SLOT(openHelp())); updateTips(Qt::Unchecked); }
void MainWindow::createShortcuts() { m_LoadShortcut = new QShortcut(QKeySequence(ShortcutKeys::loadShortcutKey), this); connect(m_LoadShortcut, SIGNAL(activated()), this, SLOT(loadCrossword())); m_SaveShortcut = new QShortcut(QKeySequence(ShortcutKeys::saveShortcutKey), this); connect(m_SaveShortcut, SIGNAL(activated()), this, SLOT(saveCrossword())); m_HelpShortcut = new QShortcut(QKeySequence(ShortcutKeys::helpShortcutKey), this); connect(m_HelpShortcut, SIGNAL(activated()), this, SLOT(openHelp())); m_ExitShortcut = new QShortcut(QKeySequence(ShortcutKeys::exitShortcutKey), this); connect(m_ExitShortcut, SIGNAL(activated()), this, SLOT(exitConfirmation())); m_TutorialShortcut = new QShortcut(QKeySequence(ShortcutKeys::tutorialShortcutKey), this); connect(m_TutorialShortcut, SIGNAL(activated()), this, SLOT(openTutorial())); m_EmailAnswersShortcut = new QShortcut(QKeySequence(ShortcutKeys::emailAnswersKey), this); connect(m_EmailAnswersShortcut, SIGNAL(activated()), this, SLOT(emailAnswers())); m_EmailFeedbackShortcut = new QShortcut(QKeySequence(ShortcutKeys::emailFeedbackKey), this); connect(m_EmailFeedbackShortcut, SIGNAL(activated()), this, SLOT(emailFeedback())); m_PrintAnswersShortcut = new QShortcut(QKeySequence(ShortcutKeys::printAnswersKey), this); connect(m_PrintAnswersShortcut, SIGNAL(activated()), this, SLOT(printAnswers())); m_ScoreShortcut = new QShortcut(QKeySequence(ShortcutKeys::markShortcutKey), this); connect(m_ScoreShortcut, SIGNAL(activated()), this, SLOT(scoreCrossword())); m_FilePropertiesShortcut = new QShortcut(QKeySequence(ShortcutKeys::filePropertiesShortcutKey), this); connect(m_FilePropertiesShortcut, SIGNAL(activated()), this, SLOT(showFileProperties())); m_FilterTableViewShortcut = new QShortcut(QKeySequence(ShortcutKeys::filterTableViewShortcutKey), this); connect(m_FilterTableViewShortcut, SIGNAL(activated()), this, SLOT(cycleTableViewFilter())); m_CycleSpeechModeShortcut = new QShortcut(QKeySequence(ShortcutKeys::cycleSpeechModeShortcutKey), this); connect(m_CycleSpeechModeShortcut, SIGNAL(activated()), this, SLOT(cycleSpeechMode())); m_StopSpeechShortcut = new QShortcut(QKeySequence(ShortcutKeys::stopSpeechKey), this); connect(m_StopSpeechShortcut, SIGNAL(activated()), this, SLOT(stopSpeech())); m_ApplicationOpenReminderShortcut = new QShortcut(QKeySequence(ShortcutKeys::toggleApplicationOpenReminderKey), this); connect(m_ApplicationOpenReminderShortcut, SIGNAL(activated()), this, SLOT(toggleApplicationOpenReminder())); m_ReadCurrentClueWordShortcut = new QShortcut(QKeySequence(ShortcutKeys::readCurrentClueWordKey), this); connect(m_ReadCurrentClueWordShortcut, SIGNAL(activated()), this, SLOT(readCurrentWordInClue())); m_AdvanceCurrentClueWordShortcut = new QShortcut(QKeySequence(ShortcutKeys::advanceClueWordKey), this); connect(m_AdvanceCurrentClueWordShortcut, SIGNAL(activated()), this, SLOT(advanceToNextWordInClue())); m_IncreaseSpeechRateShortcut = new QShortcut(QKeySequence(ShortcutKeys::increaseSpeechRateKey), this); connect(m_IncreaseSpeechRateShortcut, SIGNAL(activated()), this, SLOT(increaseSpeechRate())); m_DecreaseSpeechRateShortcut = new QShortcut(QKeySequence(ShortcutKeys::decreaseSpeechRateKey), this); connect(m_DecreaseSpeechRateShortcut, SIGNAL(activated()), this, SLOT(decreaseSpeechRate())); m_ReadLastSpokenPhraseShortcut = new QShortcut(QKeySequence(ShortcutKeys::readLastSpokenPhraseKey), this); connect(m_ReadLastSpokenPhraseShortcut, SIGNAL(activated()), this, SLOT(readLastSpokenPhrase())); m_CycleViewVisibilityShortcut = new QShortcut(QKeySequence(ShortcutKeys::cycleViewVisibilityKey), this); connect(m_CycleViewVisibilityShortcut, SIGNAL(activated()), this, SLOT(cycleViewVisibility())); }
ConfigStabilizationWidget::ConfigStabilizationWidget(QWidget *parent) : ConfigTaskWidget(parent) { stabSettings = StabilizationSettings::GetInstance(getObjectManager()); m_stabilization = new Ui_StabilizationWidget(); m_stabilization->setupUi(this); setupButtons(m_stabilization->saveStabilizationToRAM, m_stabilization->saveStabilizationToSD); addUAVObject("StabilizationSettings"); refreshWidgetsValues(); // Create a timer to regularly send the object update in case // we want realtime updates. connect(&updateTimer, SIGNAL(timeout()), this, SLOT(updateObjectsFromWidgets())); connect(m_stabilization->realTimeUpdates, SIGNAL(toggled(bool)), this, SLOT(realtimeUpdateToggle(bool))); // Connect the updates of the stab values connect(m_stabilization->rateRollKp, SIGNAL(valueChanged(double)), this, SLOT(updateRateRollKP(double))); connect(m_stabilization->rateRollKi, SIGNAL(valueChanged(double)), this, SLOT(updateRateRollKI(double))); connect(m_stabilization->rateRollILimit, SIGNAL(valueChanged(double)), this, SLOT(updateRateRollILimit(double))); connect(m_stabilization->ratePitchKp, SIGNAL(valueChanged(double)), this, SLOT(updateRatePitchKP(double))); connect(m_stabilization->ratePitchKi, SIGNAL(valueChanged(double)), this, SLOT(updateRatePitchKI(double))); connect(m_stabilization->ratePitchILimit, SIGNAL(valueChanged(double)), this, SLOT(updateRatePitchILimit(double))); connect(m_stabilization->rollKp, SIGNAL(valueChanged(double)), this, SLOT(updateRollKP(double))); connect(m_stabilization->rollKi, SIGNAL(valueChanged(double)), this, SLOT(updateRollKI(double))); connect(m_stabilization->rollILimit, SIGNAL(valueChanged(double)), this, SLOT(updateRollILimit(double))); connect(m_stabilization->pitchKp, SIGNAL(valueChanged(double)), this, SLOT(updatePitchKP(double))); connect(m_stabilization->pitchKi, SIGNAL(valueChanged(double)), this, SLOT(updatePitchKI(double))); connect(m_stabilization->pitchILimit, SIGNAL(valueChanged(double)), this, SLOT(updatePitchILimit(double))); addWidget(m_stabilization->rateRollKp); addWidget(m_stabilization->rateRollKi); addWidget(m_stabilization->rateRollILimit); addWidget(m_stabilization->ratePitchKp); addWidget(m_stabilization->ratePitchKi); addWidget(m_stabilization->ratePitchILimit); addWidget(m_stabilization->rateYawKp); addWidget(m_stabilization->rateYawKi); addWidget(m_stabilization->rateYawILimit); addWidget(m_stabilization->rollKp); addWidget(m_stabilization->rollKi); addWidget(m_stabilization->rollILimit); addWidget(m_stabilization->yawILimit); addWidget(m_stabilization->yawKi); addWidget(m_stabilization->yawKp); addWidget(m_stabilization->pitchKp); addWidget(m_stabilization->pitchKi); addWidget(m_stabilization->pitchILimit); addWidget(m_stabilization->rollMax); addWidget(m_stabilization->pitchMax); addWidget(m_stabilization->yawMax); addWidget(m_stabilization->manualRoll); addWidget(m_stabilization->manualPitch); addWidget(m_stabilization->manualYaw); addWidget(m_stabilization->maximumRoll); addWidget(m_stabilization->maximumPitch); addWidget(m_stabilization->maximumYaw); addWidget(m_stabilization->lowThrottleZeroIntegral); // Connect buttons connect(m_stabilization->stabilizationResetToDefaults, SIGNAL(clicked()), this, SLOT(resetToDefaults())); connect(m_stabilization->stabilizationHelp, SIGNAL(clicked()), this, SLOT(openHelp())); }