void MainThreadWebSocketChannel::didCloseSocketStream(SocketStreamHandle* handle) { WTF_LOG(Network, "MainThreadWebSocketChannel %p didCloseSocketStream()", this); if (m_identifier && m_document) { TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "WebSocketDestroy", "data", InspectorWebSocketEvent::data(m_document, m_identifier)); TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline.stack"), "CallStack", "stack", InspectorCallStackEvent::currentCallStack()); // FIXME(361045): remove InspectorInstrumentation calls once DevTools Timeline migrates to tracing. InspectorInstrumentation::didCloseWebSocket(m_document, m_identifier); } ASSERT_UNUSED(handle, handle == m_handle || !m_handle); // Show error message on JS console if this is unexpected connection close // during opening handshake. if (!m_hasCalledDisconnectOnHandle && m_handshake->mode() == WebSocketHandshake::Incomplete && m_document) { const String message = "WebSocket connection to '" + m_handshake->url().elidedString() + "' failed: Connection closed before receiving a handshake response"; m_document->addConsoleMessage(ConsoleMessage::create(JSMessageSource, ErrorMessageLevel, message, m_sourceURLAtConstruction, m_lineNumberAtConstruction)); } m_state = ChannelClosed; if (m_closingTimer.isActive()) m_closingTimer.stop(); if (m_outgoingFrameQueueStatus != OutgoingFrameQueueClosed) abortOutgoingFrameQueue(); if (m_handle) { WebSocketChannelClient* client = m_client; m_client = nullptr; clearDocument(); m_handle = nullptr; if (client) client->didClose(m_receivedClosingHandshake ? WebSocketChannelClient::ClosingHandshakeComplete : WebSocketChannelClient::ClosingHandshakeIncomplete, m_closeEventCode, m_closeEventReason); } deref(); }
CSSFontSelector::~CSSFontSelector() { #if !ENABLE(OILPAN) clearDocument(); FontCache::fontCache()->removeClient(this); #endif }
Document::~Document() { // We need to emit those manually because init() emits them // and init() calls clearPages() // emitting the signals in clearPages() will cause a double emission of the signals. emit aboutToReset(); clearPages(); clearDocument(); }
bool App::newWorkspace() { clearDocument(); m_fixtureManager->slotDocLoaded(); m_functionManager->slotDocLoaded(); m_contextManager->resetContexts(); return true; }
bool App::slotFileNew() { bool result = false; if (m_doc->isModified()) { QString msg(tr("Do you wish to save the current workspace?\n" \ "Changes will be lost if you don't save them.")); int result = QMessageBox::warning(this, tr("New Workspace"), msg, QMessageBox::Yes, QMessageBox::No, QMessageBox::Cancel); if (result == QMessageBox::Yes) { slotFileSave(); clearDocument(); result = true; } else if (result == QMessageBox::No) { clearDocument(); result = true; } else { result = false; } } else { clearDocument(); result = true; } return result; }
void MainThreadWebSocketChannel::disconnect() { WTF_LOG(Network, "MainThreadWebSocketChannel %p disconnect()", this); if (m_identifier && m_document) { TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "WebSocketDestroy", "data", InspectorWebSocketEvent::data(m_document, m_identifier)); TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline.stack"), "CallStack", "stack", InspectorCallStackEvent::currentCallStack()); // FIXME(361045): remove InspectorInstrumentation calls once DevTools Timeline migrates to tracing. InspectorInstrumentation::didCloseWebSocket(m_document, m_identifier); } clearDocument(); m_client = nullptr; disconnectHandle(); }
bool App::newWorkspace() { /* QString msg(tr("Do you wish to save the current workspace?\n" \ "Changes will be lost if you don't save them.")); if (saveModifiedDoc(tr("New Workspace"), msg) == false) { return false; } */ clearDocument(); m_fixtureManager->slotDocLoaded(); m_functionManager->slotDocLoaded(); m_contextManager->resetContexts(); return true; }
bool App::loadWorkspace(const QString &fileName) { /* Clear existing document data */ clearDocument(); m_docLoaded = false; emit docLoadedChanged(); QString localFilename = fileName; if (localFilename.startsWith("file:")) localFilename = QUrl(fileName).toLocalFile(); if (loadXML(localFilename) == QFile::NoError) { setTitle(QString("%1 - %2").arg(APPNAME).arg(localFilename)); setFileName(localFilename); m_docLoaded = true; updateRecentFilesList(localFilename); emit docLoadedChanged(); m_contextManager->resetContexts(); m_doc->resetModified(); m_videoProvider = new VideoProvider(this, m_doc); // autostart Function if set if (m_doc->startupFunction() != Function::invalidId()) { Function *func = m_doc->function(m_doc->startupFunction()); if (func != NULL) { qDebug() << Q_FUNC_INFO << "Starting startup function. (" << m_doc->startupFunction() << ")"; func->start(m_doc->masterTimer(), FunctionParent::master()); } else { qWarning() << Q_FUNC_INFO << "Startup function does not exist, erasing. (" << m_doc->startupFunction() << ")"; m_doc->setStartupFunction(Function::invalidId()); } } return true; } return false; }
void Document::init(const QString& filePath, const QString& mimeType) { m_filePath = filePath; emit filePathChanged(); m_mimeType = mimeType; emit mimeTypeChanged(); setState(Document::Loading); if (!m_pages.isEmpty()) { emit aboutToReset(); clearPages(); } clearDocument(); m_loader = new DocumentLoader; QObject::connect(m_loader, SIGNAL(done()), this, SLOT(loaderDone())); QObject::connect(m_loader, SIGNAL(error()), this, SLOT(loaderError())); QObject::connect(m_loader, SIGNAL(locked()), this, SLOT(loaderLocked())); m_loader->start(m_filePath, m_mimeType); }
void App::slotLoadDocFromMemory(QByteArray &xmlData) { if (xmlData.isEmpty()) return; /* Clear existing document data */ clearDocument(); QBuffer databuf; databuf.setData(xmlData); databuf.open(QIODevice::ReadOnly | QIODevice::Text); //qDebug() << "Buffer data:" << databuf.data(); QXmlStreamReader doc(&databuf); if (doc.hasError()) { qWarning() << Q_FUNC_INFO << "Unable to read from XML in memory"; return; } while (!doc.atEnd()) { if (doc.readNext() == QXmlStreamReader::DTD) break; } if (doc.hasError()) { qDebug() << "XML has errors:" << doc.errorString(); return; } if (doc.dtdName() == KXMLQLCWorkspace) loadXML(doc, true, true); else qDebug() << "XML doesn't have a Workspace tag"; }
bool App::loadWorkspace(const QString &fileName) { /* Clear existing document data */ clearDocument(); m_docLoaded = false; emit docLoadedChanged(); QString localFilename = fileName; if (localFilename.startsWith("file:")) localFilename = QUrl(fileName).toLocalFile(); if (loadXML(localFilename) == QFile::NoError) { setTitle(QString("Q Light Controller Plus - %1").arg(localFilename)); setFileName(localFilename); m_docLoaded = true; updateRecentFilesList(localFilename); emit docLoadedChanged(); m_contextManager->resetContexts(); m_doc->resetModified(); return true; } return false; }
CSSFontSelector::~CSSFontSelector() { clearDocument(); fontCache()->removeClient(this); }
QFile::FileError App::slotFileOpen() { QString fn; /* Check that the user is aware of losing previous changes */ if (m_doc->isModified() == true) { QString msg(tr("Do you wish to save the current workspace?\n" \ "Changes will be lost if you don't save them.")); int result = QMessageBox::warning(this, tr("Open Workspace"), msg, QMessageBox::Yes, QMessageBox::No, QMessageBox::Cancel); if (result == QMessageBox::Yes) { /* Save first, but don't proceed unless it succeeded. */ QFile::FileError error = slotFileSaveAs(); if (handleFileError(error) == false) return error; } else if (result == QMessageBox::Cancel) { /* Second thoughts... Cancel loading. */ return QFile::NoError; } } /* Create a file open dialog */ QFileDialog dialog(this); dialog.setWindowTitle(tr("Open Workspace")); dialog.setAcceptMode(QFileDialog::AcceptOpen); dialog.selectFile(fileName()); /* Append file filters to the dialog */ QStringList filters; filters << tr("Workspaces (*%1)").arg(KExtWorkspace); #ifdef WIN32 filters << tr("All Files (*.*)"); #else filters << tr("All Files (*)"); #endif dialog.setNameFilters(filters); /* Append useful URLs to the dialog */ QList <QUrl> sidebar; sidebar.append(QUrl::fromLocalFile(QDir::homePath())); sidebar.append(QUrl::fromLocalFile(QDir::rootPath())); dialog.setSidebarUrls(sidebar); /* Get file name */ if (dialog.exec() != QDialog::Accepted) return QFile::NoError; fn = dialog.selectedFiles().first(); if (fn.isEmpty() == true) return QFile::NoError; /* Clear existing document data */ clearDocument(); /* Set the workspace path before loading the new XML. In this way local files can be loaded even if the workspace file has been moved */ m_doc->setWorkspacePath(QFileInfo(fn).absolutePath()); /* Load the file */ QFile::FileError error = loadXML(fn); if (handleFileError(error) == true) m_doc->resetModified(); /* Update these in any case, since they are at least emptied now as a result of calling clearDocument() a few lines ago. */ if (FunctionManager::instance() != NULL) FunctionManager::instance()->updateTree(); if (FixtureManager::instance() != NULL) FixtureManager::instance()->updateView(); if (InputOutputManager::instance() != NULL) InputOutputManager::instance()->updateTree(); return error; }
CSSFontSelector::~CSSFontSelector() { clearDocument(); FontCache::singleton().removeClient(this); }