QString HighlighterByKate::exportDocument(KTextEditor::Document* note) { QString ret(""); KTextEditor::Range range; range = note->documentRange(); KTextEditor::HighlightInterface* hiface = qobject_cast<KTextEditor::HighlightInterface*>(note); const KTextEditor::Attribute::Ptr noAttrib(0); for (int i = 0; i < note->lines(); ++i) { QString content(""); const QString &line = note->line(i); QList<KTextEditor::HighlightInterface::AttributeBlock> attribs; if ( hiface ) { attribs = hiface->lineAttributes(i); } int lineStart = 0; int remainingChars = line.length(); if ( range.onSingleLine() ) { lineStart = range.start().column(); remainingChars = range.columnWidth(); } else if ( i == range.start().line() ) { lineStart = range.start().column(); } else if ( i == range.end().line() ) { remainingChars = range.end().column(); } int handledUntil = lineStart; foreach ( const KTextEditor::HighlightInterface::AttributeBlock& block, attribs ) { // honor (block-) selections if ( block.start + block.length <= lineStart ) { continue; } else if ( block.start >= lineStart + remainingChars ) { break; } int start = qMax(block.start, lineStart); if ( start > handledUntil ) { exportText(content, line.mid( handledUntil, start - handledUntil ), noAttrib ); } int length = qMin(block.length, remainingChars); exportText(content, line.mid( start, length ), block.attribute); handledUntil = start + length; } if ( handledUntil < lineStart + remainingChars ) { exportText(content, line.mid( handledUntil, remainingChars ), noAttrib ); } if (i != range.end().line()) { ret.append(content.isEmpty() ? "\n" : content); ret.append("\n"); } } return ret; }
void QuadSynopsis::takeTextSnapshot(string text) { writeGraph(exportText(text)); }
MainWindow::MainWindow(QThread *atermThread): m_fileDialog("", this) { m_ui.setupUi(this); m_ltsManager = new LtsManager(this, &m_settings, atermThread); m_markManager = new MarkManager(this, m_ltsManager); m_infoDock = new InfoDock(this, m_ltsManager, m_markManager); m_markDock = new MarkDock(this, m_markManager); m_simDock = new SimDock(this, m_ltsManager); m_settingsDock = new SettingsDock(this, &m_settings); m_settingsDialog = new SettingsDialog(this, &m_settings); m_ltsCanvas = new LtsCanvas(this, &m_settings, m_ltsManager, m_markManager); setCentralWidget(m_ltsCanvas); m_progressDialog = new QProgressDialog("", QString(), 0, 6, this); m_progressDialog->setMinimumDuration(0); m_ui.informationDock->setWidget(m_infoDock); m_ui.simulationDock->setWidget(m_simDock); m_ui.markDock->setWidget(m_markDock); m_ui.settingsDock->setWidget(m_settingsDock); m_ui.viewMenu->insertAction(m_ui.preferences, m_ui.informationDock->toggleViewAction()); m_ui.viewMenu->insertAction(m_ui.preferences, m_ui.simulationDock->toggleViewAction()); m_ui.viewMenu->insertAction(m_ui.preferences, m_ui.markDock->toggleViewAction()); m_ui.viewMenu->insertAction(m_ui.preferences, m_ui.settingsDock->toggleViewAction()); m_ui.viewMenu->insertSeparator(m_ui.preferences); mcrl2::log::logger::register_output_policy(m_logRelay); connect(&m_logRelay, SIGNAL(logMessage(QString, QString, QDateTime, QString)), this, SLOT(logMessage(QString, QString, QDateTime, QString))); connect(m_ui.open, SIGNAL(triggered()), this, SLOT(open())); connect(m_ui.openTrace, SIGNAL(triggered()), this, SLOT(openTrace())); connect(m_ui.exportBitmap, SIGNAL(triggered()), this, SLOT(exportBitmap())); connect(m_ui.exportText, SIGNAL(triggered()), this, SLOT(exportText())); connect(m_ui.exportVector, SIGNAL(triggered()), this, SLOT(exportVector())); connect(m_ui.exit, SIGNAL(triggered()), QApplication::instance(), SLOT(quit())); connect(m_ui.resetViewpoint, SIGNAL(triggered()), m_ltsCanvas, SLOT(resetView())); connect(m_ui.zoomIntoAbove, SIGNAL(triggered()), m_ltsManager, SLOT(zoomInAbove())); connect(m_ui.zoomIntoBelow, SIGNAL(triggered()), m_ltsManager, SLOT(zoomInBelow())); connect(m_ui.zoomOut, SIGNAL(triggered()), m_ltsManager, SLOT(zoomOut())); connect(m_ui.displayStates, SIGNAL(triggered(bool)), &m_settings.displayStates, SLOT(setValue(bool))); connect(&m_settings.displayStates, SIGNAL(changed(bool)), m_ui.displayStates, SLOT(setChecked(bool))); connect(m_ui.displayTransitions, SIGNAL(triggered(bool)), &m_settings.displayTransitions, SLOT(setValue(bool))); connect(&m_settings.displayTransitions, SIGNAL(changed(bool)), m_ui.displayTransitions, SLOT(setChecked(bool))); connect(m_ui.displayBackpointers, SIGNAL(triggered(bool)), &m_settings.displayBackpointers, SLOT(setValue(bool))); connect(&m_settings.displayBackpointers, SIGNAL(changed(bool)), m_ui.displayBackpointers, SLOT(setChecked(bool))); connect(m_ui.displayWireframe, SIGNAL(triggered(bool)), &m_settings.displayWireframe, SLOT(setValue(bool))); connect(&m_settings.displayWireframe, SIGNAL(changed(bool)), m_ui.displayWireframe, SLOT(setChecked(bool))); connect(m_ui.preferences, SIGNAL(triggered()), m_settingsDialog, SLOT(show())); connect(m_ltsManager, SIGNAL(loadingLts()), this, SLOT(loadingLts())); connect(m_ltsManager, SIGNAL(rankingStates()), this, SLOT(rankingStates())); connect(m_ltsManager, SIGNAL(clusteringStates()), this, SLOT(clusteringStates())); connect(m_ltsManager, SIGNAL(computingClusterInfo()), this, SLOT(computingClusterInfo())); connect(m_ltsManager, SIGNAL(positioningClusters()), this, SLOT(positioningClusters())); connect(m_ltsManager, SIGNAL(positioningStates()), this, SLOT(positioningStates())); connect(m_ltsManager, SIGNAL(ltsStructured()), this, SLOT(hideProgressDialog())); connect(m_ltsManager, SIGNAL(errorLoadingLts()), this, SLOT(hideProgressDialog())); connect(m_ltsManager, SIGNAL(startStructuring()), this, SLOT(startStructuring())); connect(m_ltsManager, SIGNAL(stopStructuring()), this, SLOT(stopStructuring())); connect(m_ltsManager, SIGNAL(selectionChanged()), this, SLOT(selectionChanged())); connect(m_ltsManager, SIGNAL(ltsZoomed(LTS *)), this, SLOT(zoomChanged())); m_ui.zoomIntoAbove->setEnabled(false); m_ui.zoomIntoBelow->setEnabled(false); m_ui.zoomOut->setEnabled(false); connect(m_ltsCanvas, SIGNAL(renderingStarted()), this, SLOT(startRendering())); connect(m_ltsCanvas, SIGNAL(renderingFinished()), this, SLOT(clearStatusBar())); QSettings settings("mCRL2", "LTSView"); restoreGeometry(settings.value("geometry").toByteArray()); restoreState(settings.value("windowState").toByteArray()); }