27 #include <QApplication> 28 #include <QDockWidget> 29 #include <QGridLayout> 30 #include <QMainWindow> 33 #include <QMessageBox> 36 #include <QSizePolicy> 38 #include <QStringList> 41 #include <QXmlStreamWriter> 47 #include "ChipViewportsWidget.h" 53 #include "CnetEditorWidget.h" 56 #include "ControlList.h" 58 #include "ControlNetTool.h" 60 #include "ControlPointEditWidget.h" 63 #include "ExportControlNetWorkOrder.h" 64 #include "ExportImagesWorkOrder.h" 69 #include "HistoryTreeWidget.h" 73 #include "ImageFileListWidget.h" 79 #include "JigsawRunWidget.h" 81 #include "MatrixSceneWidget.h" 83 #include "MosaicControlNetTool.h" 84 #include "MosaicSceneWidget.h" 95 #include "SensorInfoWidget.h" 98 #include "TableView.h" 99 #include "TableViewContent.h" 100 #include "TargetInfoWidget.h" 102 #include "TemplateEditorWidget.h" 105 #include "WarningTreeWidget.h" 108 #include "XmlStackedHandler.h" 109 #include "XmlStackedHandlerReader.h" 126 "Could not create directory because Project could not be created.",
148 connect(
this, SIGNAL(cnetModified()),
m_project, SLOT(cnetModified()));
149 connect(
project(), SIGNAL(activeControlModified()),
this, SIGNAL(activeControlModified()));
152 connect(
m_project, SIGNAL(discardActiveControlEdits()),
157 connect(
m_projectItemModel, SIGNAL(cleanProject(
bool)),
this, SIGNAL(cleanProject(
bool)));
162 createWorkOrder<SetActiveImageListWorkOrder>();
163 createWorkOrder<SetActiveControlWorkOrder>();
164 createWorkOrder<CnetEditorViewWorkOrder>();
165 createWorkOrder<CubeDnViewWorkOrder>();
166 createWorkOrder<Footprint2DViewWorkOrder>();
167 createWorkOrder<MatrixViewWorkOrder>();
168 createWorkOrder<SensorGetInfoWorkOrder>();
170 createWorkOrder<TargetGetInfoWorkOrder>();
171 createWorkOrder<BundleObservationViewWorkOrder>();
172 createWorkOrder<TemplateEditViewWorkOrder>();
173 createWorkOrder<ControlHealthMonitorWorkOrder>();
189 m_recentProjectsLoaded =
false;
193 "Could not create directory because work orders are corrupt.",
304 emit directoryCleaned();
308 m_bundleObservationViews.clear();
313 m_controlPointEditViewWidget.clear();
334 if (m_recentProjectsLoaded) {
335 QMenu *recentProjectsMenu =
new QMenu(
"&Recent Projects");
339 QString actionText(action->text());
340 if (actionText ==
"&Recent Projects") {
342 recentProjectsMenu = qobject_cast<
QMenu*>(action->parentWidget());
350 openRecentProjectAction->setText(projName);
353 if (recentProjectsMenu->isEmpty())
355 recentProjectsMenu->addAction(openRecentProjectAction);
359 QAction *firstAction = recentProjectsMenu->actions().at(0);
362 if (firstAction->text() == projName) {
368 foreach (
QAction *action, recentProjectsMenu->actions()) {
369 if (action->text() == projName) {
370 openRecentProjectAction = action;
375 recentProjectsMenu->insertAction(firstAction, openRecentProjectAction);
377 recentProjectsMenu->removeAction(recentProjectsMenu->actions().last());
383 QMenu *recentProjectsMenu = fileMenu->addMenu(
"&Recent Projects");
386 for (
int i = 0; i < nRecentProjects; i++) {
400 openRecentProjectAction->setText(
m_recentProjects.at(i).split(
"/").last() );
402 recentProjectsMenu->addAction(openRecentProjectAction);
404 fileMenu->addSeparator();
406 m_recentProjectsLoaded =
true;
430 openProjectAction->setIcon(QIcon(
FileName(
431 "$base/icons/archive-insert-directory.png").expanded()));
432 fileMenu->addAction(openProjectAction);
437 saveAction->setShortcut(Qt::Key_S | Qt::CTRL);
438 saveAction->setIcon( QIcon(
FileName(
"$base/icons/document-save.png")
440 saveAction->setDisabled(
true);
441 connect(
project()->undoStack(), SIGNAL( cleanChanged(
bool) ),
442 saveAction, SLOT( setDisabled(
bool) ) );
443 fileMenu->addAction(saveAction);
447 saveAsAction->setIcon(QIcon(
FileName(
"$base/icons/document-save-as.png")
449 fileMenu->addAction(saveAsAction);
452 fileMenu->addSeparator();
454 QMenu *importMenu = fileMenu->addMenu(
"&Import");
459 QMenu *importTemplateMenu = importMenu->addMenu(
"&Import Templates");
463 QMenu *exportMenu = fileMenu->addMenu(
"&Export");
469 clone->setEnabled(
false);
471 clone, SLOT(enableWorkOrder()));
475 exportMenu->addAction(clone);
479 clone->setEnabled(
false);
481 clone, SLOT(enableWorkOrder()));
482 exportMenu->addAction(clone);
484 fileMenu->addSeparator();
495 if (
project()->controls().count() &&
project()->images().count()) {
496 clone->setEnabled(
true);
499 clone->setEnabled(
false);
503 connect(
m_project, SIGNAL(controlsAndImagesAvailable()),
504 clone, SLOT(enableWorkOrder()));
567 emit closeView(cnetEditorView);
583 if (newControl && m_controlPointEditViewWidget) {
584 emit closeView(m_controlPointEditViewWidget);
585 delete m_controlPointEditViewWidget;
619 connect( result, SIGNAL( destroyed(
QObject *) ),
622 connect(result, SIGNAL(windowChangeEvent(
bool)),
625 m_bundleObservationViews.append(result);
627 QString str = fileItem->fileName();
628 FileName fileName = fileItem->fileName();
632 int pos = path.lastIndexOf(
"/");
633 QString bundleResultsName =
"";
635 bundleResultsName = path.remove(0,pos+1);
638 if (str.contains(
"bundleout")) {
639 result->setWindowTitle( tr(
"Summary (%1)").
640 arg( bundleResultsName ) );
641 result->setObjectName( result->windowTitle() );
643 if (str.contains(
"residuals")) {
644 result->setWindowTitle( tr(
"Measure Residuals (%1)").
645 arg( bundleResultsName ) );
646 result->setObjectName( result->windowTitle() );
648 else if (str.contains(
"points")) {
649 result->setWindowTitle( tr(
"Control Points (%1)").
650 arg( bundleResultsName ) );
651 result->setObjectName( result->windowTitle() );
653 else if (str.contains(
"images")) {
654 result->setWindowTitle( tr(
"Images (%1)").
655 arg( bundleResultsName ) );
656 result->setObjectName( result->windowTitle() );
659 emit newWidgetAvailable(result);
673 FileName configFile(
"$HOME/.Isis/" + QApplication::applicationName() +
"/" + title +
".config");
677 if (
project()->activeControl() && (control ==
project()->activeControl())) {
683 connect(result, SIGNAL( destroyed(
QObject *) ),
686 connect(result, SIGNAL(windowChangeEvent(
bool)),
694 connect(result->
cnetEditorWidget(), SIGNAL(cnetModified()),
this, SIGNAL(cnetModified()));
695 connect(
this, SIGNAL(cnetModified()), result->
cnetEditorWidget(), SLOT(rebuildModels()));
700 result->setWindowTitle(title);
701 if (objectName !=
"") {
702 result->setObjectName(objectName);
706 QString newObjectName = QUuid::createUuid().toString().remove(QRegExp(
"[{}]"));
707 result->setObjectName(newObjectName);
710 emit newWidgetAvailable(result);
724 connect( result, SIGNAL( destroyed(
QObject *) ),
727 connect(result, SIGNAL(windowChangeEvent(
bool)),
732 if (objectName !=
"") {
733 result->setObjectName(objectName);
737 QString newObjectName = QUuid::createUuid().toString().remove(QRegExp(
"[{}]"));
738 result->setObjectName(newObjectName);
741 emit newWidgetAvailable(result);
756 connect(
this, SIGNAL(redrawMeasures()), result, SIGNAL(redrawMeasures()));
759 connect(
this, SIGNAL(activeControlModified()), result, SIGNAL(redrawMeasures()));
761 connect (
project(), SIGNAL(activeControlSet(
bool)),
762 result, SLOT(enableControlNetTool(
bool)));
779 if (objectName !=
"") {
780 result->setObjectName(objectName);
784 QString newObjectName = QUuid::createUuid().toString().remove(QRegExp(
"[{}]"));
785 result->setObjectName(newObjectName);
788 connect(result, SIGNAL(destroyed(
QObject *)),
791 connect(result, SIGNAL(windowChangeEvent(
bool)),
794 emit newWidgetAvailable(result);
809 connect(
this, SIGNAL(activeControlModified()), result->
mosaicSceneWidget(), SIGNAL(cnetModified()));
815 connect(
this, SIGNAL(redrawMeasures()), result, SIGNAL(redrawMeasures()));
817 connect (
project(), SIGNAL(activeControlSet(
bool)),
818 result, SLOT(enableControlNetTool(
bool)));
824 return m_controlHealthMonitorView;
830 if (!controlHealthMonitorView()) {
833 if (activeControl == NULL) {
834 QString message =
"No active control network chosen. Choose active control network on " 836 QMessageBox::critical(qobject_cast<QWidget *>(parent()),
"Error", message);
841 result->setWindowTitle(tr(
"Control NetHealth Monitor"));
842 result->setObjectName(result->windowTitle());
844 m_controlHealthMonitorView = result;
845 emit newWidgetAvailable(result);
847 return controlHealthMonitorView();
856 result->setWindowTitle(tr(
"Control Point Editor"));
857 result->setObjectName(result->windowTitle());
860 if (activeControl == NULL) {
862 QString message =
"No active control network chosen. Choose active control network on " 864 QMessageBox::critical(qobject_cast<QWidget *>(parent()),
"Error", message);
869 if (!
project()->activeImageList() || !
project()->activeImageList()->serialNumberList()) {
870 QString message =
"No active image list chosen. Choose an active image list on the project " 872 QMessageBox::critical(qobject_cast<QWidget *>(parent()),
"Error", message);
876 project()->activeImageList()->serialNumberList());
878 m_controlPointEditViewWidget = result;
880 connect(result, SIGNAL(destroyed(
QObject *)),
882 emit newWidgetAvailable(result);
900 this, SIGNAL(cnetModified()));
902 connect (
project(), SIGNAL(activeControlSet(
bool)),
905 connect(result, SIGNAL(windowChangeEvent(
bool)),
909 connect(
m_project, SIGNAL(cnetSaved(
bool)),
923 connect(result, SIGNAL(destroyed(
QObject *)),
this, SLOT(cleanupchipViewportWidges()));
924 m_controlPointChipViews.append(result);
925 result->setWindowTitle(tr(
"ChipViewport View %1").arg(m_controlPointChipViews.count()));
926 result->setObjectName(result->windowTitle());
927 emit newWidgetAvailable(result);
941 connect( result, SIGNAL( destroyed(
QObject *) ),
947 result->setObjectName( result->windowTitle() );
949 emit newWidgetAvailable(result);
962 connect( result, SIGNAL( destroyed(
QObject *) ),
967 result->setWindowTitle( tr(
"%1").arg(target->displayProperties()->displayName() ) );
968 result->setObjectName( result->windowTitle() );
970 emit newWidgetAvailable(result);
983 connect( result, SIGNAL( destroyed(
QObject *) ),
988 result->setWindowTitle( tr(
"%1").arg(
FileName(currentTemplate->
fileName()).name() ) );
989 result->setObjectName( result->windowTitle() );
991 emit newWidgetAvailable(result);
997 if (jigsawRunWidget()) {
1002 connect( result, SIGNAL( destroyed(
QObject *) ),
1003 this, SLOT( cleanupJigsawRunWidget(
QObject *) ) );
1006 result->setAttribute(Qt::WA_DeleteOnClose);
1009 emit newWidgetAvailable(result);
1021 connect( result, SIGNAL( destroyed(
QObject *) ),
1026 result->setWindowTitle( tr(
"%1").arg(camera->displayProperties()->displayName() ) );
1027 result->setObjectName( result->windowTitle() );
1029 emit newWidgetAvailable(result);
1043 connect( result, SIGNAL( destroyed(
QObject *) ),
1050 if (objectName !=
"") {
1051 result->setObjectName(objectName);
1055 QString newObjectName = QUuid::createUuid().toString().remove(QRegExp(
"[{}]"));
1056 result->setObjectName(newObjectName);
1070 result->setWindowTitle( tr(
"Project"));
1071 result->setObjectName( result->windowTitle() );
1078 connect(result, SIGNAL(windowChangeEvent(
bool)),
1125 if (!bundleObservationView) {
1128 m_bundleObservationViews.removeAll(bundleObservationView);
1152 if (!cnetEditorView) {
1208 if (!imageFileListWidget) {
1222 if (!footprintView) {
1239 m_controlPointEditViewWidget = NULL;
1251 if (!matrixWidget) {
1265 if (!sensorInfoWidget) {
1279 if (!targetInfoWidget) {
1293 if (!templateEditorWidget) {
1302 void Directory::cleanupJigsawRunWidget(
QObject *obj) {
1304 if (!jigsawRunWidget) {
1338 results.append(widget);
1353 results.append(widget);
1368 results.append(widget);
1383 results.append(widget);
1398 results.append(widget);
1413 results.append(widget);
1428 results.append(view);
1443 results.append(widget);
1455 return m_controlPointEditViewWidget;
1538 stream.writeStartElement(
"directory");
1541 stream.writeStartElement(
"fileListWidgets");
1544 fileListWidget->
save(stream,
project(), newProjectRoot);
1547 stream.writeEndElement();
1552 stream.writeStartElement(
"footprintViews");
1555 footprint2DViewWidget->
save(stream,
project(), newProjectRoot);
1558 stream.writeEndElement();
1563 stream.writeStartElement(
"cubeDnViews");
1566 cubeDnView->save(stream,
project(), newProjectRoot);
1569 stream.writeEndElement();
1574 stream.writeStartElement(
"cnetEditorViews");
1577 cnetEditorWidget->
save(stream,
project(), newProjectRoot);
1580 stream.writeEndElement();
1584 stream.writeEndElement();
1620 const QString &qName,
const QXmlAttributes &atts) {
1621 bool result = XmlStackedHandler::startElement(namespaceURI, localName, qName, atts);
1623 QString viewObjectName;
1624 if (localName ==
"footprint2DView") {
1625 viewObjectName = atts.value(
"objectName");
1626 m_directory->addFootprint2DView(viewObjectName)->load(reader());
1628 else if (localName ==
"imageFileList") {
1629 viewObjectName = atts.value(
"objectName");
1630 m_directory->addImageFileListView(viewObjectName)->load(reader());
1632 else if (localName ==
"cubeDnView") {
1633 viewObjectName = atts.value(
"objectName");
1634 m_directory->addCubeDnView(viewObjectName)->load(reader(), m_directory->project());
1636 else if (localName ==
"cnetEditorView") {
1637 viewObjectName = atts.value(
"objectName");
1638 QString
id = atts.value(
"id");
1639 m_directory->addCnetEditorView(m_directory->project()->control(
id), viewObjectName);
1717 foreach (singleWidgetPairing, actionPairings) {
1718 QString widgetTitle = singleWidgetPairing.first;
1721 foreach (
QAction *widgetAction, widgetActions) {
1723 QString actionText = widgetAction->text();
1725 restructuredData[actionText].append( qMakePair(widgetTitle, widgetAction) );
1727 if ( !sortedActionTexts.contains(actionText) ) {
1728 sortedActionTexts.append(actionText);
1733 if ( !sortedActionTexts.isEmpty() && !sortedActionTexts.last().isEmpty() ) {
1734 sortedActionTexts.append(
"");
1740 if ( sortedActionTexts.count() && sortedActionTexts.last().isEmpty() ) {
1741 sortedActionTexts.removeLast();
1744 foreach (QString actionText, sortedActionTexts) {
1745 if ( actionText.isEmpty() ) {
1746 results.append(NULL);
1753 if (actions.count() == 1) {
1754 QAction *finalAct = actions.first().second;
1755 QString widgetTitle = actions.first().first;
1757 finalAct->setText( tr(
"%1 on %2").arg(actionText).arg(widgetTitle) );
1758 results.append(finalAct);
1764 menuAct->setMenu(menu);
1769 foreach (widgetTitleAndAction, actions) {
1770 QString widgetTitle = widgetTitleAndAction.first;
1771 QAction *action = widgetTitleAndAction.second;
1773 action->setText(widgetTitle);
1774 actionsInsideMenu.append(action);
1781 foreach (
QAction *actionInMenu, actionsInsideMenu) {
1782 connect( allAct, SIGNAL( triggered() ),
1783 actionInMenu, SIGNAL( triggered() ) );
1784 menu->addAction(actionInMenu);
1787 menu->addSeparator();
1788 menu->addAction(allAct);
1790 results.append(menuAct);
1808 return lhs->text().localeAwareCompare( rhs->text() ) < 0;
1820 m_controlPointEdit, SLOT(loadControlPoint(
ControlPoint *)));
1821 connect(m_cnetEditor, SIGNAL(controlPointCreated(
ControlPoint *)),
1822 m_controlPointEditWidget, SLOT(setEditPoint(
ControlPoint *)));
1828 connect( m_cnetEditor, SIGNAL( controlPointDeleted() ),
1834 connect(m_controlPointEditWidget, SIGNAL(controlPointChanged(QString)),
1854 if (!addControlPointEditView()) {
1859 emit redrawMeasures();
1876 if (!addControlPointEditView()) {
1883 emit redrawMeasures();
1904 bool isGroundSource) {
1907 if (!addControlPointEditView()) {
1912 latitude, longitude, cube, isGroundSource);
This represents an ISIS control net in a project-based GUI interface.
~XmlHandler()
The Destructor for Directory::XmlHandler.
QList< QAction * > editMenuActions()
Get the list of actions that the Directory can provide for the edit menu.
QList< CnetEditorView * > cnetEditorViews()
Returns a list of all the control network views for this directory.
QList< MatrixSceneWidget * > matrixViews()
Accessor for the list of MatrixSceneWidgets currently available.
QList< QAction * > projectMenuActions()
Get the list of actions that the Directory can provide for the project menu.
QList< QAction * > toolPadActions()
Get the list of actions that the Directory can provide for the Tool Pad.
void cleanupMatrixViewWidgets(QObject *)
Removes pointers to deleted MatrixSceneWidget objects.
QPointer< WorkOrder > m_saveProjectWorkOrder
The Save Project WorkOrder.
Ipce view containing the CnetEditorWidget.
void modifyControlPoint(ControlPoint *controlPoint, QString serialNumber="")
Slot that is connected from a left mouse button operation on views.
Internalizes a list of images and allows for operations on the entire list.
QList< QAction * > activeToolBarActions()
Get the list of actions that the Directory can provide for the active Tool Bar.
ControlPointEditWidget * controlPointEditWidget()
Returns the ControlPointEditWidget.
The main project for ipce.
QList< QPointer< SensorInfoWidget > > m_sensorInfoWidgets
List of SensorInfoWidgets.
ImageFileListWidget * addImageFileListView(QString objectName="")
Add an imageFileList widget to the window.
File name manipulation and expansion.
void save(QXmlStreamWriter &stream, FileName newProjectRoot) const
Save the directory to an XML file.
QList< ImageFileListWidget * > imageFileListViews()
Accessor for the list of ImageFileListWidgets currently available.
TableViewContent * content()
Returns the content of the table.
QList< TemplateEditorWidget * > templateEditorViews()
Accessor for the list of TemplateEditorWidgets currently available.
QStringList recentProjectsList()
Public accessor for the list of recent projects.
void createControlPoint(double latitude, double longitude, Cube *cube=0, bool isGroundSource=false)
Slot that is connected from a right mouse button operation on views.
~Directory()
The Destructor.
void cleanupTemplateEditorWidgets(QObject *)
Removes pointers to deleted TemplateEditorWidget objects.
static int maxRecentProjects()
Return max number of recent projects to be displayed.
void cleanupTargetInfoWidgets(QObject *)
Removes pointers to deleted TargetInfoWidget objects.
virtual void setModel(ProjectItemModel *model)
Sets the model used by the view.
void cleanupFootprint2DViewWidgets(QObject *)
Removes pointers to deleted Footprint2DView objects.
QMultiMap< Control *, CnetEditorView * > m_controlMap
Map to hold every view with an open Control.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
Maintains a list of Controls so that control nets can easily be copied from one Project to another...
QPointer< WorkOrder > m_importControlNetWorkOrder
The import ControlNetwork WorkOrder.
void cleanupFileListWidgets(QObject *)
Removes pointers to deleted ImageFileListWidget objects.
TargetInfoWidget * addTargetInfoView(TargetBodyQsp target)
Add target body data view widget to the window.
void cleanupSensorInfoWidgets(QObject *)
Removes pointers to deleted SensorInfoWidget objects.
QList< QAction * > m_settingsMenuActions
List of menu settings actions.
QString fileName() const
Get the file name that this Template represents.
MatrixSceneWidget * addMatrixView()
Add the matrix view widget to the window.
QList< QAction * > m_helpMenuActions
List of help menu actions.
void showWarning(QString text)
Displays a Warning.
void cleanupCubeDnViewWidgets(QObject *)
Removes pointers to deleted CubeDnView objects.
Directory * m_directory
Pointer to a Directory which is set by the XmlHandler class.
static bool actionTextLessThan(QAction *lhs, QAction *rhs)
This is for determining the ordering of the descriptive text of for the actions.
bool controlUsedInCnetEditorWidget(Control *control)
Return true if control is not currently being viewed in a CnetEditorWidget
QString displayName() const
Returns the display name.
QPointer< WorkOrder > m_runJigsawWorkOrder
The Run Jigsaw WorkOrder.
QList< QAction * > viewMenuActions()
Get the list of actions that the Directory can provide for the view menu.
void clean()
Cleans directory of everything to do with the current project.
QUndoStack * undoStack()
Returns the Projects stack of QUndoCommands.
void cleanupControlPointEditViewWidget(QObject *)
Delete the ControlPointEditWidget and set it's pointer to NULL.
QList< QPointer< CubeDnView > > m_cubeDnViewWidgets
List of CubeDnCiew obs.
QString m_editPointId
Current control point that is in the ControlPointEditWidget.
QPointer< ProjectItemModel > m_projectItemModel
Pointer to the ProjectItemModel.
ControlPointEditView * controlPointEditView()
Gets the ControlPointEditWidget associated with the Directory.
QString originalPath() const
Returns the path of the original file name.
This error is for when a programmer made an API call that was illegal.
void setRecentProjectsList(QStringList recentProjects)
Add recent projects to the recent projects list.
Control * activeControl()
Return the Active Control (control network)
QList< TargetInfoWidget * > targetInfoViews()
Accessor for the list of TargetInfoWidgets currently available.
QString editPointId()
Return the current control point id loaded in the ControlPointEditWidget.
View for displaying BundleObservation CSV files.
QPointer< WorkOrder > m_importRegistrationTemplateWorkOrder
The Import Registration Template WorkOrder.
View for editing a single ControlPoint.
QList< QAction * > m_projectMenuActions
List of project menu actions.
QList< QAction * > permToolBarActions()
Get the list of actions that the Directory can provide for the permanent Tool Bar.
Provides access to data stored in a Project through Qt's model-view framework.
QAction * undoAction()
Creates an Action to undo the last action.
QPointer< WorkOrder > m_openProjectWorkOrder
The Open Project WorkOrder.
QList< QAction * > m_fileMenuActions
List of file menu actions.
void closeControlNet()
Cleans up the ControlNet pointer.
void load(XmlStackedHandlerReader *xmlReader)
Loads the Directory from an XML file.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
QList< Footprint2DView * > footprint2DViews()
Accessor for the list of Footprint2DViews currently available.
virtual bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
The XML reader invokes this method at the start of every element in the XML document.
CnetEditorWidget * cnetEditorWidget()
Returns the cnetEditorWidget.
QList< QAction * > settingsMenuActions()
Get the list of actions that the Directory can provide for the settings menu.
void updateRecentProjects()
Loads and displays a list of recently opened projects in the file menu.
QPointer< WorkOrder > m_importShapesWorkOrder
The import shapes WorkOrder.
static QList< QAction * > restructureActions(QList< QPair< QString, QList< QAction *> > >)
Reformat actionPairings to be user friendly for use in menus.
QList< QAction * > fileMenuActions()
Get the list of actions that the Directory can provide for the file menu.
Directory(QObject *parent=0)
The Constructor.
ProjectItemModel * model()
Gets the ProjectItemModel for this directory.
void addToProject(WorkOrder *)
This executes the WorkOrder and stores it in the project.
Provide Undo/redo abilities, serialization, and history for an operation.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
void initiateRenameProjectWorkOrder(QString projectName)
Slot which is connected to the model's signal, projectNameEdited, which is emitted when the user doub...
ProjectItemTreeView * addProjectItemTreeView()
Adds a ProjectItemTreeView to the window.
QList< QAction * > m_editMenuActions
List of edit menu actions.
QString GetId() const
Return the Id of the control point.
QList< SensorInfoWidget * > sensorInfoViews()
Accessor for the list of SensorInfoWidgets currently available.
QList< QPointer< Footprint2DView > > m_footprint2DViewWidgets
List of Footprint2DView objs.
QAction * redoAction()
Creates an Action to redo the last action.
void cleanupBundleObservationViews(QObject *)
Removes pointers to deleted BundleObservationView objects.
Footprint2DView * addFootprint2DView(QString objectName="")
Add the qmos view widget to the window.
QList< QProgressBar * > progressBars()
Gets the ControlNetEditor associated with this the Directory.
BundleObservationView * addBundleObservationView(FileItemQsp fileItem)
Add the BundleObservationView to the window.
#define _FILEINFO_
Macro for the filename and line number.
void setActiveControlNet(bool activeNet)
Sets if there is an active control net.
Change the project's GUI name.
QPointer< WorkOrder > m_saveProjectAsWorkOrder
The Save Project As WorkOrder.
virtual void pushContentHandler(XmlStackedHandler *newHandler)
Push a contentHandler and maybe continue parsing...
A ProjectItemTreeView displays items from a ProjectItemProxyModel in a tree structure.
void setWarningContainer(QDockWidget *warningContainer)
Set up the warning info in the warning dockable widget.
QList< CubeDnView * > cubeDnViews()
Accessor for the list of CubeDnViews currently available.
void setHistoryContainer(QDockWidget *historyContainer)
Set up the history info in the history dockable widget.
QString projectRoot() const
Get the top-level folder of the project.
void cleanupCnetEditorViewWidgets(QObject *)
Removes pointers to deleted Control Health Monitor objects.
QPointer< Project > m_project
Pointer to the Project.
QList< QAction * > m_toolPadActions
List of ToolPad actions.
This opens a project that's saved on disk.
XmlHandler(Directory *directory)
This function sets the Directory pointer for the Directory::XmlHandler class.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
QWidget * warningWidget()
Returns a pointer to the warning widget.
ControlDisplayProperties * displayProperties()
Access a pointer to the display properties for the control network.
QPointer< WorkOrder > m_importMapTemplateWorkOrder
The Import Map Template WorkOrder.
QPointer< HistoryTreeWidget > m_historyTreeWidget
Pointer to the HistoryTreeWidget.
QList< QAction * > m_permToolBarActions
List of perm ToolBar actions.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
void newActiveControl(bool newControl)
This slot is connected from the signal activeControlSet(bool) emitted from Project.
QPointer< WorkOrder > m_renameProjectWorkOrder
The Rename Project WorkOrder.
QList< QAction * > m_viewMenuActions
List of view menu actions.
View that displays cubes in a QView-like way.
QPointer< WarningTreeWidget > m_warningTreeWidget
Pointer to the WarningTreeWidget.
void updateControlNetEditConnections()
Updates the SIGNAL/SLOT connections for the cotrol net editor.
void save(QXmlStreamWriter &stream, Project *project, FileName newProjectRoot) const
This method saves the Controls object ids to the stream.
SensorInfoWidget * addSensorInfoView(GuiCameraQsp camera)
Add sensor data view widget to the window.
QList< QAction * > helpMenuActions()
Get the list of actions that the Directory can provide for the help menu.
QList< QPointer< MatrixSceneWidget > > m_matrixViewWidgets
List of MatrixSceneWidgets.
Control * control()
Returns the Control displayed in the CnetEditorWidget
QPointer< WorkOrder > m_exportImagesWorkOrder
The export images WorkOrder.
QPointer< JigsawRunWidget > m_jigsawRunWidget
Pointer to the JigsawRunWidget.
Namespace for ISIS/Bullet specific routines.
Project * project() const
Gets the Project for this directory.
QPointer< WorkOrder > m_exportControlNetWorkOrder
The export ControlNetwork WorkOrder.
QList< QPointer< TargetInfoWidget > > m_targetInfoWidgets
List of TargetInfoWidgets.
QPointer< WorkOrder > m_importImagesWorkOrder
The import images WorkOrder.
QList< QPointer< CnetEditorView > > m_cnetEditorViewWidgets
List of CnetEditorViews.
QList< QAction * > m_activeToolBarActions
List of active ToolBar actions.
void reloadActiveControlInCnetEditorView()
This slot was created specifically for the CnetEditorWidgets when user chooses a new active control a...
View for the Control Net Health Monitor.
CnetEditorView * addCnetEditorView(Control *control, QString objectName="")
Add the widget for the cnet editor view to the window.
QList< QPointer< TemplateEditorWidget > > m_templateEditorWidgets
List of TemplateEditorWidgets.
QStringList m_recentProjects
List of the names of recent projects.
QList< QPointer< WorkOrder > > m_workOrders
List of WorkOrders.
Manage a stack of content handlers for reading XML files.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
bool fileExists() const
Returns true if the file exists; false otherwise.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
QList< QPointer< ImageFileListWidget > > m_fileListWidgets
List of ImageFileListWidgets.
void initializeActions()
Initializes the actions that the Directory can provide to a main window.
QPointer< WorkOrder > m_closeProjectWorkOrder
The Close Project WorkOrder.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
TemplateEditorWidget * addTemplateEditorView(Template *currentTemplate)
Add template editor view widget to the window.
IO Handler for Isis Cubes.
CubeDnView * addCubeDnView(QString objectName="")
Add the qview workspace to the window.
void deleteControlPoint(ControlPoint *controlPoint)
Slot that is connected from a middle mouse button operation on views.