Added initial File boilerplate.

This commit is contained in:
Jim Evins
2014-09-01 23:26:20 -04:00
parent 06ff813618
commit b318efd68e
7 changed files with 260 additions and 35 deletions
+130 -3
View File
@@ -20,20 +20,147 @@
#include "File.h"
#include "MainWindow.h"
#include "LabelModel.h"
#include "NewLabelDialog.h"
#include <QFileDialog>
#include <QMessageBox>
#include <iostream>
namespace glabels
{
///
/// Open a New Label Dialog
/// New Label Dialog
///
void File::newLabel( QWidget *parent )
void File::newLabel( MainWindow *window )
{
NewLabelDialog newDialog( parent );
NewLabelDialog newDialog( window );
newDialog.exec();
}
///
/// Open File Dialog
///
void File::open( MainWindow *window )
{
QString fileName =
QFileDialog::getOpenFileName( window,
tr("Open label"),
".",
tr("glabels files (*.glabels);;All files (*)")
);
if ( !fileName.isEmpty() )
{
std::cout << "ACTION: file->Open: " << fileName.toStdString() << std::endl;
}
}
///
/// Save file
///
bool File::save( MainWindow *window )
{
if ( window->model()->filename().isEmpty() )
{
return saveAs( window );
}
else
{
std::cout << "ACTION: file->Save: " << window->model()->filename().toStdString() << std::endl;
return true;
}
}
///
/// Save file as
///
bool File::saveAs( MainWindow *window )
{
QString fileName =
QFileDialog::getSaveFileName( window,
tr("Save label"),
".",
tr("glabels files (*.glabels)")
);
if ( !fileName.isEmpty() )
{
std::cout << "ACTION: file->SaveAs: " << fileName.toStdString() << std::endl;
return true;
}
return false;
}
///
/// Print file
///
void File::print( MainWindow *window )
{
std::cout << "ACTION: file->print" << std::endl;
}
///
/// Close file
///
void File::close( MainWindow *window )
{
bool closeFlag = true;
if ( !window->isEmpty() )
{
QMessageBox msgBox;
msgBox.setText( tr("The document ") + window->model()->shortName() + tr(" has been modified.") );
msgBox.setInformativeText( tr("Do you want to save your changes?") );
msgBox.setStandardButtons( QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel );
msgBox.setDefaultButton( QMessageBox::Save );
int ret = msgBox.exec();
switch (ret) {
case QMessageBox::Save:
// Save was clicked
closeFlag = save( window );
break;
case QMessageBox::Discard:
// Don't Save was clicked
closeFlag = true;
break;
case QMessageBox::Cancel:
// Cancel was clicked
closeFlag = false;
break;
default:
// should never be reached
closeFlag = false;
break;
}
}
if ( closeFlag )
{
window->close();
}
}
///
/// Exit, closing all windows
///
void File::exit()
{
foreach ( MainWindow* window, MainWindow::windowList() )
{
close( window );
}
}
}