void MainWindow::on_actionClose_Project_triggered()
{
    if (Workspace::Instance.GetCurrentProject() == nullptr)
        return;

    bool cancel = false;

    if (!Workspace::Instance.IsCurrentProjectPersistent())
    {
        QMessageBox msgBox;
        msgBox.setWindowTitle(QString("Pitanje"));
        msgBox.setText(QString("Želite li da sačuvate promene?"));

        msgBox.setIcon(QMessageBox::Question);
        msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel);
        msgBox.setDefaultButton(QMessageBox::Yes);
        int ret = msgBox.exec();

        if (ret == QMessageBox::Yes)
        {
            Workspace::Instance.SaveCurrentProject();
        }
        else if (ret == QMessageBox::Cancel)
        {
            cancel = true;
        }
    }

    if (!cancel)
    {
        Workspace::Instance.CloseCurrentProject();

        QModelIndex index = ui->treeView->currentIndex();

        if (index.isValid())
        {
            ProjectItem* item = (ProjectItem*) Workspace::Instance.GetProjectsModel()->itemFromIndex(index);

            if (item->IsDocument())
            {
                ProjectItem* parent = (ProjectItem*) item->parent();
                Workspace::Instance.SetCurrent(parent->GetName(), item->GetName());
            }
            else
            {
                Workspace::Instance.SetCurrent(item->GetName());
            }
        }

        RefreshImage();
    }
}
void MainWindow::on_treeView_customContextMenuRequested(const QPoint &pt)
{
    QPoint globalPt = ui->treeView->mapToGlobal(pt);
    QModelIndex index = ui->treeView->indexAt(pt);

    QMenu menu;

    if (index.isValid())
    {
        on_treeView_clicked(index);

        ProjectItem* item = (ProjectItem*) Workspace::Instance.GetProjectsModel()->itemFromIndex(index);

        switchToAct->setEnabled(!item->IsSelected());
        menu.addAction(switchToAct);

        if(!item->IsDocument())
        {
            menu.addAction(addImageAct);
            menu.addSeparator();
            menu.addAction(saveProjctAct);
            menu.addAction(closeProjectAct);
            menu.addSeparator();
        }
        else
        {
            menu.addAction(removeImageAct);
            menu.addSeparator();
        }
    }

    menu.addAction(newProjectAct);
    menu.addAction(openProjectAct);
    menu.addSeparator();
    menu.addAction(saveAllAct);
    menu.addAction(closeAllAct);

    menu.exec(globalPt);
}
void MainWindow::on_actionRemove_Image_triggered()
{
    Workspace::Instance.RemoveCurrentDocument();

    QModelIndex index = ui->treeView->currentIndex();

    if (index.isValid())
    {
        ProjectItem* item = (ProjectItem*) Workspace::Instance.GetProjectsModel()->itemFromIndex(index);

        if (item->IsDocument())
        {
            ProjectItem* parent = (ProjectItem*) item->parent();
            Workspace::Instance.SetCurrent(parent->GetName(), item->GetName());
        }
        else
        {
            Workspace::Instance.SetCurrent(item->GetName());
        }
    }

    RefreshImage();
}