void QDesignerDockWidget::setDocked(bool b) { if (QMainWindow *mainWindow = findMainWindow()) { QDesignerFormEditorInterface *core = formWindow()->core(); QDesignerContainerExtension *c; c = qt_extension<QDesignerContainerExtension*>(core->extensionManager(), mainWindow); if (b && !docked()) { // Dock it // ### undo/redo stack setParent(0); c->addWidget(this); formWindow()->selectWidget(this, formWindow()->cursor()->isWidgetSelected(this)); } else if (!b && docked()) { // Undock it for (int i = 0; i < c->count(); ++i) { if (c->widget(i) == this) { c->remove(i); break; } } // #### restore the position setParent(mainWindow->centralWidget()); show(); formWindow()->selectWidget(this, formWindow()->cursor()->isWidgetSelected(this)); } } }
Notify::Notify() : m_iconAdded(false) , m_isConnected(false) , m_lastTime(0) , m_lastState(Info) , m_window(0) { InitializeCriticalSection(&m_cs); m_window = findMainWindow(); }
bool QDesignerDockWidget::inMainWindow() const { QMainWindow *mw = findMainWindow(); if (mw && !mw->centralWidget()->layout()) { if (mw == parentWidget()) return true; if (mw->centralWidget() == parentWidget()) return true; } return false; }
void MainWindow::openFile(const QString &fileName) { MainWindow *existing = findMainWindow(fileName); if (existing) { existing->show(); existing->raise(); existing->activateWindow(); return; } if (isUntitled && textEdit->document()->isEmpty() && !isWindowModified()) { loadFile(fileName); return; } MainWindow *other = new MainWindow(fileName); if (other->isUntitled) { delete other; return; } other->tile(this); other->show(); }
int QgsWFSData::getWFSData() { XML_Parser p = XML_ParserCreateNS( NULL, NS_SEPARATOR ); XML_SetUserData( p, this ); XML_SetElementHandler( p, QgsWFSData::start, QgsWFSData::end ); XML_SetCharacterDataHandler( p, QgsWFSData::chars ); //start with empty extent if ( mExtent ) { mExtent->set( 0, 0, 0, 0 ); } //QUrl requestUrl( mUri ); QNetworkRequest request( mUri ); QNetworkReply* reply = QgsNetworkAccessManager::instance()->get( request ); connect( reply, SIGNAL( finished() ), this, SLOT( setFinished() ) ); connect( reply, SIGNAL( downloadProgress( qint64, qint64 ) ), this, SLOT( handleProgressEvent( qint64, qint64 ) ) ); //find out if there is a QGIS main window. If yes, display a progress dialog QProgressDialog* progressDialog = 0; QWidget* mainWindow = findMainWindow(); if ( mainWindow ) { progressDialog = new QProgressDialog( tr( "Loading WFS data\n%1" ).arg( mTypeName ), tr( "Abort" ), 0, 0, mainWindow ); progressDialog->setWindowModality( Qt::ApplicationModal ); connect( this, SIGNAL( dataReadProgress( int ) ), progressDialog, SLOT( setValue( int ) ) ); connect( this, SIGNAL( totalStepsUpdate( int ) ), progressDialog, SLOT( setMaximum( int ) ) ); connect( progressDialog, SIGNAL( canceled() ), this, SLOT( setFinished() ) ); progressDialog->show(); } int atEnd = 0; while ( !atEnd ) { if ( mFinished ) { atEnd = 1; } QByteArray readData = reply->readAll(); if ( readData.size() > 0 ) { XML_Parse( p, readData.constData(), readData.size(), atEnd ); } QCoreApplication::processEvents(); } delete reply; delete progressDialog; if ( mExtent ) { if ( mExtent->isEmpty() ) { //reading of bbox from the server failed, so we calculate it less efficiently by evaluating the features calculateExtentFromFeatures(); } } XML_ParserFree( p ); return 0; }
bool MainWindow::openPath(const QString &path) { #ifndef Q_OS_ANDROID // Empty path does nothing. This also helps with the single instance application code. if (path.isEmpty()) return true; MainWindow* const existing = findMainWindow(path); if (existing) { existing->show(); existing->raise(); existing->activateWindow(); return true; } #endif // Check a blocker that prevents immediate re-opening of crashing files. // Needed for stopping auto-loading a crashing file on startup. static const QString reopen_blocker = QString::fromLatin1("open_in_progress"); QSettings settings; const QString open_in_progress(settings.value(reopen_blocker).toString()); if (open_in_progress == path) { int result = QMessageBox::warning(this, tr("Crash warning"), tr("It seems that %1 crashed the last time this file was opened:<br /><tt>%2</tt><br /><br />Really retry to open it?").arg(appName()).arg(path), QMessageBox::Yes | QMessageBox::No); settings.remove(reopen_blocker); if (result == QMessageBox::No) return false; } settings.setValue(reopen_blocker, path); settings.sync(); MainWindowController* const new_controller = MainWindowController::controllerForFile(path); if (!new_controller) { QMessageBox::warning(this, tr("Error"), tr("Cannot open file:\n%1\n\nFile format not recognized.").arg(path)); settings.remove(reopen_blocker); return false; } QString new_actual_path = path; QString autosave_path = Autosave::autosavePath(path); bool new_autosave_conflict = QFileInfo(autosave_path).exists(); if (new_autosave_conflict) { #if defined(Q_OS_ANDROID) // Assuming small screen, showing dialog before opening the file AutosaveDialog* autosave_dialog = new AutosaveDialog(path, autosave_path, autosave_path, this); int result = autosave_dialog->exec(); new_actual_path = (result == QDialog::Accepted) ? autosave_dialog->selectedPath() : QString(); delete autosave_dialog; #else // Assuming large screen, dialog will be shown while the autosaved file is open new_actual_path = autosave_path; #endif } if (new_actual_path.isEmpty() || !new_controller->load(new_actual_path, this)) { delete new_controller; settings.remove(reopen_blocker); return false; } MainWindow* open_window = this; #if !defined(Q_OS_ANDROID) if (has_opened_file) open_window = new MainWindow(); #endif open_window->setController(new_controller, path); open_window->actual_path = new_actual_path; open_window->setHasAutosaveConflict(new_autosave_conflict); open_window->setHasUnsavedChanges(false); open_window->setVisible(true); // Respect the window flags set by new_controller. open_window->raise(); num_open_files++; settings.remove(reopen_blocker); setMostRecentlyUsedFile(path); #if !defined(Q_OS_ANDROID) // Assuming large screen. Android handled above. if (new_autosave_conflict) { auto autosave_dialog = new AutosaveDialog(path, autosave_path, new_actual_path, open_window, Qt::WindowTitleHint | Qt::CustomizeWindowHint); autosave_dialog->move(open_window->rect().right() - autosave_dialog->width(), open_window->rect().top()); autosave_dialog->show(); autosave_dialog->raise(); connect(autosave_dialog, &AutosaveDialog::pathSelected, open_window, &MainWindow::switchActualPath); connect(open_window, &MainWindow::actualPathChanged, autosave_dialog, &AutosaveDialog::setSelectedPath); connect(open_window, &MainWindow::autosaveConflictResolved, autosave_dialog, &AutosaveDialog::autosaveConflictResolved); } #endif open_window->activateWindow(); return true; }