Advertisement
Guest User

Untitled

a guest
Dec 25th, 2017
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.91 KB | None | 0 0
  1.  
  2. #include "notepadwindow.h"
  3. #include "ui_notepadwindow.h"
  4.  
  5.  
  6. NotepadWindow::NotepadWindow(QWidget *parent) :
  7.     QMainWindow(parent),
  8.     ui(new Ui::NotepadWindow)
  9.  
  10. {
  11.     ui->setupUi(this);
  12.     ui->actionBold->setCheckable(true);
  13.     ui->actionItalics->setCheckable(true);
  14.     ui->actionUnderline->setCheckable(true);
  15.     ui->actionLeft->setCheckable(true);
  16.     ui->actionRight->setCheckable(true);
  17.     ui->actionCenter->setCheckable(true);
  18.     ui->actionJustify->setCheckable(true);
  19.     this->setCentralWidget(ui->textEdit); // Wyśrodkuj Pole tekstowe
  20.     myComboBox = new QComboBox;
  21.     ui->mainToolBar->addWidget(myComboBox);
  22.     for (int i = 1; i < 102; i += 2) {
  23.         myComboBox->addItem(QString::number(i));
  24.     }
  25.     myComboBox->setCurrentText("11");
  26.     ui->textEdit->setFontPointSize(11);
  27.     ui->actionLeft->setChecked(true);
  28.     ui->actionRight->setChecked(false);
  29.     ui->actionCenter->setChecked(false);
  30.     ui->actionJustify->setChecked(false);
  31.  
  32.     QObject::connect(myComboBox, SIGNAL(currentTextChanged(QString)), this, SLOT(onFontSizeChanged(QString)));
  33.  
  34.     QObject::connect(ui->textEdit, SIGNAL(currentCharFormatChanged(QTextCharFormat)), this, SLOT(on_currentCharFormatChanged(QTextCharFormat)));
  35.     QObject::connect(ui->textEdit, SIGNAL(cursorPositionChanged()), this, SLOT(on_cursorPositionChanged()));
  36. }
  37.  
  38.  
  39. NotepadWindow::~NotepadWindow()
  40. {
  41.     delete ui;
  42. }
  43.  
  44. void NotepadWindow::on_currentCharFormatChanged(QTextCharFormat format){
  45.     qDebug() << format << endl;
  46.  
  47.     /**
  48.       Check for Bold/Normal fontWeight
  49.     **/
  50.     qDebug() << "fontWeight : " << format.fontWeight() << endl;
  51.     if(format.fontWeight() == QFont::Normal){
  52.         ui->actionBold->setChecked(false);
  53.     }else if(format.fontWeight() == QFont::Bold){
  54.         ui->actionBold->setChecked(true);
  55.     }
  56.  
  57.     /**
  58.       Check for Italic
  59.     **/
  60.     qDebug() << "italic : " << format.fontItalic() << endl;
  61.     if(format.fontItalic() == false){
  62.         ui->actionItalics->setChecked(false);
  63.     }else if(format.fontItalic() == true){
  64.         ui->actionItalics->setChecked(true);
  65.     }
  66.  
  67.     /**
  68.       Check for Underlined
  69.     **/
  70.     qDebug() << "underlined : " << format.fontUnderline() << endl;
  71.     if(format.fontUnderline() == false){
  72.         ui->actionUnderline->setChecked(false);
  73.     }else if(format.fontUnderline() == true){
  74.         ui->actionUnderline->setChecked(true);
  75.     }
  76.  
  77.  
  78.     /**
  79.       Get the actual fontPointSize (format.fontPointSitze) of text and change it to the comboBox (by searching the index)
  80.     **/
  81.     qDebug() << "fontPointSize : " << format.fontPointSize() << endl;
  82.     qDebug() << "findText : " << myComboBox->findText(QString::number(format.fontPointSize())) << endl;
  83.     myComboBox->setCurrentIndex(myComboBox->findText(QString::number(format.fontPointSize())));
  84.  
  85. }
  86.  
  87. void NotepadWindow::on_cursorPositionChanged(){
  88.     qDebug() << "alignment: " << ui->textEdit->alignment() << endl;
  89.     if(ui->textEdit->alignment() == Qt::AlignLeft){
  90.         on_actionLeft_triggered();
  91.     }else if(ui->textEdit->alignment() == Qt::AlignCenter){
  92.         on_actionCenter_triggered();
  93.     }else if(ui->textEdit->alignment() == Qt::AlignRight){
  94.         on_actionRight_triggered();
  95.     }else if(ui->textEdit->alignment() == Qt::AlignJustify){
  96.         on_actionJustify_triggered();
  97.     }
  98. }
  99.  
  100. void NotepadWindow::onFontSizeChanged(QString selected)
  101. {
  102.     ui->textEdit->setFontPointSize(selected.toInt());
  103. }
  104.  
  105. void NotepadWindow::openfile(QString textfile)
  106. {
  107.     QFile sFile(textfile);
  108.     if(sFile.open(QFile::ReadOnly | QFile::Text)) // Jeśli plik jest otwarty
  109.     {
  110.         mFilename = textfile;
  111.         QTextStream in(&sFile);
  112.         in.setCodec("UTF-8"); // Ustaw kodowania znaków na UTF-8
  113.         QString text = in.readAll();
  114.         sFile.close();
  115.         ui->textEdit->setHtml(text);
  116.     }
  117. }
  118.  
  119. void NotepadWindow::on_actionUndo_triggered()
  120. {
  121.     ui->textEdit->undo();
  122. }
  123.  
  124. void NotepadWindow::on_actionRedo_triggered()
  125. {
  126.     ui->textEdit->redo();
  127. }
  128.  
  129. void NotepadWindow::on_actionCut_triggered()
  130. {
  131.     ui->textEdit->cut();
  132. }
  133.  
  134. void NotepadWindow::on_actionCopy_triggered()
  135. {
  136.     ui->textEdit->copy();
  137. }
  138.  
  139. void NotepadWindow::on_actionPaste_triggered()
  140. {
  141.     ui->textEdit->paste();
  142. }
  143.  
  144. void NotepadWindow::on_actionNew_triggered()
  145. {
  146.     mFilename = "";
  147.     ui->textEdit->setPlainText("");
  148. }
  149.  
  150. void NotepadWindow::on_actionOpen_triggered()
  151. {
  152.     QString file = QFileDialog::getOpenFileName(this, "open"); // Otwórz okienko wyboru plików
  153.     if(!file.isEmpty())        // Jeśli plik nie jest pusty
  154.     {
  155.         QFile sFile(file);
  156.         if(sFile.open(QFile::ReadOnly | QFile::Text)) // Jeśli plik jest otwarty
  157.         {
  158.             mFilename = file;
  159.             QTextStream in(&sFile);
  160.             in.setCodec("UTF-8"); // Ustaw kodowania znaków na UTF-8
  161.             QString text = in.readAll();
  162.             sFile.close();
  163.             ui->textEdit->setHtml(text);
  164.         }
  165.     }
  166. }
  167.  
  168. void NotepadWindow::on_actionSave_triggered()
  169. {
  170.     QFile sFile(mFilename);
  171.     if(sFile.open(QFile::WriteOnly | QFile::Text)) // Jeśli plik jest otwarty
  172.     {
  173.         QTextStream out(&sFile);
  174.         out << ui->textEdit->toHtml();
  175.         out.setCodec("UTF-8"); // Ustaw kodowania znaków na UTF-8
  176.         sFile.flush();
  177.         sFile.close();
  178.  
  179.     }
  180.     else if(!sFile.open(QFile::WriteOnly | QFile::Text)) on_actionSave_as_triggered();
  181. }
  182.  
  183. void NotepadWindow::on_actionSave_as_triggered()
  184. {
  185.     QString file = QFileDialog::getSaveFileName(this,  tr("Text File"), "", tr("Text files (*.txt)"));
  186.     if(!file.isEmpty())
  187.     {
  188.         mFilename = file;
  189.         on_actionSave_triggered();
  190.     }
  191. }
  192.  
  193.  
  194.  
  195.  
  196. void NotepadWindow::on_actionBold_triggered(bool checked)
  197. {
  198.     if(checked)
  199.     {
  200.         ui->textEdit->setFontWeight(QFont::Bold);
  201.     }
  202.     if(!checked)
  203.     {
  204.         ui->textEdit->setFontWeight(QFont::Normal);
  205.     }
  206.  
  207. }
  208.  
  209. void NotepadWindow::on_actionItalics_triggered(bool checked)
  210. {
  211.     if(checked)
  212.     {
  213.         ui->textEdit->setFontItalic(1);
  214.     }
  215.     if(!checked)
  216.     {
  217.         ui->textEdit->setFontItalic(0);
  218.     }
  219.  
  220. }
  221.  
  222. void NotepadWindow::on_actionUnderline_triggered(bool checked)
  223. {
  224.     if(checked)
  225.     {
  226.         ui->textEdit->setFontUnderline(1);
  227.     }
  228.     if(!checked)
  229.     {
  230.         ui->textEdit->setFontUnderline(0);
  231.     }
  232.  
  233. }
  234.  
  235. void NotepadWindow::on_actionLeft_triggered()
  236. {
  237.     ui->textEdit->setAlignment(Qt::AlignLeft);
  238.     ui->actionLeft->setChecked(true);
  239.     ui->actionRight->setChecked(false);
  240.     ui->actionCenter->setChecked(false);
  241.     ui->actionJustify->setChecked(false);
  242. }
  243.  
  244. void NotepadWindow::on_actionCenter_triggered()
  245. {
  246.     ui->textEdit->setAlignment(Qt::AlignCenter);
  247.     ui->actionLeft->setChecked(false);
  248.     ui->actionRight->setChecked(false);
  249.     ui->actionCenter->setChecked(true);
  250.     ui->actionJustify->setChecked(false);
  251. }
  252.  
  253. void NotepadWindow::on_actionRight_triggered()
  254. {
  255.     ui->textEdit->setAlignment(Qt::AlignRight);
  256.     ui->actionLeft->setChecked(false);
  257.     ui->actionRight->setChecked(true);
  258.     ui->actionCenter->setChecked(false);
  259.     ui->actionJustify->setChecked(false);
  260. }
  261.  
  262. void NotepadWindow::on_actionJustify_triggered()
  263. {
  264.     ui->textEdit->setAlignment(Qt::AlignJustify);
  265.     ui->actionLeft->setChecked(false);
  266.     ui->actionRight->setChecked(false);
  267.     ui->actionCenter->setChecked(false);
  268.     ui->actionJustify->setChecked(true);
  269. }
  270.  
  271. void NotepadWindow::on_actionPrint_triggered()
  272. {
  273.  
  274.     QPrinter printer;
  275.     printer.setPageSizeMM(QSize(210, 297));
  276.  
  277.     QPrintDialog *dialog = new QPrintDialog(&printer);
  278.     dialog->setWindowTitle("Print Document");
  279.  
  280.     QPainter painter;
  281.     painter.begin(&printer);
  282.  
  283.     QTextDocument td;
  284.     QSize size(793.7007874016, 1122.519685039);
  285.     td.setPageSize(size);
  286.     td.setHtml(ui->textEdit->toHtml());
  287.     td.drawContents(&painter);
  288.     //painter.drawText(printer.pageRect(), ui->textEdit->toPlainText());
  289.  
  290.     painter.end();
  291. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement