13#include <QApplication>
27#include <QXmlStreamWriter>
30#include "BundleObservation.h"
31#include "BundleObservationView.h"
32#include "BundleObservationViewWorkOrder.h"
33#include "ChipViewportsWidget.h"
34#include "CloseProjectWorkOrder.h"
35#include "CnetEditorView.h"
36#include "CnetEditorViewWorkOrder.h"
37#include "ControlHealthMonitorView.h"
38#include "ControlHealthMonitorWorkOrder.h"
39#include "CnetEditorWidget.h"
41#include "ControlDisplayProperties.h"
42#include "ControlList.h"
43#include "ControlNet.h"
44#include "ControlNetTool.h"
45#include "ControlPointEditView.h"
46#include "ControlPointEditWidget.h"
47#include "CubeDnView.h"
48#include "CubeDnViewWorkOrder.h"
49#include "ExportControlNetWorkOrder.h"
50#include "ExportImagesWorkOrder.h"
53#include "Footprint2DView.h"
55#include "HistoryTreeWidget.h"
56#include "IException.h"
59#include "ImageFileListWidget.h"
65#include "JigsawRunWidget.h"
67#include "MatrixSceneWidget.h"
69#include "MosaicControlNetTool.h"
70#include "MosaicSceneWidget.h"
73#include "ProjectItem.h"
74#include "ProjectItemModel.h"
75#include "ProjectItemTreeView.h"
81#include "SensorInfoWidget.h"
85#include "TableViewContent.h"
86#include "TargetInfoWidget.h"
88#include "TemplateEditorWidget.h"
91#include "WarningTreeWidget.h"
94#include "XmlStackedHandler.h"
95#include "XmlStackedHandlerReader.h"
112 "Could not create directory because Project could not be created.",
134 connect(
this, SIGNAL(cnetModified()),
m_project, SLOT(cnetModified()));
135 connect(
project(), SIGNAL(activeControlModified()),
this, SIGNAL(activeControlModified()));
138 connect(
m_project, SIGNAL(discardActiveControlEdits()),
143 connect(
m_projectItemModel, SIGNAL(cleanProject(
bool)),
this, SIGNAL(cleanProject(
bool)));
148 createWorkOrder<SetActiveImageListWorkOrder>();
149 createWorkOrder<SetActiveControlWorkOrder>();
150 createWorkOrder<CnetEditorViewWorkOrder>();
151 createWorkOrder<CubeDnViewWorkOrder>();
152 createWorkOrder<Footprint2DViewWorkOrder>();
153 createWorkOrder<MatrixViewWorkOrder>();
154 createWorkOrder<SensorGetInfoWorkOrder>();
156 createWorkOrder<TargetGetInfoWorkOrder>();
157 createWorkOrder<BundleObservationViewWorkOrder>();
158 createWorkOrder<TemplateEditViewWorkOrder>();
159 createWorkOrder<ControlHealthMonitorWorkOrder>();
175 m_recentProjectsLoaded =
false;
179 "Could not create directory because work orders are corrupt.",
290 emit directoryCleaned();
294 m_bundleObservationViews.clear();
299 m_controlPointEditViewWidget.clear();
320 if (m_recentProjectsLoaded) {
321 QMenu *recentProjectsMenu =
new QMenu(
"&Recent Projects");
325 QString actionText(action->text());
326 if (actionText ==
"&Recent Projects") {
328 recentProjectsMenu = qobject_cast<QMenu*>(action->parentWidget());
336 openRecentProjectAction->setText(projName);
339 if (recentProjectsMenu->isEmpty())
341 recentProjectsMenu->addAction(openRecentProjectAction);
345 QAction *firstAction = recentProjectsMenu->actions().at(0);
348 if (firstAction->text() == projName) {
354 foreach (
QAction *action, recentProjectsMenu->actions()) {
355 if (action->text() == projName) {
356 openRecentProjectAction = action;
361 recentProjectsMenu->insertAction(firstAction, openRecentProjectAction);
363 recentProjectsMenu->removeAction(recentProjectsMenu->actions().last());
369 QMenu *recentProjectsMenu = fileMenu->addMenu(
"&Recent Projects");
372 for (
int i = 0; i < nRecentProjects; i++) {
375 if (!projectFileName.fileExists() )
386 openRecentProjectAction->setText(
m_recentProjects.at(i).split(
"/").last() );
388 recentProjectsMenu->addAction(openRecentProjectAction);
390 fileMenu->addSeparator();
392 m_recentProjectsLoaded =
true;
416 openProjectAction->setIcon(QIcon(
FileName(
417 "$ISISROOT/appdata/images/icons/archive-insert-directory.png").expanded()));
418 fileMenu->addAction(openProjectAction);
423 saveAction->setShortcut(Qt::Key_S | Qt::CTRL);
424 saveAction->setIcon( QIcon(
FileName(
"$ISISROOT/appdata/images/icons/document-save.png")
426 saveAction->setDisabled(
true);
427 connect(
project()->undoStack(), SIGNAL( cleanChanged(
bool) ),
428 saveAction, SLOT( setDisabled(
bool) ) );
429 fileMenu->addAction(saveAction);
433 saveAsAction->setIcon(QIcon(
FileName(
"$ISISROOT/appdata/images/icons/document-save-as.png")
435 fileMenu->addAction(saveAsAction);
438 fileMenu->addSeparator();
440 QMenu *importMenu = fileMenu->addMenu(
"&Import");
445 QMenu *importTemplateMenu = importMenu->addMenu(
"&Import Templates");
449 QMenu *exportMenu = fileMenu->addMenu(
"&Export");
455 clone->setEnabled(
false);
457 clone, SLOT(enableWorkOrder()));
461 exportMenu->addAction(clone);
465 clone->setEnabled(
false);
467 clone, SLOT(enableWorkOrder()));
468 exportMenu->addAction(clone);
470 fileMenu->addSeparator();
481 if (
project()->controls().count() &&
project()->images().count()) {
482 clone->setEnabled(
true);
485 clone->setEnabled(
false);
489 connect(
m_project, SIGNAL(controlsAndImagesAvailable()),
490 clone, SLOT(enableWorkOrder()));
552 if (cnetEditorView->control() ==
project()->activeControl()) {
553 emit closeView(cnetEditorView);
569 if (newControl && m_controlPointEditViewWidget) {
570 emit closeView(m_controlPointEditViewWidget);
571 delete m_controlPointEditViewWidget;
577 if (cnetEditorView->control() ==
project()->activeControl()) {
578 cnetEditorView->cnetEditorWidget()->pointTableView()->content()->setActiveControlNet(
true);
579 cnetEditorView->cnetEditorWidget()->measureTableView()->content()->setActiveControlNet(
true);
582 cnetEditorView->cnetEditorWidget()->pointTableView()->content()->setActiveControlNet(
false);
583 cnetEditorView->cnetEditorWidget()->measureTableView()->content()->setActiveControlNet(
false);
605 connect( result, SIGNAL( destroyed(
QObject *) ),
608 connect(result, SIGNAL(windowChangeEvent(
bool)),
611 m_bundleObservationViews.append(result);
613 QString str = fileItem->fileName();
614 FileName fileName = fileItem->fileName();
618 int pos = path.lastIndexOf(
"/");
619 QString bundleResultsName =
"";
621 bundleResultsName = path.remove(0,pos+1);
624 if (str.contains(
"bundleout")) {
625 result->setWindowTitle( tr(
"Summary (%1)").
626 arg( bundleResultsName ) );
627 result->setObjectName( result->windowTitle() );
629 if (str.contains(
"residuals")) {
630 result->setWindowTitle( tr(
"Measure Residuals (%1)").
631 arg( bundleResultsName ) );
632 result->setObjectName( result->windowTitle() );
634 else if (str.contains(
"points")) {
635 result->setWindowTitle( tr(
"Control Points (%1)").
636 arg( bundleResultsName ) );
637 result->setObjectName( result->windowTitle() );
639 else if (str.contains(
"images")) {
640 result->setWindowTitle( tr(
"Images (%1)").
641 arg( bundleResultsName ) );
642 result->setObjectName( result->windowTitle() );
645 emit newWidgetAvailable(result);
659 FileName configFile(
"$HOME/.Isis/" + QApplication::applicationName() +
"/" + title +
".config");
663 if (
project()->activeControl() && (control ==
project()->activeControl())) {
669 connect(result, SIGNAL( destroyed(
QObject *) ),
672 connect(result, SIGNAL(windowChangeEvent(
bool)),
680 connect(result->
cnetEditorWidget(), SIGNAL(cnetModified()),
this, SIGNAL(cnetModified()));
681 connect(
this, SIGNAL(cnetModified()), result->
cnetEditorWidget(), SLOT(rebuildModels()));
686 result->setWindowTitle(title);
687 if (objectName !=
"") {
688 result->setObjectName(objectName);
692 QString newObjectName = QUuid::createUuid().toString().remove(QRegExp(
"[{}]"));
693 result->setObjectName(newObjectName);
696 emit newWidgetAvailable(result);
710 connect( result, SIGNAL( destroyed(
QObject *) ),
713 connect(result, SIGNAL(windowChangeEvent(
bool)),
718 if (objectName !=
"") {
719 result->setObjectName(objectName);
723 QString newObjectName = QUuid::createUuid().toString().remove(QRegExp(
"[{}]"));
724 result->setObjectName(newObjectName);
727 emit newWidgetAvailable(result);
742 connect(
this, SIGNAL(redrawMeasures()), result, SIGNAL(redrawMeasures()));
745 connect(
this, SIGNAL(activeControlModified()), result, SIGNAL(redrawMeasures()));
747 connect (
project(), SIGNAL(activeControlSet(
bool)),
748 result, SLOT(enableControlNetTool(
bool)));
765 if (objectName !=
"") {
766 result->setObjectName(objectName);
770 QString newObjectName = QUuid::createUuid().toString().remove(QRegExp(
"[{}]"));
771 result->setObjectName(newObjectName);
774 connect(result, SIGNAL(destroyed(
QObject *)),
777 connect(result, SIGNAL(windowChangeEvent(
bool)),
780 emit newWidgetAvailable(result);
795 connect(
this, SIGNAL(activeControlModified()), result->
mosaicSceneWidget(), SIGNAL(cnetModified()));
801 connect(
this, SIGNAL(redrawMeasures()), result, SIGNAL(redrawMeasures()));
803 connect (
project(), SIGNAL(activeControlSet(
bool)),
804 result, SLOT(enableControlNetTool(
bool)));
810 return m_controlHealthMonitorView;
816 if (!controlHealthMonitorView()) {
819 if (activeControl == NULL) {
820 QString message =
"No active control network chosen. Choose active control network on "
822 QMessageBox::critical(qobject_cast<QWidget *>(parent()),
"Error", message);
827 result->setWindowTitle(tr(
"Control NetHealth Monitor"));
828 result->setObjectName(result->windowTitle());
830 m_controlHealthMonitorView = result;
831 emit newWidgetAvailable(result);
833 return controlHealthMonitorView();
842 result->setWindowTitle(tr(
"Control Point Editor"));
843 result->setObjectName(result->windowTitle());
846 if (activeControl == NULL) {
848 QString message =
"No active control network chosen. Choose active control network on "
850 QMessageBox::critical(qobject_cast<QWidget *>(parent()),
"Error", message);
855 if (!
project()->activeImageList() || !
project()->activeImageList()->serialNumberList()) {
856 QString message =
"No active image list chosen. Choose an active image list on the project "
858 QMessageBox::critical(qobject_cast<QWidget *>(parent()),
"Error", message);
862 project()->activeImageList()->serialNumberList());
864 m_controlPointEditViewWidget = result;
866 connect(result, SIGNAL(destroyed(
QObject *)),
868 emit newWidgetAvailable(result);
886 this, SIGNAL(cnetModified()));
888 connect (
project(), SIGNAL(activeControlSet(
bool)),
891 connect(result, SIGNAL(windowChangeEvent(
bool)),
895 connect(
m_project, SIGNAL(cnetSaved(
bool)),
909 connect(result, SIGNAL(destroyed(
QObject *)),
this, SLOT(cleanupchipViewportWidges()));
910 m_controlPointChipViews.append(result);
911 result->setWindowTitle(tr(
"ChipViewport View %1").arg(m_controlPointChipViews.count()));
912 result->setObjectName(result->windowTitle());
913 emit newWidgetAvailable(result);
927 connect( result, SIGNAL( destroyed(
QObject *) ),
933 result->setObjectName( result->windowTitle() );
935 emit newWidgetAvailable(result);
948 connect( result, SIGNAL( destroyed(
QObject *) ),
953 result->setWindowTitle( tr(
"%1").arg(target->displayProperties()->displayName() ) );
954 result->setObjectName( result->windowTitle() );
956 emit newWidgetAvailable(result);
969 connect( result, SIGNAL( destroyed(
QObject *) ),
974 result->setWindowTitle( tr(
"%1").arg(
FileName(currentTemplate->fileName()).
name() ) );
975 result->setObjectName( result->windowTitle() );
977 emit newWidgetAvailable(result);
983 if (jigsawRunWidget()) {
988 connect( result, SIGNAL( destroyed(
QObject *) ),
989 this, SLOT( cleanupJigsawRunWidget(
QObject *) ) );
992 result->setAttribute(Qt::WA_DeleteOnClose);
995 emit newWidgetAvailable(result);
1007 connect( result, SIGNAL( destroyed(
QObject *) ),
1012 result->setWindowTitle( tr(
"%1").arg(camera->displayProperties()->displayName() ) );
1013 result->setObjectName( result->windowTitle() );
1015 emit newWidgetAvailable(result);
1029 connect( result, SIGNAL( destroyed(
QObject *) ),
1036 if (objectName !=
"") {
1037 result->setObjectName(objectName);
1041 QString newObjectName = QUuid::createUuid().toString().remove(QRegExp(
"[{}]"));
1042 result->setObjectName(newObjectName);
1056 result->setWindowTitle( tr(
"Project"));
1057 result->setObjectName( result->windowTitle() );
1064 connect(result, SIGNAL(windowChangeEvent(
bool)),
1111 if (!bundleObservationView) {
1114 m_bundleObservationViews.removeAll(bundleObservationView);
1138 if (!cnetEditorView) {
1194 if (!imageFileListWidget) {
1208 if (!footprintView) {
1225 m_controlPointEditViewWidget = NULL;
1237 if (!matrixWidget) {
1251 if (!sensorInfoWidget) {
1265 if (!targetInfoWidget) {
1279 if (!templateEditorWidget) {
1288 void Directory::cleanupJigsawRunWidget(
QObject *obj) {
1290 if (!jigsawRunWidget) {
1321 QList<CnetEditorView *> results;
1324 results.append(widget);
1336 QList<CubeDnView *> results;
1339 results.append(widget);
1351 QList<MatrixSceneWidget *> results;
1354 results.append(widget);
1366 QList<SensorInfoWidget *> results;
1369 results.append(widget);
1381 QList<TargetInfoWidget *> results;
1384 results.append(widget);
1396 QList<TemplateEditorWidget *> results;
1399 results.append(widget);
1411 QList<Footprint2DView *> results;
1414 results.append(view);
1426 QList<ImageFileListWidget *> results;
1429 results.append(widget);
1441 return m_controlPointEditViewWidget;
1472 QList<QProgressBar *> result;
1510 xmlReader->pushContentHandler(
new XmlHandler(
this) );
1524 stream.writeStartElement(
"directory");
1527 stream.writeStartElement(
"fileListWidgets");
1530 fileListWidget->
save(stream,
project(), newProjectRoot);
1533 stream.writeEndElement();
1538 stream.writeStartElement(
"footprintViews");
1541 footprint2DViewWidget->save(stream,
project(), newProjectRoot);
1544 stream.writeEndElement();
1549 stream.writeStartElement(
"cubeDnViews");
1552 cubeDnView->save(stream,
project(), newProjectRoot);
1555 stream.writeEndElement();
1560 stream.writeStartElement(
"cnetEditorViews");
1563 cnetEditorWidget->
save(stream,
project(), newProjectRoot);
1566 stream.writeEndElement();
1570 stream.writeEndElement();
1606 const QString &qName,
const QXmlAttributes &atts) {
1607 bool result = XmlStackedHandler::startElement(namespaceURI, localName, qName, atts);
1609 QString viewObjectName;
1610 if (localName ==
"footprint2DView") {
1611 viewObjectName = atts.value(
"objectName");
1612 m_directory->addFootprint2DView(viewObjectName)->load(reader());
1614 else if (localName ==
"imageFileList") {
1615 viewObjectName = atts.value(
"objectName");
1616 m_directory->addImageFileListView(viewObjectName)->load(reader());
1618 else if (localName ==
"cubeDnView") {
1619 viewObjectName = atts.value(
"objectName");
1620 m_directory->addCubeDnView(viewObjectName)->load(reader(), m_directory->project());
1622 else if (localName ==
"cnetEditorView") {
1623 viewObjectName = atts.value(
"objectName");
1624 QString
id = atts.value(
"id");
1625 m_directory->addCnetEditorView(m_directory->project()->control(
id), viewObjectName);
1694 QList<
QPair< QString, QList<QAction *> > > actionPairings) {
1695 QList<QAction *> results;
1700 QMap< QString, QList< QPair<QString, QAction *> > > restructuredData;
1702 QPair< QString, QList<QAction *> > singleWidgetPairing;
1703 foreach (singleWidgetPairing, actionPairings) {
1704 QString widgetTitle = singleWidgetPairing.first;
1705 QList<QAction *> widgetActions = singleWidgetPairing.second;
1707 foreach (
QAction *widgetAction, widgetActions) {
1709 QString actionText = widgetAction->text();
1711 restructuredData[actionText].append( qMakePair(widgetTitle, widgetAction) );
1713 if ( !sortedActionTexts.contains(actionText) ) {
1714 sortedActionTexts.append(actionText);
1719 if ( !sortedActionTexts.isEmpty() && !sortedActionTexts.last().isEmpty() ) {
1720 sortedActionTexts.append(
"");
1726 if ( sortedActionTexts.count() && sortedActionTexts.last().isEmpty() ) {
1727 sortedActionTexts.removeLast();
1730 foreach (QString actionText, sortedActionTexts) {
1731 if ( actionText.isEmpty() ) {
1732 results.append(NULL);
1737 QList< QPair<QString, QAction *> > actions = restructuredData[actionText];
1739 if (actions.count() == 1) {
1740 QAction *finalAct = actions.first().second;
1741 QString widgetTitle = actions.first().first;
1743 finalAct->setText( tr(
"%1 on %2").arg(actionText).arg(widgetTitle) );
1744 results.append(finalAct);
1750 menuAct->setMenu(menu);
1752 QList<QAction *> actionsInsideMenu;
1754 QPair<QString, QAction *> widgetTitleAndAction;
1755 foreach (widgetTitleAndAction, actions) {
1756 QString widgetTitle = widgetTitleAndAction.first;
1757 QAction *action = widgetTitleAndAction.second;
1759 action->setText(widgetTitle);
1760 actionsInsideMenu.append(action);
1767 foreach (
QAction *actionInMenu, actionsInsideMenu) {
1768 connect( allAct, SIGNAL( triggered() ),
1769 actionInMenu, SIGNAL( triggered() ) );
1770 menu->addAction(actionInMenu);
1773 menu->addSeparator();
1774 menu->addAction(allAct);
1776 results.append(menuAct);
1794 return lhs->text().localeAwareCompare( rhs->text() ) < 0;
1806 m_controlPointEdit, SLOT(loadControlPoint(
ControlPoint *)));
1807 connect(m_cnetEditor, SIGNAL(controlPointCreated(
ControlPoint *)),
1808 m_controlPointEditWidget, SLOT(setEditPoint(
ControlPoint *)));
1814 connect( m_cnetEditor, SIGNAL( controlPointDeleted() ),
1820 connect(m_controlPointEditWidget, SIGNAL(controlPointChanged(QString)),
1840 if (!addControlPointEditView()) {
1845 emit redrawMeasures();
1862 if (!addControlPointEditView()) {
1869 emit redrawMeasures();
1890 bool isGroundSource) {
1893 if (!addControlPointEditView()) {
1898 latitude, longitude, cube, isGroundSource);
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.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
virtual void setModel(ProjectItemModel *model)
Sets the model used by the view.
View for displaying BundleObservation CSV files.
Ipce view containing the CnetEditorWidget.
CnetEditorWidget * cnetEditorWidget()
Returns the cnetEditorWidget.
void save(QXmlStreamWriter &stream, Project *project, FileName newProjectRoot) const
This method saves the Controls object ids to the stream.
View for the Control Net Health Monitor.
This represents an ISIS control net in a project-based GUI interface.
ControlDisplayProperties * displayProperties()
Access a pointer to the display properties for the control network.
void closeControlNet()
Cleans up the ControlNet pointer.
Maintains a list of Controls so that control nets can easily be copied from one Project to another,...
View for editing a single ControlPoint.
ControlPointEditWidget * controlPointEditWidget()
Returns the ControlPointEditWidget.
QString GetId() const
Return the Id of the control point.
View that displays cubes in a QView-like way.
IO Handler for Isis Cubes.
Directory * m_directory
Pointer to a Directory which is set by the XmlHandler class.
~XmlHandler()
The Destructor for Directory::XmlHandler.
XmlHandler(Directory *directory)
This function sets the Directory pointer for the Directory::XmlHandler class.
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.
QString m_editPointId
Current control point that is in the ControlPointEditWidget.
void load(XmlStackedHandlerReader *xmlReader)
Loads the Directory from an XML file.
ProjectItemTreeView * addProjectItemTreeView()
Adds a ProjectItemTreeView to the window.
QPointer< WorkOrder > m_importMapTemplateWorkOrder
The Import Map Template WorkOrder.
void cleanupControlPointEditViewWidget(QObject *)
Delete the ControlPointEditWidget and set it's pointer to NULL.
QList< TemplateEditorWidget * > templateEditorViews()
Accessor for the list of TemplateEditorWidgets currently available.
QPointer< WorkOrder > m_importShapesWorkOrder
The import shapes WorkOrder.
QPointer< WorkOrder > m_exportImagesWorkOrder
The export images WorkOrder.
void reloadActiveControlInCnetEditorView()
@description This slot was created specifically for the CnetEditorWidgets when user chooses a new act...
QList< SensorInfoWidget * > sensorInfoViews()
Accessor for the list of SensorInfoWidgets currently available.
void updateRecentProjects()
Loads and displays a list of recently opened projects in the file menu.
void cleanupFootprint2DViewWidgets(QObject *)
Removes pointers to deleted Footprint2DView objects.
void cleanupCnetEditorViewWidgets(QObject *)
Removes pointers to deleted CnetEditorWidget objects.
QList< QAction * > settingsMenuActions()
Get the list of actions that the Directory can provide for the settings menu.
QList< QPointer< CubeDnView > > m_cubeDnViewWidgets
List of CubeDnCiew obs.
void setWarningContainer(QDockWidget *warningContainer)
Set up the warning info in the warning dockable widget.
QList< QAction * > m_settingsMenuActions
List of menu settings actions.
void initiateRenameProjectWorkOrder(QString projectName)
Slot which is connected to the model's signal, projectNameEdited, which is emitted when the user doub...
QList< QAction * > m_fileMenuActions
List of file menu actions.
void cleanupBundleObservationViews(QObject *)
Removes pointers to deleted BundleObservationView objects.
QList< Footprint2DView * > footprint2DViews()
Accessor for the list of Footprint2DViews currently available.
QList< QAction * > m_toolPadActions
List of ToolPad actions.
MatrixSceneWidget * addMatrixView()
Add the matrix view widget to the window.
void updateControlNetEditConnections()
Updates the SIGNAL/SLOT connections for the cotrol net editor.
TemplateEditorWidget * addTemplateEditorView(Template *currentTemplate)
Add template editor view widget to the window.
QList< QAction * > fileMenuActions()
Get the list of actions that the Directory can provide for the file menu.
Directory(QObject *parent=0)
The Constructor.
void deleteControlPoint(ControlPoint *controlPoint)
Slot that is connected from a middle mouse button operation on views.
QAction * redoAction()
Creates an Action to redo the last action.
QList< QAction * > editMenuActions()
Get the list of actions that the Directory can provide for the edit menu.
void save(QXmlStreamWriter &stream, FileName newProjectRoot) const
Save the directory to an XML file.
BundleObservationView * addBundleObservationView(FileItemQsp fileItem)
Add the BundleObservationView to the window.
~Directory()
The Destructor.
void cleanupTemplateEditorWidgets(QObject *)
Removes pointers to deleted TemplateEditorWidget objects.
QList< ImageFileListWidget * > imageFileListViews()
Accessor for the list of ImageFileListWidgets currently available.
QList< QAction * > activeToolBarActions()
Get the list of actions that the Directory can provide for the active Tool Bar.
QPointer< WorkOrder > m_saveProjectWorkOrder
The Save Project WorkOrder.
void modifyControlPoint(ControlPoint *controlPoint, QString serialNumber="")
Slot that is connected from a left mouse button operation on views.
QList< QAction * > m_projectMenuActions
List of project menu actions.
QPointer< WorkOrder > m_importRegistrationTemplateWorkOrder
The Import Registration Template WorkOrder.
QList< QAction * > m_editMenuActions
List of edit menu actions.
QPointer< HistoryTreeWidget > m_historyTreeWidget
Pointer to the HistoryTreeWidget.
QList< QPointer< TemplateEditorWidget > > m_templateEditorWidgets
List of TemplateEditorWidgets.
QPointer< WorkOrder > m_importControlNetWorkOrder
The import ControlNetwork WorkOrder.
void cleanupTargetInfoWidgets(QObject *)
Removes pointers to deleted TargetInfoWidget objects.
QList< QPointer< MatrixSceneWidget > > m_matrixViewWidgets
List of MatrixSceneWidgets.
void initializeActions()
Initializes the actions that the Directory can provide to a main window.
QList< CnetEditorView * > cnetEditorViews()
Returns a list of all the control network views for this directory.
QPointer< WorkOrder > m_closeProjectWorkOrder
The Close Project WorkOrder.
QPointer< ProjectItemModel > m_projectItemModel
Pointer to the ProjectItemModel.
QList< QAction * > toolPadActions()
Get the list of actions that the Directory can provide for the Tool Pad.
void newActiveControl(bool newControl)
@description This slot is connected from the signal activeControlSet(bool) emitted from Project.
void cleanupMatrixViewWidgets(QObject *)
Removes pointers to deleted MatrixSceneWidget objects.
CubeDnView * addCubeDnView(QString objectName="")
Add the qview workspace to the window.
QPointer< WorkOrder > m_importImagesWorkOrder
The import images WorkOrder.
QList< QAction * > permToolBarActions()
Get the list of actions that the Directory can provide for the permanent Tool Bar.
void clean()
Cleans directory of everything to do with the current project.
QList< QAction * > m_viewMenuActions
List of view menu actions.
QStringList recentProjectsList()
Public accessor for the list of recent projects.
void setRecentProjectsList(QStringList recentProjects)
Add recent projects to the recent projects list.
ImageFileListWidget * addImageFileListView(QString objectName="")
Add an imageFileList widget to the window.
QList< CubeDnView * > cubeDnViews()
Accessor for the list of CubeDnViews currently available.
QPointer< JigsawRunWidget > m_jigsawRunWidget
Pointer to the JigsawRunWidget.
TargetInfoWidget * addTargetInfoView(TargetBodyQsp target)
Add target body data view widget to the window.
void setHistoryContainer(QDockWidget *historyContainer)
Set up the history info in the history dockable widget.
QList< QAction * > m_activeToolBarActions
List of active ToolBar actions.
QList< QPointer< ImageFileListWidget > > m_fileListWidgets
List of ImageFileListWidgets.
QString editPointId()
Return the current control point id loaded in the ControlPointEditWidget.
QList< QAction * > m_permToolBarActions
List of perm ToolBar actions.
static QList< QAction * > restructureActions(QList< QPair< QString, QList< QAction * > > >)
Reformat actionPairings to be user friendly for use in menus.
void showWarning(QString text)
Displays a Warning.
QList< TargetInfoWidget * > targetInfoViews()
Accessor for the list of TargetInfoWidgets currently available.
QAction * undoAction()
Creates an Action to undo the last action.
static bool actionTextLessThan(QAction *lhs, QAction *rhs)
This is for determining the ordering of the descriptive text of for the actions.
QList< QAction * > m_helpMenuActions
List of help menu actions.
Project * project() const
Gets the Project for this directory.
QPointer< WorkOrder > m_saveProjectAsWorkOrder
The Save Project As WorkOrder.
QList< QProgressBar * > progressBars()
Gets the ControlNetEditor associated with this the Directory.
void createControlPoint(double latitude, double longitude, Cube *cube=0, bool isGroundSource=false)
Slot that is connected from a right mouse button operation on views.
QList< QAction * > viewMenuActions()
Get the list of actions that the Directory can provide for the view menu.
void cleanupCubeDnViewWidgets(QObject *)
Removes pointers to deleted CubeDnView objects.
QList< QPointer< CnetEditorView > > m_cnetEditorViewWidgets
List of CnetEditorViews.
QWidget * warningWidget()
Returns a pointer to the warning widget.
QMultiMap< Control *, CnetEditorView * > m_controlMap
Map to hold every view with an open Control.
SensorInfoWidget * addSensorInfoView(GuiCameraQsp camera)
Add sensor data view widget to the window.
void cleanupFileListWidgets(QObject *)
Removes pointers to deleted ImageFileListWidget objects.
QStringList m_recentProjects
List of the names of recent projects.
QPointer< WorkOrder > m_exportControlNetWorkOrder
The export ControlNetwork WorkOrder.
void cleanupSensorInfoWidgets(QObject *)
Removes pointers to deleted SensorInfoWidget objects.
ProjectItemModel * model()
Gets the ProjectItemModel for this directory.
QPointer< WarningTreeWidget > m_warningTreeWidget
Pointer to the WarningTreeWidget.
QList< QPointer< TargetInfoWidget > > m_targetInfoWidgets
List of TargetInfoWidgets.
Footprint2DView * addFootprint2DView(QString objectName="")
Add the qmos view widget to the window.
QPointer< WorkOrder > m_runJigsawWorkOrder
The Run Jigsaw WorkOrder.
QList< QPointer< SensorInfoWidget > > m_sensorInfoWidgets
List of SensorInfoWidgets.
QPointer< Project > m_project
Pointer to the Project.
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.
CnetEditorView * addCnetEditorView(Control *control, QString objectName="")
Add the widget for the cnet editor view to the window.
ControlPointEditView * controlPointEditView()
Gets the ControlPointEditWidget associated with the Directory.
QList< QPointer< Footprint2DView > > m_footprint2DViewWidgets
List of Footprint2DView objs.
bool controlUsedInCnetEditorWidget(Control *control)
@description Return true if control is not currently being viewed in a CnetEditorWidget
QList< QPointer< WorkOrder > > m_workOrders
List of WorkOrders.
QPointer< WorkOrder > m_openProjectWorkOrder
The Open Project WorkOrder.
QList< QAction * > helpMenuActions()
Get the list of actions that the Directory can provide for the help menu.
QPointer< WorkOrder > m_renameProjectWorkOrder
The Rename Project WorkOrder.
QString displayName() const
Returns the display name.
File name manipulation and expansion.
QString name() const
Returns the name of the file excluding the path and the attributes in the file name.
QString originalPath() const
Returns the path of the original file name.
@ Programmer
This error is for when a programmer made an API call that was illegal.
Internalizes a list of images and allows for operations on the entire list.
This opens a project that's saved on disk.
The main project for ipce.
QUndoStack * undoStack()
Returns the Projects stack of QUndoCommands.
void addToProject(WorkOrder *)
This executes the WorkOrder and stores it in the project.
QString projectRoot() const
Get the top-level folder of the project.
Control * activeControl()
Return the Active Control (control network)
static int maxRecentProjects()
Return max number of recent projects to be displayed.
Provides access to data stored in a Project through Qt's model-view framework.
A ProjectItemTreeView displays items from a ProjectItemProxyModel in a tree structure.
Change the project's GUI name.
void setActiveControlNet(bool activeNet)
Sets if there is an active control net.
TableViewContent * content()
Returns the content of the table.
Provide Undo/redo abilities, serialization, and history for an operation.
Manage a stack of content handlers for reading XML files.
This is free and unencumbered software released into the public domain.
This is free and unencumbered software released into the public domain.
This is free and unencumbered software released into the public domain.