28 #include <QStringList> 30 #include <QXmlDefaultHandler> 35 class QXmlStreamWriter;
47 class BundleSolutionInfo;
51 class CorrelationMatrix;
335 QString
name()
const;
403 void save(
FileName projectPath,
bool verifyPathDoesntExist =
true);
407 template<
typename Data>
void warn(QString text, Data relevantData);
409 void warn(QString text);
562 void targetBodyClosed(
QObject *targetBodyObj);
566 void checkActiveControlAndImageList();
567 void checkControlsAndImagesAvailable();
572 void createFolders();
574 ControlList *createOrRetrieveControlList(QString
name, QString path =
"");
575 ImageList *createOrRetrieveImageList(QString
name, QString path =
"");
576 ShapeList *createOrRetrieveShapeList(QString
name, QString path =
"");
578 void writeSettings();
581 QString nextImageListGroupName();
585 void saveHistory(QXmlStreamWriter &stream)
const;
586 void saveWarnings(QXmlStreamWriter &stream)
const;
588 void storeWarning(QString text);
589 void storeWarning(QString text,
const ImageList &relevantData);
601 virtual bool startElement(
const QString &namespaceURI,
const QString &localName,
602 const QString &qName,
const QXmlAttributes &atts);
603 virtual bool endElement(
const QString &namespaceURI,
const QString &localName,
604 const QString &qName);
607 Q_DISABLE_COPY(XmlHandler);
621 static const int m_maxRecentProjects = 5;
623 QString m_newProjectRoot;
625 QDir m_currentCnetFolder;
626 QPointer<Directory> m_directory;
630 TargetBodyList *m_targets;
633 GuiCameraList *m_guiCameras;
636 QPointer<Control> m_activeControl;
637 QPointer<ImageList> m_activeImageList;
641 BundleSettings *m_bundleSettings;
662 QPointer<ImageReader> m_imageReader;
664 bool m_isTemporaryProject;
668 int m_numImagesCurrentlyReading;
671 QMutex *m_workOrderMutex;
672 QMutex *m_imageReadingMutex;
674 int m_numShapesCurrentlyReading;
675 QMutex *m_shapeMutex;
676 QPointer<ShapeReader> m_shapeReader;
677 QMutex *m_shapeReadingMutex;
679 QUndoStack m_undoStack;
void imageListAdded(ImageList *images)
Emitted when new ImageList added to Project receivers: ProjectTreeWidget.
This represents an ISIS control net in a project-based GUI interface.
Definition: Control.h:79
Internalizes a list of shapes and allows for operations on the entire list.
Definition: ShapeList.h:33
void waitForImageReaderFinished()
Locks program if another spot in code is still running and called this function.
Definition: Project.cpp:1732
QDir addImageFolder(QString prefix)
Create and return the name of a folder for placing images.
Definition: Project.cpp:1003
QString cnetRoot() const
Get where control networks ought to be stored inside the project.
Definition: Project.cpp:2029
Internalizes a list of images and allows for operations on the entire list.
Definition: ImageList.h:55
void activeControlModified()
Emmited in cnetModified() when the actice control is modified.
BundleSettings * bundleSettings()
Return BundleSettings objects in Project.
Definition: Project.h:390
QList< ShapeList * > shapes()
Return the projects shapelist.
Definition: Project.cpp:2106
The main project for ipce.
Definition: Project.h:289
bool isClean()
Accessor to determine whether the current project is Unsaved.
Definition: Project.cpp:1584
void removeImages(ImageList &imageList)
Definition: Project.cpp:2786
~Project()
Clean up the project.
Definition: Project.cpp:257
void projectSaved(Project *)
Emitted when project is saved.
void allControlsRemoved()
Emitted when all controls have been removed from the Project.
File name manipulation and expansion.
Definition: FileName.h:116
QList< WorkOrder * > workOrderHistory()
Get the entire list of work orders that have executed.
Definition: Project.cpp:1748
Container class for BundleAdjustment results.
Definition: BundleSolutionInfo.h:171
bool hasTarget(QString id)
This method checks for the existence of a target based on TargetName.
Definition: Project.cpp:2715
Control * control(QString id)
Accessor for if the project is clearing or not.
Definition: Project.cpp:1163
void addCamera(Camera *camera)
Adds a new camera to the project.
Definition: Project.cpp:2761
static int maxRecentProjects()
Return max number of recent projects to be displayed.
Definition: Project.h:396
QMutex * mutex()
Return mutex used for Naif calls.
Definition: Project.cpp:1658
WorkOrder * lastNotUndoneWorkOrder()
Return the last not undone workorder.
Definition: Project.cpp:1605
Shape * shape(QString id)
Return a shape given its id.
Definition: Project.cpp:1539
Maintains a list of Controls so that control nets can easily be copied from one Project to another...
Definition: ControlList.h:36
Definition: TemplateList.h:49
void open(QString)
Open the project at the given path.
Definition: Project.cpp:1345
void addTarget(Target *target)
Adds a new target to the project.
Definition: Project.cpp:2730
void removeTemplate(FileName file)
void addImagesToIdMap(ImageList images)
Add images to the id map which are not under the projects main data area, the Images node on the proj...
Definition: Project.cpp:2778
bool clearing()
Definition: Project.cpp:666
QString targetBodyRoot() const
Accessor for the root directory of the target body data.
Definition: Project.cpp:2186
void addControl(Control *control)
Add the given Control's to the current project.
Definition: Project.cpp:958
void controlsAndImagesAvailable()
Emitted when at least one cnet and image have been added to the project.
void controlListAdded(ControlList *controls)
apparently not used?
void activeControlAndImageListSet()
Emitted when both an active control and active image list have been set.
ControlList * controlList(QString name)
Return controlslist matching name in Project.
Definition: Project.cpp:2048
QList< TemplateList * > regTemplates()
Return registration template FileNames.
Definition: Project.cpp:2166
QList< TemplateList * > templates()
Return all template FileNames.
Definition: Project.cpp:2145
QUndoStack * undoStack()
Returns the Projects stack of QUndoCommands.
Definition: Project.cpp:1694
List for holding TargetBodies.
Definition: TargetBodyList.h:33
bool isTemporaryProject() const
Returns if the project is a temp project or not.
Definition: Project.cpp:1567
bool hasCamera(QString id)
This method checks for the existence of a camera based on InstrumentId.
Definition: Project.cpp:2745
QString imageDataRoot() const
Accessor for the root directory of the image data.
Definition: Project.cpp:2077
ShapeList * shapeList(QString name)
Return a shapelist given its name.
Definition: Project.cpp:1549
void clear()
Function to clear out all values in a project essentially making it a new project object...
Definition: Project.cpp:459
Control * activeControl()
Return the Active Control (control network)
Definition: Project.cpp:1903
void addTemplates(TemplateList *templateFiles)
Add new templates to m_mapTemplates or m_regTemplates and update project item model.
Definition: Project.cpp:1113
void projectLoaded(Project *)
Emitted when project loaded receivers: IpceMainWindow, Directory, HistoryTreeWidget.
QList< ImageList * > images()
Return projects imagelist.
Definition: Project.cpp:2115
void workOrderStarting(WorkOrder *)
Emitted when work order starts.
void waitForShapeReaderFinished()
Locks program if another spot in code is still running and called this function.
Definition: Project.cpp:1740
void relocateProjectRoot(QString newRoot)
This is called when the project is moved.
Definition: Project.cpp:2305
void setActiveControl(QString displayName)
Set the Active Control (control network)
Definition: Project.cpp:1819
QList< TemplateList * > mapTemplates()
Return map template FileNames.
Definition: Project.cpp:2156
void addBundleSolutionInfo(BundleSolutionInfo *bundleSolutionInfo)
Add the given BundleSolutionInfo to the current project.
Definition: Project.cpp:1194
QMutex * workOrderMutex()
This function returns a QMutex.
Definition: Project.cpp:2986
void discardActiveControlEdits()
Directory * directory() const
Returns the directory associated with this Project.
Definition: Project.cpp:1229
Q_DECLARE_METATYPE(Isis::Project *)
void addToProject(WorkOrder *)
This executes the WorkOrder and stores it in the project.
Definition: Project.cpp:2598
Provide Undo/redo abilities, serialization, and history for an operation.
Definition: WorkOrder.h:322
QString shapeDataRoot() const
Accessor for the root directory of the shape model data.
Definition: Project.cpp:2097
void bundleSolutionInfoAdded(BundleSolutionInfo *bundleSolutionInfo)
Emitted when new BundleSolutionInfo available from jigsaw receivers: ProjectTreeWidget (TODO: should ...
void cnetModified()
When a cnet is modified, set the project state to not clean.
Definition: Project.cpp:1924
void activeImageListSet()
Emitted when an active image list is set.
void deleteAllProjectFiles()
Delete all of the files, that this project stores, from disk.
Definition: Project.cpp:2251
Container class for BundleAdjustment settings.
Definition: BundleSettings.h:138
void loadBundleSolutionInfo(BundleSolutionInfo *bundleSolutionInfo)
Loads bundle solution info into project.
Definition: Project.cpp:1210
TargetBodyList targetBodies()
Return TargetBodyList in Project.
Definition: Project.cpp:2194
XML Handler that parses XMLs in a stack-oriented way.
Definition: XmlStackedHandler.h:112
void guiCamerasAdded(GuiCameraList *targets)
Emitted when new GuiCamera objects added to project receivers: Directory.
ImageList * activeImageList()
Returns the active ImageList.
Definition: Project.cpp:2003
void controlAdded(Control *control)
Emitted when new Control added to Project receivers: ProjectTreeWidget.
This represents a cube in a project-based GUI interface.
Definition: Image.h:107
QDir addBundleSolutionInfoFolder(QString folder)
Create and return the name of a folder for placing BundleSolutionInfo.
Definition: Project.cpp:1174
QString projectRoot() const
Get the top-level folder of the project.
Definition: Project.cpp:1666
void projectRelocated(Project *)
Emitted when project location moved receivers: Control, BundleSolutionInfo, Image, TargetBody.
void addShapes(QStringList shapeFiles)
Read the given shape model cube file names as Images and add them to the project. ...
Definition: Project.cpp:1089
QList< QAction * > userPreferenceActions()
Get a list of configuration/settings actions related to reading images into this Project.
Definition: Project.cpp:916
QList< ControlList * > controls()
Return controls in project.
Definition: Project.cpp:2038
Image * image(QString id)
Return an image given its id.
Definition: Project.cpp:1509
void shapesAdded(ShapeList *shapes)
Emitted when new shape model images are available.
QString newProjectRoot() const
Get the top-level folder of the new project.
Definition: Project.cpp:1675
void addImages(QStringList imageFiles)
Read the given cube file names as Images and add them to the project.
Definition: Project.cpp:1032
void warn(QString text, Data relevantData)
Definition: Project.cpp:2643
QString name() const
Get the project's GUI name.
Definition: Project.cpp:1625
This class is used to create and store valid Isis3 targets.
Definition: Target.h:76
QString templateRoot() const
Accessor for the root directory of the template data.
Definition: Project.cpp:2135
QDir addShapeFolder(QString prefix)
Create and return the name of a folder for placing shape models.
Definition: Project.cpp:1060
List of GuiCameras saved as QSharedPointers.
Definition: GuiCameraList.h:35
void nameChanged(QString newName)
Emitted when project name is changed receivers: ProjectTreeWidget.
void imagesAdded(ImageList *images)
Emitted when new images are available.
bool save()
Generic save method to save the state of the project.
Definition: Project.cpp:2324
void setActiveImageList(QString displayName)
Set the Active ImageList from the displayName which is saved in project.xml.
Definition: Project.cpp:1955
QList< BundleSolutionInfo * > bundleSolutionInfo()
Return BundleSolutionInfo objects in Project.
Definition: Project.cpp:2223
void cnetSaved(bool value)
Emmited in save() when the project is being saved Connected to Directory so that ControlPointEditWidg...
void setName(QString newName)
Change the project's name (GUI only, doesn't affect location on disk).
Definition: Project.cpp:1684
void activeControlSet(bool boolean)
Emitted when an active control is set.
This represents a shape in a project-based GUI interface.
Definition: Shape.h:78
QString resultsRoot() const
Accessor for the root directory of the results data.
Definition: Project.cpp:2214
void workOrderFinished(WorkOrder *)
Emitted when work order ends.
void templatesAdded(TemplateList *newTemplates)
Definition: BoxcarCachingAlgorithm.h:29
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
void writeSettings(FileName projName) const
QString bundleSolutionInfoRoot() const
Accessor for the root directory of the results data.
Definition: Project.cpp:2243
void targetsAdded(TargetBodyList *targets)
Emitted when new TargetBody objects added to project receivers: Directory.
QDir addTemplateFolder(QString prefix)
Create and navigate to the appropriate template type folder in the project directory.
Definition: Project.cpp:1134
Definition: Directory.h:285
QDir addCnetFolder(QString prefix)
Create and return the name of a folder for placing control networks.
Definition: Project.cpp:926
Definition: CubeIoHandler.h:38
bool isOpen()
Accessor to determine whether a current project is Open.
Definition: Project.cpp:1575
QProgressBar * progress()
Definition: Project.cpp:1499
void setClean(bool value)
Function to change the clean state of the project.
Definition: Project.cpp:1595
ImageList * imageList(QString name)
Return an imagelist given its name.
Definition: Project.cpp:1520
Project(Directory &directory, QObject *parent=0)
Create a new Project.
Definition: Project.cpp:88