void LuaEditor::newFile() { static int sequence = 1; isUntitled = true; currentFile = tr("newScript%1.lua").arg(sequence++); setWindowTitle(tr("%1[*]").arg(currentFile)); QSettings settings(ORGNAME, APPNAME); settings.beginGroup("QtLuaPad"); QString programmer = settings.value("programmer").toString().toLatin1(); settings.endGroup(); setText(tr("-- Created using QtLuaPad on %1\n-- Written by: %2.\n\nfunction onUse(cid, item, frompos, item2, topos)\n\treturn TRUE\nend").arg(QDate::currentDate().toString(), programmer)); this->setModified(false); connect(this, SIGNAL(textChanged()), this, SLOT(setDocumentModified())); }
bool LuaEditor::openFile(const QString &file) { QFile f(file); if(!f.open(QFile::ReadOnly | QFile::Text)) { QMessageBox::warning(this, "Unable to open file!", tr("Could not read file %1.\nError string: %2") .arg(currentFile, f.errorString()), QMessageBox::Ok, QMessageBox::NoButton); return false; } QTextStream stream(&f); QApplication::setOverrideCursor(Qt::WaitCursor); this->setText(stream.readAll()); QApplication::restoreOverrideCursor(); setCurrentFile(file); connect(this, SIGNAL(textChanged()), this, SLOT(setDocumentModified())); return true; }
MainWindow::MainWindow() { //QTime t = QTime::currentTime(); #ifndef KTIKZ_USE_KDE m_aboutDialog = 0; m_assistantController = 0; #endif m_configDialog = 0; m_isModifiedExternally = false; m_insertAction = 0; s_mainWindowList.append(this); #ifndef KTIKZ_USE_KDE QStringList themeSearchPaths; themeSearchPaths << QDir::homePath() + QLatin1String("/.local/share/icons/"); themeSearchPaths << QIcon::themeSearchPaths(); QIcon::setThemeSearchPaths(themeSearchPaths); #endif setAttribute(Qt::WA_DeleteOnClose); #ifdef KTIKZ_USE_KDE setObjectName(QLatin1String("ktikz#")); setWindowIcon(KIcon(QLatin1String("ktikz"))); Action::setActionCollection(actionCollection()); #else setObjectName(QLatin1String("qtikz#") + QString::number(s_mainWindowList.size())); setWindowIcon(QIcon(QLatin1String(":/icons/qtikz-22.png"))); #endif setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea); setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea); setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea); //qCritical() << t.msecsTo(QTime::currentTime()); m_tikzPreviewController = new TikzPreviewController(this); //qCritical() << "TikzPreviewController" << t.msecsTo(QTime::currentTime()); m_tikzEditorView = new TikzEditorView(this); //qCritical() << "TikzEditorView" << t.msecsTo(QTime::currentTime()); m_commandInserter = new TikzCommandInserter(this); m_tikzHighlighter = new TikzHighlighter(m_tikzEditorView->editor()->document()); m_userCommandInserter = new UserCommandInserter(this); QWidget *mainWidget = new QWidget(this); QVBoxLayout *mainLayout = new QVBoxLayout(mainWidget); mainLayout->setSpacing(0); mainLayout->setMargin(0); mainLayout->addWidget(m_tikzPreviewController->templateWidget()); mainLayout->addWidget(m_tikzEditorView); m_logDock = new QDockWidget(this); m_logDock->setObjectName(QLatin1String("LogDock")); m_logDock->setAllowedAreas(Qt::AllDockWidgetAreas); m_logDock->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable); m_logDock->setWindowTitle(tr("&Messages")); addDockWidget(Qt::BottomDockWidgetArea, m_logDock); m_logTextEdit = new LogTextEdit; m_logTextEdit->setWhatsThis(tr("<p>The messages produced by " "LaTeX are shown here. If your TikZ code contains errors, " "then a red border will appear and the errors will be " "highlighted.</p>")); m_logDock->setWidget(m_logTextEdit); m_previewDock = new QDockWidget(this); m_previewDock->setObjectName(QLatin1String("PreviewDock")); m_previewDock->setAllowedAreas(Qt::AllDockWidgetAreas); m_previewDock->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable); m_previewDock->setWindowTitle(tr("Previe&w")); m_previewDock->setWidget(m_tikzPreviewController->tikzPreview()); addDockWidget(Qt::RightDockWidgetArea, m_previewDock); setCentralWidget(mainWidget); createActions(); #ifndef KTIKZ_USE_KDE createToolBars(); // run first in order to be able to add file/editToolBar->toggleViewAction() to the menu createMenus(); #endif //qCritical() << "createMenus" << t.msecsTo(QTime::currentTime()); createCommandInsertWidget(); // must happen after createMenus and before readSettings createStatusBar(); #ifdef KTIKZ_USE_KDE setupGUI(ToolBar | Keys | StatusBar | Save); setXMLFile(QLatin1String("ktikzui.rc")); createGUI(); guiFactory()->addClient(this); #endif setTabOrder(m_tikzPreviewController->templateWidget()->lastTabOrderWidget(), m_tikzEditorView->editor()); connect(m_commandInserter, SIGNAL(showStatusMessage(QString,int)), statusBar(), SLOT(showMessage(QString,int))); connect(m_tikzEditorView, SIGNAL(modificationChanged(bool)), this, SLOT(setDocumentModified(bool))); connect(m_tikzEditorView, SIGNAL(cursorPositionChanged(int,int)), this, SLOT(showCursorPosition(int,int))); connect(m_tikzEditorView, SIGNAL(showStatusMessage(QString,int)), statusBar(), SLOT(showMessage(QString,int))); connect(m_tikzEditorView, SIGNAL(focusIn()), this, SLOT(checkForFileChanges())); connect(m_tikzEditorView, SIGNAL(focusOut()), this, SLOT(saveLastInternalModifiedDateTime())); connect(m_tikzPreviewController, SIGNAL(updateLog(QString,bool)), m_logTextEdit, SLOT(updateLog(QString,bool))); connect(m_tikzPreviewController, SIGNAL(appendLog(QString,bool)), m_logTextEdit, SLOT(appendLog(QString,bool))); connect(m_tikzPreviewController, SIGNAL(showMouseCoordinates(qreal,qreal,int,int)), this, SLOT(showMouseCoordinates(qreal,qreal,int,int))); connect(m_userCommandInserter, SIGNAL(updateCompleter()), this, SLOT(updateCompleter())); readSettings(); // must be run after defining tikzController and tikzHighlighter, and after creating the toolbars, and after the connects //qCritical() << "readSettings()" << t.msecsTo(QTime::currentTime()); setCurrentUrl(Url()); setDocumentModified(false); saveLastInternalModifiedDateTime(); m_tikzEditorView->editor()->setFocus(); // delayed initialization // QTimer::singleShot(0, this, SLOT(init())); // this causes flicker at startup and init() is not executed in a separate thread anyway :( init(); //qCritical() << "mainwindow" << t.msecsTo(QTime::currentTime()); }