LogicPasteApp::LogicPasteApp(Application *app) : QObject(app), loginSheet_(NULL), ignoreSettingsEvent_(false) { qDebug() << "LogicPasteApp::LogicPasteApp()"; QCoreApplication::setOrganizationName("LogicProbe"); QCoreApplication::setApplicationName("LogicPaste"); qRegisterMetaType<PasteListing>("PasteListing"); pasteModel_ = new PasteModel(this); QmlDocument *qml = QmlDocument::create("asset:///main.qml").parent(this); qml->setContextProperty("cs", this); qml->setContextProperty("model", pasteModel_); AppSettings *appSettings = AppSettings::instance(); if(!qml->hasErrors()) { tabbedPane_ = qml->createRootObject<TabbedPane>(); if(tabbedPane_) { // Paste page pastePage_ = tabbedPane_->findChild<Page*>("pastePage"); connect(pastePage_, SIGNAL(submitPaste()), this, SLOT(onSubmitPaste())); replaceDropDown(pastePage_, "formatDropDown"); // History page historyNav_ = tabbedPane_->findChild<NavigationPane*>("historyPage"); connect(historyNav_, SIGNAL(popTransitionEnded(bb::cascades::Page*)), this, SLOT(onPopFinished(bb::cascades::Page*))); historyPage_ = historyNav_->findChild<Page*>("pasteListPage"); connect(historyPage_, SIGNAL(refreshPage()), pasteModel_, SLOT(refreshHistory())); ListView *historyList = historyPage_->findChild<ListView*>("pasteList"); historyList->setDataModel(pasteModel_->historyModel()); connect(historyList, SIGNAL(openPaste(QString)), this, SLOT(onOpenHistoryPaste(QString))); connect(historyList, SIGNAL(copyUrl(QString)), this, SLOT(onCopyText(QString))); connect(historyList, SIGNAL(deletePaste(QString)), this, SLOT(onDeleteHistoryPaste(QString))); connect(pasteModel_, SIGNAL(historyUpdating()), historyPage_, SLOT(onRefreshStarted())); connect(pasteModel_, SIGNAL(historyUpdated(bool)), this, SLOT(onHistoryRefreshComplete(bool))); // Trending page trendingNav_ = tabbedPane_->findChild<NavigationPane*>("trendingPage"); connect(trendingNav_, SIGNAL(popTransitionEnded(bb::cascades::Page*)), this, SLOT(onPopFinished(bb::cascades::Page*))); trendingPage_ = trendingNav_->findChild<Page*>("pasteListPage"); trendingPage_->findChild<ActionItem*>("refreshAction")->setEnabled(true); connect(trendingPage_, SIGNAL(refreshPage()), pasteModel_, SLOT(refreshTrending())); ListView *trendingList = trendingPage_->findChild<ListView*>("pasteList"); trendingList->setDataModel(pasteModel_->trendingModel()); connect(trendingList, SIGNAL(openPaste(QString)), this, SLOT(onOpenTrendingPaste(QString))); connect(trendingList, SIGNAL(copyUrl(QString)), this, SLOT(onCopyText(QString))); connect(pasteModel_, SIGNAL(trendingUpdating()), trendingPage_, SLOT(onRefreshStarted())); connect(pasteModel_, SIGNAL(trendingUpdated(bool)), this, SLOT(onTrendingRefreshComplete(bool))); // Settings page settingsPage_ = tabbedPane_->findChild<Page*>("settingsPage"); CheckBox *sslCheckBox = settingsPage_->findChild<CheckBox *>("sslCheckBox"); sslCheckBox->setChecked(appSettings->useSsl()); CheckBox *formatterEnable = settingsPage_->findChild<CheckBox*>("formatterEnable"); formatterEnable->setChecked(appSettings->formatterEnabled()); CheckBox *formatterLineNumbering = settingsPage_->findChild<CheckBox*>("formatterLineNumbering"); formatterLineNumbering->setChecked(appSettings->formatterLineNumbering()); DropDown *formatterStyle = settingsPage_->findChild<DropDown*>("formatterStyle"); for(int i = formatterStyle->count() - 1; i >= 0; --i) { if(formatterStyle->at(i)->value() == appSettings->formatterStyle()) { formatterStyle->setSelectedIndex(i); break; } } connect(settingsPage_, SIGNAL(requestLogin()), this, SLOT(onRequestLogin())); connect(settingsPage_, SIGNAL(requestLogout()), this, SLOT(onRequestLogout())); connect(settingsPage_, SIGNAL(refreshUserDetails()), pasteModel_, SLOT(refreshUserDetails())); connect(settingsPage_, SIGNAL(connectionSettingsChanged()), this, SLOT(onConnectionSettingsChanged())); connect(settingsPage_, SIGNAL(pasteSettingsChanged()), this, SLOT(onPasteSettingsChanged())); connect(settingsPage_, SIGNAL(formatterSettingsChanged()), this, SLOT(onFormatterSettingsChanged())); connect(pasteModel_, SIGNAL(userDetailsUpdated()), this, SLOT(onUserDetailsUpdated())); connect(pasteModel_, SIGNAL(userDetailsError(QString)), this, SLOT(onUserDetailsError(QString))); connect(pasteModel_, SIGNAL(userAvatarUpdated()), this, SLOT(onUserAvatarUpdated())); connect(pasteModel_, SIGNAL(deletePasteError(PasteListing,QString)), this, SLOT(onDeletePasteError(PasteListing,QString))); FormatDropDown *formatDropDown = replaceDropDown(settingsPage_, "formatDropDown"); connect(formatDropDown, SIGNAL(selectedIndexChanged(int)), this, SLOT(onPasteSettingsChanged())); // Tabbed pane connect(tabbedPane_, SIGNAL(activePaneChanged(bb::cascades::AbstractPane*)), this, SLOT(onActivePaneChanged(bb::cascades::AbstractPane*))); app->setScene(tabbedPane_); // Create the pull-down menu ActionItem *aboutItem = ActionItem::create() .title(tr("About")) .image(QUrl("asset:///images/action-about.png")); connect(aboutItem, SIGNAL(triggered()), this, SLOT(onAboutActionTriggered())); Menu *menu = Menu::create() .addAction(aboutItem); app->setMenu(menu); if(pasteModel_->isAuthenticated()) { onUserDetailsUpdated(); onUserAvatarUpdated(); } refreshPastePageDefaults(); refreshMainActions(); } }
void MenuSettings::on_btnOk_clicked() { // Port settings if( settings->value( "bitsPerSecond" ).toString() != ui->cmbBps->currentText() || settings->value( "dataBits" ).toString() != ui->cmbDataBits->currentText() || settings->value( "parity" ).toString() != ui->cmbParity->currentText() || settings->value( "stopBits" ).toString() != ui->cmbStopBits->currentText() || settings->value( "flowControl" ).toString() != ui->cmbFlowControl->currentText() ) { settings->setValue( "bitsPerSecond", ui->cmbBps->currentText() ); settings->setValue( "dataBits", ui->cmbDataBits->currentText() ); settings->setValue( "parity", ui->cmbParity->currentText() ); settings->setValue( "stopBits", ui->cmbStopBits->currentText() ); settings->setValue( "flowControl", ui->cmbFlowControl->currentText() ); emit portSettingsChanged(); } // CONNECTION SETTINGS bool changed = false; // connect all or single if( group.checkedButton() == ui->radioAll ) { if( settings->value( "port" ).toString() != "ALL" ) { settings->setValue( "port", "ALL" ); changed = true; } } else if( group.checkedButton() == ui->radioSingle ) { if( settings->value( "port" ).toString() != ui->cmbPorts->currentText() ) { settings->setValue( "port", ui->cmbPorts->currentText() ); changed = true; } } // auto connect if( settings->value( "autoConnect").toBool() != ui->chkAutoConnect->isChecked() ) { if( ui->chkAutoConnect->isChecked() ) // checked settings->setValue( "autoConnect", true ); else // unchecked settings->setValue( "autoConnect", false ); changed = true; } // did the connection settings change if( changed ) emit connectionSettingsChanged(); // VALIDATION SETTINGS if( settings->value( "validationManualCommand" ).toBool() != ui->chkVerifManCom->isChecked() || settings->value( "validationSequence" ).toBool() != ui->chkVerifSeq->isChecked() ) { // validation: manual command if( ui->chkVerifManCom->isChecked() ) // checked settings->setValue( "validationManualCommand", true ); else // unchecked settings->setValue( "validationManualCommand", false ); // validation: sequence if( ui->chkVerifSeq->isChecked() ) // checked settings->setValue( "validationSequence", true ); else // unchecked settings->setValue( "validationSequence", false ); emit validationSettingsChanged(); } this->close(); }