"Fossies" - the Fresh Open Source Software Archive

Member "mathmod-branches-r508-trunk/ui_modules/editor.cpp" (8 Mar 2021, 4520 Bytes) of package /linux/misc/mathmod-11.0-source.zip:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "editor.cpp" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 10.1_vs_11.0.

    1 /***************************************************************************
    2  *   Copyright (C) 2021 by Abderrahman Taha                                *
    3  *                                                                         *
    4  *                                                                         *
    5  *   This program is free software; you can redistribute it and/or modify  *
    6  *   it under the terms of the GNU General Public License as published by  *
    7  *   the Free Software Foundation; either version 2 of the License, or     *
    8  *   (at your option) any later version.                                   *
    9  *                                                                         *
   10  *   This program is distributed in the hope that it will be useful,       *
   11  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
   12  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
   13  *   GNU General Public License for more details.                          *
   14  *                                                                         *
   15  *   You should have received a copy of the GNU General Public License     *
   16  *   along with this program; if not, write to the                         *
   17  *   Free Software Foundation, Inc.,                                       *
   18  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
   19  ***************************************************************************/
   20 #include "editor.h"
   21 #include <QFile>
   22 #include <QFileDialog>
   23 #include <QMessageBox>
   24 #include <QTextStream>
   25 
   26 editor::editor(QWidget *parent) : QMainWindow(parent), ui(new Ui::editor)
   27 {
   28     this->setWindowFlags(Qt::WindowStaysOnTopHint);
   29     ui->setupUi(this);
   30 }
   31 editor::~editor()
   32 {
   33     delete ui;
   34 }
   35 void editor::about()
   36 {
   37     QMessageBox::about(this, tr("About Syntax Highlighter"),
   38                        tr("<p>The <b>Syntax Highlighter</b> example shows how "
   39                           "to perform simple syntax highlighting by subclassing "
   40                           "the QSyntaxHighlighter class and describing "
   41                           "highlighting rules using regular expressions.</p>"));
   42 }
   43 void editor::newFile()
   44 {
   45     ui->textEdit->clear();
   46 }
   47 void editor::openFile(const QString &path)
   48 {
   49     QString fileName = path;
   50     // if (fileName.isNull())
   51     fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "",
   52                                             "Files (*.js *.*)");
   53     if (!fileName.isEmpty())
   54     {
   55         QFile file(fileName);
   56         if (file.open(QFile::ReadOnly | QFile::Text))
   57             ui->textEdit->setPlainText(file.readAll());
   58     }
   59 }
   60 void editor::setupEditor()
   61 {
   62     QFont font;
   63     font.setFamily("Courier");
   64     font.setFixedPitch(true);
   65     font.setPointSize(10);
   66 
   67     ui->textEdit = new QTextEdit;
   68     ui->textEdit->setFont(font);
   69     QFile file("mainwindow.h");
   70     if (file.open(QFile::ReadOnly | QFile::Text))
   71         ui->textEdit->setPlainText(file.readAll());
   72 }
   73 void editor::on_actionOpen_triggered()
   74 {
   75     openFile("");
   76 }
   77 void editor::save()
   78 {
   79     if (filename.isEmpty())
   80     {
   81         saveAs();
   82         return;
   83     }
   84     QString text = ui->textEdit->toPlainText();
   85     QFile f(filename);
   86     if (!f.open(QIODevice::ReadOnly | QIODevice::Text))
   87     {
   88         statusBar()->showMessage(tr("Could not write to %1").arg(filename), 2000);
   89         return;
   90     }
   91 
   92     QTextStream t(&f);
   93     t << text;
   94     f.close();
   95     statusBar()->showMessage(tr("File %1 saved").arg(filename), 2000);
   96 }
   97 void editor::saveAs()
   98 {
   99     QString fn = QFileDialog::getSaveFileName(this, tr("Save file"), "",
  100                  tr("All Files (*.*)"));
  101 
  102     if (!fn.isEmpty())
  103     {
  104         filename = fn;
  105         save();
  106     }
  107     else
  108     {
  109         statusBar()->showMessage(tr("Saving aborted"), 2000);
  110     }
  111     workfile = fn;
  112 }
  113 void editor::on_actionNew_triggered()
  114 {
  115     newFile();
  116 }
  117 void editor::on_actionAbout_triggered()
  118 {
  119     about();
  120 }
  121 void editor::on_actionSave_triggered()
  122 {
  123     save();
  124 }
  125 void editor::on_actionSave_As_triggered()
  126 {
  127     saveAs();
  128 }
  129 void editor::on_actionExit_triggered()
  130 {
  131     this->close();
  132 }
  133 void editor::on_actionUndo_triggered()
  134 {
  135     ui->textEdit->undo();
  136 }
  137 void editor::on_actionRedo_triggered()
  138 {
  139     ui->textEdit->redo();
  140 }
  141 void editor::on_actionCut_triggered()
  142 {
  143     ui->textEdit->cut();
  144 }
  145 void editor::on_actionCopy_triggered()
  146 {
  147     ui->textEdit->copy();
  148 }
  149 
  150 void editor::on_actionAbout_MathMod_triggered()
  151 {
  152     ab.show();
  153 }
  154 void editor::on_actionPaste_triggered()
  155 {
  156     ui->textEdit->paste();
  157 }