File failed to load: https://isis.astrogeology.usgs.gov/6.0.0/Object/assets/jax/output/NativeMML/config.js
Isis 3 Programmer Reference
CloseProjectWorkOrder.cpp
1 
7 /* SPDX-License-Identifier: CC0-1.0 */
8 
9 #include "CloseProjectWorkOrder.h"
10 
11 #include <QCoreApplication>
12 #include <QDebug>
13 #include <QFileDialog>
14 #include <QMessageBox>
15 #include <QtConcurrentMap>
16 
17 #include "SaveProjectWorkOrder.h"
18 #include "Project.h"
19 
20 namespace Isis {
21 
29  WorkOrder(project) {
30  QAction::setText(tr("&Close Project"));
31  QUndoCommand::setText(tr("Close Project"));
32  m_isSavedToHistory = false;
33  m_isUndoable = false;
35  }
36 
41  WorkOrder(other) {
42  }
43 
48 
49  }
50 
57  return new CloseProjectWorkOrder(*this);
58  }
59 
66 // return (project());
67  return true;
68  }
69 
76  bool success = WorkOrder::setupExecution();
77  if (success && !project()->isClean()) {
78  QMessageBox *box = new QMessageBox(QMessageBox::NoIcon,
79  QString("Current Project Has Unsaved Changes"),
80  QString("Would you like to save your current project?"),
81  NULL, qobject_cast<QWidget *>(parent()), Qt::Dialog);
82  QPushButton *save = box->addButton("Save", QMessageBox::AcceptRole);
83  QPushButton *dontsave = box->addButton("Don't Save", QMessageBox::RejectRole);
84  QPushButton *cancel = box->addButton("Cancel", QMessageBox::NoRole);
85  box->exec();
86 
87  if (box->clickedButton() == (QAbstractButton*)cancel) {
88  success = false;
89  }
90 
91  else if (box->clickedButton() == (QAbstractButton*)dontsave) {
92  success = true;
93  }
94 
95  else if (box->clickedButton() == (QAbstractButton*)save) {
97  project()->addToProject(workOrder);
98  }
99  }
100  return success;
101  }
102 
107  project()->clear();
108  project()->setClean(true);
109  }
110 }
SaveProjectWorkOrder.h
Isis::SaveProjectWorkOrder
Saves a project to disk (File->Save Project...)
Definition: SaveProjectWorkOrder.h:47
Isis::CloseProjectWorkOrder::~CloseProjectWorkOrder
~CloseProjectWorkOrder()
Destructor.
Definition: CloseProjectWorkOrder.cpp:47
Isis::WorkOrder::setupExecution
virtual bool setupExecution()
This sets up the state for the work order.
Definition: WorkOrder.cpp:1261
Isis::CloseProjectWorkOrder::clone
virtual CloseProjectWorkOrder * clone() const
This method clones the CloseProjectWorkOrder.
Definition: CloseProjectWorkOrder.cpp:56
Isis::WorkOrder
Provide Undo/redo abilities, serialization, and history for an operation.
Definition: WorkOrder.h:311
Project.h
Isis::WorkOrder::m_isSavedToHistory
bool m_isSavedToHistory
Set the work order to be shown in the HistoryTreeWidget.
Definition: WorkOrder.h:537
Isis::CloseProjectWorkOrder::execute
void execute()
@description Clear the current Project
Definition: CloseProjectWorkOrder.cpp:106
Isis::WorkOrder::save
void save(QXmlStreamWriter &stream) const
: Saves a WorkOrder to a data stream.
Definition: WorkOrder.cpp:544
Isis::Project::clear
void clear()
Function to clear out all values in a project essentially making it a new project object.
Definition: Project.cpp:459
Isis::CloseProjectWorkOrder
This opens a project that's saved on disk.
Definition: CloseProjectWorkOrder.h:35
Isis::Project
The main project for ipce.
Definition: Project.h:289
Isis::Project::addToProject
void addToProject(WorkOrder *)
This executes the WorkOrder and stores it in the project.
Definition: Project.cpp:2598
Isis::WorkOrder::m_isUndoable
bool m_isUndoable
Set the workorder to be undoable/redoable This is defaulted to true - his will allow the workorder to...
Definition: WorkOrder.h:523
Isis::CloseProjectWorkOrder::isExecutable
virtual bool isExecutable()
This method will always return true.
Definition: CloseProjectWorkOrder.cpp:65
Isis::WorkOrder::project
Project * project() const
Returns the Project this WorkOrder is attached to.
Definition: WorkOrder.cpp:1300
Isis::WorkOrder::setCreatesCleanState
void setCreatesCleanState(bool createsCleanState)
Declare that this work order is saving the project.
Definition: WorkOrder.cpp:1663
Isis::CloseProjectWorkOrder::CloseProjectWorkOrder
CloseProjectWorkOrder(Project *project)
This method sets the text of the work order to Close Project and sets setCreatesCleanState to true.
Definition: CloseProjectWorkOrder.cpp:28
Isis::Project::setClean
void setClean(bool value)
Function to change the clean state of the project.
Definition: Project.cpp:1595
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::CloseProjectWorkOrder::setupExecution
bool setupExecution()
If WorkOrder::execute() returns true, then this method returns true.
Definition: CloseProjectWorkOrder.cpp:75

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the USGS Astrogeology Discussion Board
To report a bug, or suggest a feature go to: ISIS Github
File Modified: 07/13/2023 15:16:16