netter 0.3.1

Netter is a CLI tool for fast and easy server startup!
#include "header.h"
#include <QHBoxLayout>
#include <QIcon>
#include <QPushButton>

Header::Header(QWidget *parent)
    : QWidget(parent)
{
    setObjectName("header");
    m_layout = new QHBoxLayout(this);
    m_layout->setContentsMargins(4, 4, 4, 4);
    m_layout->setSpacing(4);
    
    m_newButton = new QPushButton(tr("New"), this);
    m_openButton = new QPushButton(tr("Open"), this);
    m_saveButton = new QPushButton(tr("Save"), this);
    m_settingsButton = new QPushButton(tr("Settings"), this);
    
    m_startServerButton = new QPushButton(tr("Start Server"), this);
    m_stopServerButton = new QPushButton(tr("Stop Server"), this);
    m_restartServerButton = new QPushButton(tr("Restart Server"), this);
    
    m_layout->addWidget(m_newButton);
    m_layout->addWidget(m_openButton);
    m_layout->addWidget(m_saveButton);
    m_layout->addWidget(m_generateButton);
    m_layout->addStretch();
    m_layout->addWidget(m_startServerButton);
    m_layout->addWidget(m_stopServerButton);
    m_layout->addWidget(m_restartServerButton);
    m_layout->addStretch();
    m_layout->addWidget(m_settingsButton);
    
    connect(m_newButton, &QPushButton::clicked, this, &Header::newFileRequested);
    connect(m_openButton, &QPushButton::clicked, this, &Header::openFileRequested);
    connect(m_saveButton, &QPushButton::clicked, this, &Header::saveFileRequested);
    connect(m_generateButton, &QPushButton::clicked, this, &Header::generateRequested);
    connect(m_settingsButton, &QPushButton::clicked, this, &Header::settingsRequested);
    connect(m_startServerButton, &QPushButton::clicked, this, &Header::startServerRequested);
    connect(m_stopServerButton, &QPushButton::clicked, this, &Header::stopServerRequested);
    connect(m_restartServerButton, &QPushButton::clicked, this, &Header::restartServerRequested);
    
    setServerRunning(false);
}

void Header::setServerRunning(bool running)
{
    m_startServerButton->setVisible(!running);
    m_startServerButton->setEnabled(!running);
    
    m_stopServerButton->setVisible(running);
    m_stopServerButton->setEnabled(running);
    
    m_restartServerButton->setVisible(running);
    m_restartServerButton->setEnabled(running);
}

void Header::setupActions()
{
    m_newAction = m_toolbar->addAction(QIcon(":/assets/icons/new.png"), "New");
    m_openAction = m_toolbar->addAction(QIcon(":/assets/icons/open.png"), "Open");
    m_saveAction = m_toolbar->addAction(QIcon(":/assets/icons/save.png"), "Save");
    m_toolbar->addSeparator();
    m_generateAction = m_toolbar->addAction(QIcon(":/assets/icons/generate.png"), "Generate");
    m_toolbar->addSeparator();
    m_settingsAction = m_toolbar->addAction(QIcon(":/assets/icons/settings.png"), "Settings");
    
    connect(m_newAction, &QAction::triggered, this, &Header::newFileRequested);
    connect(m_openAction, &QAction::triggered, this, &Header::openFileRequested);
    connect(m_saveAction, &QAction::triggered, this, &Header::saveFileRequested);
    connect(m_generateAction, &QAction::triggered, this, &Header::generateRequested);
    connect(m_settingsAction, &QAction::triggered, this, &Header::settingsRequested);
}