Newer
Older
Import / applications / MakePDF / MdiChild.h
#ifndef MDI_CHILD_H
#define MDI_CHILD_H


#include <QTextEdit>
#include <QTextBrowser>
#include <QTabWidget>
class MarkdownHighlighter;


#define NON_TABBED_CHILD 1
#if NON_TABBED_CHILD
class MdiChild : public QTextEdit
#else
class MdiChild : public QTabWidget
#endif
{
    Q_OBJECT
public:
    MdiChild();
    ~MdiChild();

    void newFile();
    bool loadFile(const QString &fileName);
    bool save();
    bool saveAs();
    bool saveFile(const QString &fileName);
    QString userFriendlyCurrentFile();
    QString currentFile() { return curFile; }
    QString tmpFileName() { return tmpFile; } // For preview of PDF file

    QString currentStyle()    { return curStyle; }
    QString currentTemplate() { return curTemplate; }

    void markdownSelection(const char* preText, const char* postText);
    void insertText(const char* text);

    void bold();
    void italic();
    void quote();
    void code();
    void heading1();
    void heading2();
    void heading3();
    void heading4();
    void hyperlink();
    void image();
    void unorderedList();
    void orderedList();
    void horizontalRule();
    void timestamp();
    void pageNumber();
    void pageCount();
    void del();
    void undo();
    void redo();
    void find();
    void findNext();
    void findPrevious();
    void goToLine();

    void cut()               { return editor->cut(); }
    void copy()              { return editor->copy(); }
    void paste()             { return editor->paste(); }
    void selectAll()         { return editor->selectAll(); } 
    QString toPlainText()    { return editor->toPlainText(); }
    bool hasSelection()      { return editor->textCursor().hasSelection(); }

signals:
    void closing();
    void documentContentsChanged();

private slots:
    void documentWasModified();

protected:
    void closeEvent(QCloseEvent *event) override;

private:
    bool maybeSave();
    void setCurrentFile(const QString &fileName);
    QString strippedName(const QString &fullFileName);
    void newTempName();

    QString curFile;
    QString tmpFile;
    bool isUntitled;

    QString curStyle;
    QString curTemplate;

    QTextEdit* editor;
    QTextEdit* preview;
    MarkdownHighlighter* highlighter;
    //QTextBrowser preview;
};


#endif // MDI_CHILD_H