summaryrefslogtreecommitdiff
path: root/seentl.cpp
blob: 8c6e84e315fcb886f9f0af0bbed7dd4809cf6884 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "seentl.h"
#include "ui_seentl.h"
#include <QHeaderView>
#include <QFileDialog>
#include <QMessageBox>
#include <QDebug>

SEENTL::SEENTL(QWidget *parent)
    : QMainWindow(parent), ui(new Ui::SEENTLClass)
{
    ui->setupUi(this);

    // some settings to make the lines table look good
    ui->lines->verticalHeader()->setDefaultSectionSize(ui->lines->fontMetrics().height()+1);
    ui->lines->horizontalHeader()->setVisible(0);
    ui->lines->verticalHeader()->setVisible(0);
    ui->lines->setModel(&script);
    ui->lines->horizontalHeader()->setResizeMode(0, QHeaderView::ResizeToContents);
    ui->lines->horizontalHeader()->setResizeMode(1, QHeaderView::Stretch);
    ui->lines->horizontalHeader()->setResizeMode(2, QHeaderView::Stretch);
    ui->lines->horizontalHeader()->setResizeMode(3, QHeaderView::Fixed);
    ui->lines->horizontalHeader()->resizeSection(3, 100);

    connect(ui->actionOpen, SIGNAL(triggered()), this, SLOT(openScript()));
    connect(ui->actionClose, SIGNAL(triggered()), this, SLOT(closeScript()));
    connect(ui->actionExit, SIGNAL(triggered()), this, SLOT(closeApp()));
}

SEENTL::~SEENTL()
{
    delete ui;
}

void SEENTL::openScript()
{
    closeScript();
    QString fn = QFileDialog::getOpenFileName(this, "Open File", "", "Script files (*.utf)");
    if(fn == "")
        return;
    QFileInfo fi(fn);
    if(!fi.exists() || !fi.isFile() || !fi.isReadable() || !fi.isWritable()) {
        QMessageBox::critical(this, "Can't open file", "File either doesn't exist or isn't readable and writable");
        return;
    }
    script.openScript(fn);
    file = fi;

    setWindowTitle(QString("%1 - SEENTL").arg(file.fileName()));
    ui->actionClose->setEnabled(1);
}

void SEENTL::closeScript()
{
    if(file.fileName() == "")
        return;
    // TODO; ask if opened script has changes
    script.closeScript();
    file.setFile("");
    ui->actionClose->setEnabled(0);
    setWindowTitle(QString("SEENTL"));
}

void SEENTL::closeApp()
{
    closeScript();
    close();
}