#include "export-orgmode.h"

#include "mainwindow.h"
#include <QMessageBox>

extern Main *mainWindow;

ExportOrgMode::ExportOrgMode()
{
    exportName = "OrgMode";
    filter = "org-mode (*.org);;All (* *.*)";
}

void ExportOrgMode::doExport()
{
    // Exports a map to an org-mode file.
    // This file needs to be read
    // by EMACS into an org mode buffer
    QFile file(filePath);
    if (!file.open(QIODevice::WriteOnly)) {
        QMessageBox::critical(
            0, QObject::tr("Critical Export Error"),
            QObject::tr("Could not export as OrgMode to %1").arg(filePath));
        mainWindow->statusMessage(QString(QObject::tr("Export failed.")));
        return;
    }
    QTextStream ts(&file);
    ts.setCodec("UTF-8");

    // Main loop over all branches
    QString s;
    int i;
    BranchItem *cur = NULL;
    BranchItem *prev = NULL;
    model->nextBranch(cur, prev);
    while (cur) {
        if (!cur->hasHiddenExportParent()) {
            for (i = 0; i <= cur->depth(); i++)
                ts << ("*");
            ts << (" " + cur->getHeadingPlain() + "\n");
            // If necessary, write note
            if (!cur->isNoteEmpty()) {
                ts << (cur->getNoteASCII(0, 80));
                ts << ("\n");
            }
        }
        model->nextBranch(cur, prev);
    }
    file.close();

    result = ExportBase::Success;

    displayedDestination = filePath;
    completeExport();
}
