/*! * \brief TextDoc::save saves the current document and it settings * \return true/false if the document was opened with success */ int TextDoc::save () { saveSettings (); QFile file (DocName); if (!file.open (QIODevice::WriteOnly)) return -1; setLanguage (DocName); QTextStream stream (&file); stream << toPlainText(); document()->setModified (false); slotSetChanged (); file.close (); QFileInfo Info (DocName); lastSaved = Info.lastModified (); /// clear highlighted lines on save \see MessageDock::slotCursor() QList<QTextEdit::ExtraSelection> extraSelections; this->setExtraSelections(extraSelections); refreshLanguage(); return 0; }
/*! * \brief TextDoc::TextDoc Text document constructor * \param App_ is the parent object * \param Name_ is the initial text document name */ TextDoc::TextDoc(QucsApp *App_, const QString& Name_) : QPlainTextEdit(), QucsDoc(App_, Name_) { TextFont = QFont("Courier New"); TextFont.setPointSize(QucsSettings.font.pointSize()-1); TextFont.setStyleHint(QFont::Courier); TextFont.setFixedPitch(true); document()->setDefaultFont(TextFont); simulation = true; Library = ""; Libraries = ""; SetChanged = false; devtype = DEV_DEF; tmpPosX = tmpPosY = 1; // set to 1 to trigger line highlighting Scale = (float)TextFont.pointSize(); //TODO (not supported) setUndoDepth(QucsSettings.maxUndo); setLanguage (Name_); QFileInfo Info (Name_); if(App) { if(Name_.isEmpty()) { App->DocumentTab->addTab(this, QPixmap(empty_xpm), QObject::tr("untitled")); } else { App->DocumentTab->addTab(this, QPixmap(empty_xpm), Info.fileName()); } App->DocumentTab->setCurrentPage(App->DocumentTab->indexOf(this)); viewport()->setFocus(); setWordWrapMode(QTextOption::NoWrap); setPaletteBackgroundColor(QucsSettings.BGColor); connect(this, SIGNAL(textChanged()), SLOT(slotSetChanged())); connect(this, SIGNAL(cursorPositionChanged()), SLOT(slotCursorPosChanged())); syntaxHighlight = new SyntaxHighlighter(this); syntaxHighlight->setLanguage(language); syntaxHighlight->setDocument(document()); connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(highlightCurrentLine())); highlightCurrentLine(); } }
// --------------------------------------------------- bool TextDoc::load () { QFile file (DocName); if (!file.open (QIODevice::ReadOnly)) return false; setLanguage (DocName); QTextStream stream (&file); setText (stream.read ()); setModified (false); slotSetChanged (); file.close (); lastSaved = QDateTime::currentDateTime (); loadSettings (); SimOpenDpl = simulation ? true : false; return true; }
// --------------------------------------------------- int TextDoc::save () { saveSettings (); QFile file (DocName); if (!file.open (QIODevice::WriteOnly)) return -1; setLanguage (DocName); Q3TextStream stream (&file); stream << text (); setModified (false); slotSetChanged (); file.close (); QFileInfo Info (DocName); lastSaved = Info.lastModified (); return 0; }
/*! * \brief TextDoc::TextDoc Text document constructor * \param App_ is the parent object * \param Name_ is the initial text document name */ TextDoc::TextDoc(QucsApp *App_, const QString& Name_) : QPlainTextEdit(), QucsDoc(App_, Name_) { TextFont = QFont("Courier New"); TextFont.setPointSize(QucsSettings.font.pointSize()-1); TextFont.setStyleHint(QFont::Courier); TextFont.setFixedPitch(true); document()->setDefaultFont(TextFont); simulation = true; Library = ""; Libraries = ""; SetChanged = false; devtype = DEV_DEF; tmpPosX = tmpPosY = 1; // set to 1 to trigger line highlighting Scale = (float)TextFont.pointSize(); setLanguage (Name_); viewport()->setFocus(); setWordWrapMode(QTextOption::NoWrap); setPaletteBackgroundColor(QucsSettings.BGColor); connect(this, SIGNAL(textChanged()), SLOT(slotSetChanged())); connect(this, SIGNAL(cursorPositionChanged()), SLOT(slotCursorPosChanged())); if (App_) { connect(this, SIGNAL(signalCursorPosChanged(int, int)), App_, SLOT(printCursorPosition(int, int))); connect(this, SIGNAL(signalUndoState(bool)), App_, SLOT(slotUpdateUndo(bool))); connect(this, SIGNAL(signalRedoState(bool)), App_, SLOT(slotUpdateRedo(bool))); connect(this, SIGNAL(signalFileChanged(bool)), App_, SLOT(slotFileChanged(bool))); } syntaxHighlight = new SyntaxHighlighter(this); syntaxHighlight->setLanguage(language); syntaxHighlight->setDocument(document()); connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(highlightCurrentLine())); highlightCurrentLine(); }