Autosave::AutosaveResult MainWindow::autosave() { QString path = currentPath(); if (path.isEmpty() || !controller) { return Autosave::PermanentFailure; } else if (controller->isEditingInProgress()) { return Autosave::TemporaryFailure; } else { showStatusBarMessage(tr("Autosaving..."), 0); if (controller->exportTo(autosavePath(currentPath()))) { // Success clearStatusBarMessage(); return Autosave::Success; } else { // Failure showStatusBarMessage(tr("Autosaving failed!"), 6000); return Autosave::PermanentFailure; } } }
PopupWindow::PopupWindow(PopupWebView* view, bool showStatusBar) : QWidget() , m_view(view) , m_page(view->webPage()) { m_layout = new QVBoxLayout(this); m_layout->setContentsMargins(0, 0, 0, 0); m_layout->setSpacing(0); m_locationBar = new PopupLocationBar(this); m_locationBar->setView(m_view); m_statusBar = new QStatusBar(this); m_statusBar->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum); m_statusBar->setVisible(showStatusBar); m_progressBar = new ProgressBar(m_statusBar); m_statusBar->addPermanentWidget(m_progressBar); m_progressBar->hide(); m_statusBarMessage = new PopupStatusBarMessage(this); m_layout->addWidget(m_locationBar); m_layout->addWidget(m_view); m_layout->addWidget(m_statusBar); setLayout(m_layout); connect(m_view, SIGNAL(showNotification(QWidget*)), this, SLOT(showNotification(QWidget*))); connect(m_view, SIGNAL(titleChanged(QString)), this, SLOT(titleChanged())); connect(m_view, SIGNAL(urlChanged(QUrl)), m_locationBar, SLOT(showUrl(QUrl))); connect(m_view, SIGNAL(iconChanged()), m_locationBar, SLOT(showIcon())); connect(m_view, SIGNAL(statusBarMessage(QString)), this, SLOT(showStatusBarMessage(QString))); connect(m_view, SIGNAL(loadStarted()), this, SLOT(loadStarted())); connect(m_view, SIGNAL(loadProgress(int)), this, SLOT(loadProgress(int))); connect(m_view, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished())); connect(m_page, SIGNAL(linkHovered(QString, QString, QString)), this, SLOT(showStatusBarMessage(QString))); connect(m_page, SIGNAL(geometryChangeRequested(QRect)), this, SLOT(setWindowGeometry(QRect))); connect(m_page, SIGNAL(statusBarVisibilityChangeRequested(bool)), this, SLOT(setStatusBarVisibility(bool))); connect(m_page, SIGNAL(menuBarVisibilityChangeRequested(bool)), this, SLOT(setMenuBarVisibility(bool))); connect(m_page, SIGNAL(toolBarVisibilityChangeRequested(bool)), this, SLOT(setToolBarVisibility(bool))); m_view->setFocus(); titleChanged(); QUrl urlToShow = m_view->url(); if (urlToShow.isEmpty()) { urlToShow = m_view->page()->mainFrame()->requestedUrl(); } m_locationBar->showUrl(urlToShow); // Ensuring correct sizes for widgets in layout are calculated even // before calling QWidget::show() m_layout->invalidate(); m_layout->activate(); }
void QgsGPSInformationWidget::connected( QgsGPSConnection *conn ) { mNmea = conn; connect( mNmea, SIGNAL( stateChanged( const QgsGPSInformation& ) ), this, SLOT( displayGPSInformation( const QgsGPSInformation& ) ) ); mGPSPlainTextEdit->appendPlainText( tr( "Connected!" ) ); mConnectButton->setText( tr( "Dis&connect" ) ); //insert connection into registry such that it can also be used by other dialogs or plugins QgsGPSConnectionRegistry::instance()->registerConnection( mNmea ); showStatusBarMessage( tr( "Connected to GPS device." ) ); if ( mLogFileGroupBox->isChecked() && ! mTxtLogFile->text().isEmpty() ) { if ( ! mLogFile ) { mLogFile = new QFile( mTxtLogFile->text() ); } if ( mLogFile->open( QIODevice::Append ) ) // open in binary and explicitly output CR + LF per NMEA { mLogFileTextStream.setDevice( mLogFile ); // crude way to separate chunks - use when manually editing file - NMEA parsers should discard mLogFileTextStream << "====" << "\r\n"; connect( mNmea, SIGNAL( nmeaSentenceReceived( const QString& ) ), this, SLOT( logNmeaSentence( const QString& ) ) ); // added to handle raw data } else // error opening file { delete mLogFile;
void QgsGPSInformationWidget::timedout() { mConnectButton->setChecked( false ); mNmea = NULL; mGPSPlainTextEdit->appendPlainText( tr( "Timed out!" ) ); showStatusBarMessage( tr( "Failed to connect to GPS device." ) ); }
void QgsGPSInformationWidget::disconnectGps() { if ( mLogFile && mLogFile->isOpen() ) { disconnect( mNmea, &QgsGPSConnection::nmeaSentenceReceived, this, &QgsGPSInformationWidget::logNmeaSentence ); mLogFile->close(); delete mLogFile; mLogFile = nullptr; } QgsApplication::gpsConnectionRegistry()->unregisterConnection( mNmea ); delete mNmea; mNmea = nullptr; if ( mpMapMarker ) // marker should not be shown on GPS disconnected - not current position { delete mpMapMarker; mpMapMarker = nullptr; } mGPSPlainTextEdit->appendPlainText( tr( "Disconnected..." ) ); mConnectButton->setChecked( false ); mConnectButton->setText( tr( "&Connect" ) ); showStatusBarMessage( tr( "Disconnected from GPS device." ) ); setStatusIndicator( NoData ); }
void QgsGPSInformationWidget::connectGps() { // clear position page fields to give better indication that something happened (or didn't happen) mTxtLatitude->clear(); mTxtLongitude->clear(); mTxtAltitude->clear(); mTxtDateTime->clear(); mTxtSpeed->clear(); mTxtDirection->clear(); mTxtHdop->clear(); mTxtVdop->clear(); mTxtPdop->clear(); mTxtFixMode->clear(); mTxtFixType->clear(); mTxtQuality->clear(); mTxtSatellitesUsed->clear(); mTxtStatus->clear(); mLastGpsPosition = QgsPoint( 0.0, 0.0 ); QString port; if ( mRadUserPath->isChecked() ) { port = mCboDevices->itemData( mCboDevices->currentIndex() ).toString(); if ( port.isEmpty() ) { QMessageBox::information( this, tr( "/gps" ), tr( "No path to the GPS port " "is specified. Please enter a path then try again." ) ); //toggle the button back off mConnectButton->setChecked( false ); return; } } else if ( mRadGpsd->isChecked() ) { port = QString( "%1:%2:%3" ).arg( mGpsdHost->text() ).arg( mGpsdPort->text() ).arg( mGpsdDevice->text() ); } else if ( mRadInternal->isChecked() ) { port = QString( "internalGPS" ); } mGPSPlainTextEdit->appendPlainText( tr( "Connecting..." ) ); showStatusBarMessage( tr( "Connecting to GPS device..." ) ); QgsGPSDetector *detector = new QgsGPSDetector( port ); connect( detector, SIGNAL( detected( QgsGPSConnection * ) ), this, SLOT( connected( QgsGPSConnection * ) ) ); connect( detector, SIGNAL( detectionFailed() ), this, SLOT( timedout() ) ); detector->advance(); // start the detection process }
void TabWidget::currentChanged(int index) { WebView *webView = this->webView(index); if (!webView) return; Q_ASSERT(m_lineEdits->count() == count()); WebView *oldWebView = this->webView(m_lineEdits->currentIndex()); if (oldWebView) { disconnect(oldWebView, SIGNAL(statusBarMessage(QString)), this, SIGNAL(showStatusBarMessage(QString))); disconnect(oldWebView->page(), SIGNAL(linkHovered(QString,QString,QString)), this, SIGNAL(linkHovered(QString))); disconnect(oldWebView, SIGNAL(loadProgress(int)), this, SIGNAL(loadProgress(int))); } connect(webView, SIGNAL(statusBarMessage(QString)), this, SIGNAL(showStatusBarMessage(QString))); connect(webView->page(), SIGNAL(linkHovered(QString,QString,QString)), this, SIGNAL(linkHovered(QString))); connect(webView, SIGNAL(loadProgress(int)), this, SIGNAL(loadProgress(int))); for (int i = 0; i < m_actions.count(); ++i) { WebActionMapper *mapper = m_actions[i]; mapper->updateCurrent(webView->page()); } emit setCurrentTitle(webView->title()); m_lineEdits->setCurrentIndex(index); emit loadProgress(webView->progress()); emit showStatusBarMessage(webView->lastStatusBarText()); if (webView->url().isEmpty()) m_lineEdits->currentWidget()->setFocus(); else webView->setFocus(); }
bool RevsView::doUpdate(bool force) { bool found = tab()->listViewLog->update(); if (!found && !st.sha().isEmpty()) { const QString tmp("Sorry, revision " + st.sha() + " has not been found in main view"); showStatusBarMessage(tmp); } else { // sha could be NULL if (st.isChanged(StateInfo::SHA) || force) { on_updateRevDesc(); showStatusBarMessage(git->getRevInfo(st.sha())); } const RevFile* files = NULL; bool newFiles = false; if (st.isChanged(StateInfo::ANY & ~StateInfo::FILE_NAME) || force) { // blocking call, could be slow in case of all merge files files = git->getFiles(st.sha(), st.diffToSha(), st.allMergeFiles()); newFiles = true; //TODO update diff here } if (st.selectItem()) { bool isDir = st.isDir(); m()->updateContextActions(st.sha(), st.fileName(), isDir, found); } if (st.isChanged() || force) /*TODO update diff here*/; } return (found || st.sha().isEmpty()); }
void tableTemplateWidget::setStatusBar(QStatusBar *qsb) { sb = qsb; connect(mct, SIGNAL(showStatusBarMessage(QString)), sb, SLOT(showMessage(QString))); }
PopupWindow::PopupWindow(PopupWebView* view) : QWidget() , m_view(view) , m_page(qobject_cast<PopupWebPage*>(view->page())) , m_search(0) { m_layout = new QVBoxLayout(this); m_layout->setContentsMargins(0, 0, 0, 0); m_layout->setSpacing(0); m_locationBar = new PopupLocationBar(this); m_locationBar->setView(m_view); m_statusBar = new QStatusBar(this); m_statusBar->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum); m_progressBar = new ProgressBar(m_statusBar); m_statusBar->addPermanentWidget(m_progressBar); m_progressBar->hide(); m_view->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); m_statusBarMessage = new PopupStatusBarMessage(this); m_menuBar = new QMenuBar(this); QMenu* menuFile = new QMenu(tr("File")); menuFile->addAction(QIcon::fromTheme("document-save"), tr("&Save Page As..."), m_view, SLOT(savePageAs()))->setShortcut(QKeySequence("Ctrl+S")); menuFile->addAction(tr("Save Page Screen"), this, SLOT(savePageScreen())); menuFile->addAction(QIcon::fromTheme("mail-message-new"), tr("Send Link..."), m_view, SLOT(sendPageByMail())); menuFile->addAction(QIcon::fromTheme("document-print"), tr("&Print..."), m_view, SLOT(printPage()))->setShortcut(QKeySequence("Ctrl+P")); menuFile->addSeparator(); menuFile->addAction(QIcon::fromTheme("window-close"), tr("Close"), this, SLOT(close()))->setShortcut(QKeySequence("Ctrl+W")); m_menuBar->addMenu(menuFile); m_menuEdit = new QMenu(tr("Edit")); m_menuEdit->addAction(QIcon::fromTheme("edit-undo"), tr("&Undo"), this, SLOT(editUndo()))->setShortcut(QKeySequence("Ctrl+Z")); m_menuEdit->addAction(QIcon::fromTheme("edit-redo"), tr("&Redo"), this, SLOT(editRedo()))->setShortcut(QKeySequence("Ctrl+Shift+Z")); m_menuEdit->addSeparator(); m_menuEdit->addAction(QIcon::fromTheme("edit-cut"), tr("&Cut"), this, SLOT(editCut()))->setShortcut(QKeySequence("Ctrl+X")); m_menuEdit->addAction(QIcon::fromTheme("edit-copy"), tr("C&opy"), this, SLOT(editCopy()))->setShortcut(QKeySequence("Ctrl+C")); m_menuEdit->addAction(QIcon::fromTheme("edit-paste"), tr("&Paste"), this, SLOT(editPaste()))->setShortcut(QKeySequence("Ctrl+V")); m_menuEdit->addSeparator(); m_menuEdit->addAction(QIcon::fromTheme("edit-select-all"), tr("Select All"), m_view, SLOT(selectAll()))->setShortcut(QKeySequence("Ctrl+A")); m_menuEdit->addAction(QIcon::fromTheme("edit-find"), tr("Find"), this, SLOT(searchOnPage()))->setShortcut(QKeySequence("Ctrl+F")); connect(m_menuEdit, SIGNAL(aboutToShow()), this, SLOT(aboutToShowEditMenu())); m_menuBar->addMenu(m_menuEdit); m_menuView = new QMenu(tr("View")); m_actionStop = m_menuView->addAction(qIconProvider->standardIcon(QStyle::SP_BrowserStop), tr("&Stop"), m_view, SLOT(stop())); m_actionStop->setShortcut(QKeySequence("Esc")); m_actionReload = m_menuView->addAction(qIconProvider->standardIcon(QStyle::SP_BrowserReload), tr("&Reload"), m_view, SLOT(reload())); m_actionReload->setShortcut(QKeySequence("F5")); m_menuView->addSeparator(); m_menuView->addAction(QIcon::fromTheme("zoom-in"), tr("Zoom &In"), m_view, SLOT(zoomIn()))->setShortcut(QKeySequence("Ctrl++")); m_menuView->addAction(QIcon::fromTheme("zoom-out"), tr("Zoom &Out"), m_view, SLOT(zoomOut()))->setShortcut(QKeySequence("Ctrl+-")); m_menuView->addAction(QIcon::fromTheme("zoom-original"), tr("Reset"), m_view, SLOT(zoomReset()))->setShortcut(QKeySequence("Ctrl+0")); m_menuView->addSeparator(); m_menuView->addAction(QIcon::fromTheme("text-html"), tr("&Page Source"), m_view, SLOT(showSource()))->setShortcut(QKeySequence("Ctrl+U")); m_menuBar->addMenu(m_menuView); // Make shortcuts available even with hidden menubar QList<QAction*> actions = m_menuBar->actions(); foreach(QAction * action, actions) { if (action->menu()) { actions += action->menu()->actions(); } addAction(action); } m_layout->insertWidget(0, m_menuBar); m_layout->addWidget(m_locationBar); m_layout->addWidget(m_view); m_layout->addWidget(m_statusBar); setLayout(m_layout); connect(m_view, SIGNAL(showNotification(QWidget*)), this, SLOT(showNotification(QWidget*))); connect(m_view, SIGNAL(titleChanged(QString)), this, SLOT(titleChanged())); connect(m_view, SIGNAL(urlChanged(QUrl)), m_locationBar, SLOT(showUrl(QUrl))); connect(m_view, SIGNAL(iconChanged()), m_locationBar, SLOT(showIcon())); connect(m_view, SIGNAL(statusBarMessage(QString)), this, SLOT(showStatusBarMessage(QString))); connect(m_view, SIGNAL(loadStarted()), this, SLOT(loadStarted())); connect(m_view, SIGNAL(loadProgress(int)), this, SLOT(loadProgress(int))); connect(m_view, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished())); connect(m_page, SIGNAL(linkHovered(QString, QString, QString)), this, SLOT(showStatusBarMessage(QString))); connect(m_page, SIGNAL(geometryChangeRequested(QRect)), this, SLOT(setWindowGeometry(QRect))); connect(m_page, SIGNAL(statusBarVisibilityChangeRequested(bool)), this, SLOT(setStatusBarVisibility(bool))); connect(m_page, SIGNAL(menuBarVisibilityChangeRequested(bool)), this, SLOT(setMenuBarVisibility(bool))); connect(m_page, SIGNAL(toolBarVisibilityChangeRequested(bool)), this, SLOT(setToolBarVisibility(bool))); m_view->setFocus(); titleChanged(); QUrl urlToShow = m_view->url(); if (urlToShow.isEmpty()) { urlToShow = m_view->page()->mainFrame()->requestedUrl(); } m_locationBar->showUrl(urlToShow); // Ensuring correct sizes for widgets in layout are calculated even // before calling QWidget::show() m_layout->invalidate(); m_layout->activate(); }