#include "LicenseCheck.h"
#ifdef GUI_APP
# include <QFileOpenEvent>
# include "ui.h"
#else
# include "DocConvert.h"
#endif
extern void runTests();
// This to support macOS 'open with' and dropping files on the app icon
class Application : public QApplication
{
public:
Application(int &argc, char **argv)
: QApplication(argc, argv)
{
}
bool event(QEvent *event) override
{
if (event->type() == QEvent::FileOpen)
{
QFileOpenEvent *openEvent = static_cast<QFileOpenEvent *>(event);
QString fileName = openEvent->file();
if (mainWindowPtr != 0)
mainWindowPtr->openFile(fileName);
}
return QApplication::event(event);
}
MdiWindow* mainWindowPtr = 0;
};
int main(int argc, char* argv[])
{
#ifdef GUI_APP
/*
// Qt MDI Example does this:
Q_INIT_RESOURCE(mdi);
QApplication app(argc, argv);
QCoreApplication::setApplicationVersion(QT_VERSION_STR);
*/
Application app(argc, argv);
// Fixes weird macOS splitter re-size issue when native mac widgets are involved
qApp->setAttribute(Qt::AA_DontCreateNativeWidgetSiblings);
// Parse command-line arguments
QCommandLineParser parser;
parser.setApplicationDescription("MagicDocs");
parser.addHelpOption();
parser.addVersionOption();
parser.addPositionalArgument("file", "The markdown file to edit.");
parser.process(app);
UiContext ui;
ui.setupUi();
foreach (const QString &fileName, parser.positionalArguments())
ui.mainWindow.openFile(fileName);
app.mainWindowPtr = &ui.mainWindow;
//YQ_LOG_DEBUG("This is a test message");
//runTests();
app.exec();
#else
if (!CheckLicense())
return 1;
DocConvert convertor;
convertor.SetTitle("Test Markdown to PDF");
convertor.SetSource("test/test.md");
convertor.OutputHTML("test/test.html");
convertor.OutputPDF("test/test.pdf");
#endif
return 0;
}