aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/sqlitestudiocli/clicommandexecutor.cpp
blob: 66707cc57cbaaec57a91144babc42e95b5176658 (plain) (blame)
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
#include "clicommandexecutor.h"
#include "commands/clicommand.h"

CliCommandExecutor::CliCommandExecutor(QObject *parent) :
    QObject(parent)
{
}

void CliCommandExecutor::execCommand(CliCommand* cmd)
{
    if (cmd->isAsyncExecution())
        connect(cmd, SIGNAL(execComplete()), this, SLOT(asyncExecutionComplete()));

    cmd->execute();
    if (!cmd->isAsyncExecution())
    {
        delete cmd;
        emit executionComplete();
    }
}

void CliCommandExecutor::asyncExecutionComplete()
{
    sender()->deleteLater();
    emit executionComplete();
}