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"
110 "Could not create directory because Project could not be created.",
132 connect(
this, SIGNAL(cnetModified()),
m_project, SLOT(cnetModified()));
133 connect(
project(), SIGNAL(activeControlModified()),
this, SIGNAL(activeControlModified()));
136 connect(
m_project, SIGNAL(discardActiveControlEdits()),
141 connect(
m_projectItemModel, SIGNAL(cleanProject(
bool)),
this, SIGNAL(cleanProject(
bool)));
146 createWorkOrder<SetActiveImageListWorkOrder>();
147 createWorkOrder<SetActiveControlWorkOrder>();
148 createWorkOrder<CnetEditorViewWorkOrder>();
149 createWorkOrder<CubeDnViewWorkOrder>();
150 createWorkOrder<Footprint2DViewWorkOrder>();
151 createWorkOrder<MatrixViewWorkOrder>();
152 createWorkOrder<SensorGetInfoWorkOrder>();
154 createWorkOrder<TargetGetInfoWorkOrder>();
155 createWorkOrder<BundleObservationViewWorkOrder>();
156 createWorkOrder<TemplateEditViewWorkOrder>();
157 createWorkOrder<ControlHealthMonitorWorkOrder>();
173 m_recentProjectsLoaded =
false;
177 "Could not create directory because work orders are corrupt.",
288 emit directoryCleaned();
292 m_bundleObservationViews.clear();
297 m_controlPointEditViewWidget.clear();
318 if (m_recentProjectsLoaded) {
319 QMenu *recentProjectsMenu =
new QMenu(
"&Recent Projects");
323 QString actionText(action->text());
324 if (actionText ==
"&Recent Projects") {
326 recentProjectsMenu = qobject_cast<QMenu*>(action->parentWidget());
334 openRecentProjectAction->setText(projName);
337 if (recentProjectsMenu->isEmpty())
339 recentProjectsMenu->addAction(openRecentProjectAction);
343 QAction *firstAction = recentProjectsMenu->actions().at(0);
346 if (firstAction->text() == projName) {
352 foreach (
QAction *action, recentProjectsMenu->actions()) {
353 if (action->text() == projName) {
354 openRecentProjectAction = action;
359 recentProjectsMenu->insertAction(firstAction, openRecentProjectAction);
361 recentProjectsMenu->removeAction(recentProjectsMenu->actions().last());
367 QMenu *recentProjectsMenu = fileMenu->addMenu(
"&Recent Projects");
370 for (
int i = 0; i < nRecentProjects; i++) {
373 if (!projectFileName.fileExists() )
384 openRecentProjectAction->setText(
m_recentProjects.at(i).split(
"/").last() );
386 recentProjectsMenu->addAction(openRecentProjectAction);
388 fileMenu->addSeparator();
390 m_recentProjectsLoaded =
true;
414 openProjectAction->setIcon(QIcon(
FileName(
415 "$ISISROOT/appdata/images/icons/archive-insert-directory.png").expanded()));
416 fileMenu->addAction(openProjectAction);
421 saveAction->setShortcut(Qt::Key_S | Qt::CTRL);
422 saveAction->setIcon( QIcon(
FileName(
"$ISISROOT/appdata/images/icons/document-save.png")
424 saveAction->setDisabled(
true);
425 connect(
project()->undoStack(), SIGNAL( cleanChanged(
bool) ),
426 saveAction, SLOT( setDisabled(
bool) ) );
427 fileMenu->addAction(saveAction);
431 saveAsAction->setIcon(QIcon(
FileName(
"$ISISROOT/appdata/images/icons/document-save-as.png")
433 fileMenu->addAction(saveAsAction);
436 fileMenu->addSeparator();
438 QMenu *importMenu = fileMenu->addMenu(
"&Import");
443 QMenu *importTemplateMenu = importMenu->addMenu(
"&Import Templates");
447 QMenu *exportMenu = fileMenu->addMenu(
"&Export");
453 clone->setEnabled(
false);
455 clone, SLOT(enableWorkOrder()));
459 exportMenu->addAction(clone);
463 clone->setEnabled(
false);
465 clone, SLOT(enableWorkOrder()));
466 exportMenu->addAction(clone);
468 fileMenu->addSeparator();
479 if (
project()->controls().count() &&
project()->images().count()) {
480 clone->setEnabled(
true);
483 clone->setEnabled(
false);
487 connect(
m_project, SIGNAL(controlsAndImagesAvailable()),
488 clone, SLOT(enableWorkOrder()));
550 if (cnetEditorView->control() ==
project()->activeControl()) {
551 emit closeView(cnetEditorView);
567 if (newControl && m_controlPointEditViewWidget) {
568 emit closeView(m_controlPointEditViewWidget);
569 delete m_controlPointEditViewWidget;
575 if (cnetEditorView->control() ==
project()->activeControl()) {
576 cnetEditorView->cnetEditorWidget()->pointTableView()->content()->setActiveControlNet(
true);
577 cnetEditorView->cnetEditorWidget()->measureTableView()->content()->setActiveControlNet(
true);
580 cnetEditorView->cnetEditorWidget()->pointTableView()->content()->setActiveControlNet(
false);
581 cnetEditorView->cnetEditorWidget()->measureTableView()->content()->setActiveControlNet(
false);
603 connect( result, SIGNAL( destroyed(
QObject *) ),
606 connect(result, SIGNAL(windowChangeEvent(
bool)),
609 m_bundleObservationViews.append(result);
611 QString str = fileItem->fileName();
612 FileName fileName = fileItem->fileName();
616 int pos = path.lastIndexOf(
"/");
617 QString bundleResultsName =
"";
619 bundleResultsName = path.remove(0,pos+1);
622 if (str.contains(
"bundleout")) {
623 result->setWindowTitle( tr(
"Summary (%1)").
624 arg( bundleResultsName ) );
625 result->setObjectName( result->windowTitle() );
627 if (str.contains(
"residuals")) {
628 result->setWindowTitle( tr(
"Measure Residuals (%1)").
629 arg( bundleResultsName ) );
630 result->setObjectName( result->windowTitle() );
632 else if (str.contains(
"points")) {
633 result->setWindowTitle( tr(
"Control Points (%1)").
634 arg( bundleResultsName ) );
635 result->setObjectName( result->windowTitle() );
637 else if (str.contains(
"images")) {
638 result->setWindowTitle( tr(
"Images (%1)").
639 arg( bundleResultsName ) );
640 result->setObjectName( result->windowTitle() );
643 emit newWidgetAvailable(result);
657 FileName configFile(
"$HOME/.Isis/" + QApplication::applicationName() +
"/" + title +
".config");
661 if (
project()->activeControl() && (control ==
project()->activeControl())) {
667 connect(result, SIGNAL( destroyed(
QObject *) ),
670 connect(result, SIGNAL(windowChangeEvent(
bool)),
678 connect(result->
cnetEditorWidget(), SIGNAL(cnetModified()),
this, SIGNAL(cnetModified()));
679 connect(
this, SIGNAL(cnetModified()), result->
cnetEditorWidget(), SLOT(rebuildModels()));
684 result->setWindowTitle(title);
685 if (objectName !=
"") {
686 result->setObjectName(objectName);
690 QString newObjectName = QUuid::createUuid().toString().remove(QRegExp(
"[{}]"));
691 result->setObjectName(newObjectName);
694 emit newWidgetAvailable(result);
708 connect( result, SIGNAL( destroyed(
QObject *) ),
711 connect(result, SIGNAL(windowChangeEvent(
bool)),
716 if (objectName !=
"") {
717 result->setObjectName(objectName);
721 QString newObjectName = QUuid::createUuid().toString().remove(QRegExp(
"[{}]"));
722 result->setObjectName(newObjectName);
725 emit newWidgetAvailable(result);
740 connect(
this, SIGNAL(redrawMeasures()), result, SIGNAL(redrawMeasures()));
743 connect(
this, SIGNAL(activeControlModified()), result, SIGNAL(redrawMeasures()));
745 connect (
project(), SIGNAL(activeControlSet(
bool)),
746 result, SLOT(enableControlNetTool(
bool)));
763 if (objectName !=
"") {
764 result->setObjectName(objectName);
768 QString newObjectName = QUuid::createUuid().toString().remove(QRegExp(
"[{}]"));
769 result->setObjectName(newObjectName);
772 connect(result, SIGNAL(destroyed(
QObject *)),
775 connect(result, SIGNAL(windowChangeEvent(
bool)),
778 emit newWidgetAvailable(result);
793 connect(
this, SIGNAL(activeControlModified()), result->
mosaicSceneWidget(), SIGNAL(cnetModified()));
799 connect(
this, SIGNAL(redrawMeasures()), result, SIGNAL(redrawMeasures()));
801 connect (
project(), SIGNAL(activeControlSet(
bool)),
802 result, SLOT(enableControlNetTool(
bool)));
808 return m_controlHealthMonitorView;
814 if (!controlHealthMonitorView()) {
817 if (activeControl == NULL) {
818 QString message =
"No active control network chosen. Choose active control network on "
820 QMessageBox::critical(qobject_cast<QWidget *>(parent()),
"Error", message);
825 result->setWindowTitle(tr(
"Control NetHealth Monitor"));
826 result->setObjectName(result->windowTitle());
828 m_controlHealthMonitorView = result;
829 emit newWidgetAvailable(result);
831 return controlHealthMonitorView();
840 result->setWindowTitle(tr(
"Control Point Editor"));
841 result->setObjectName(result->windowTitle());
844 if (activeControl == NULL) {
846 QString message =
"No active control network chosen. Choose active control network on "
848 QMessageBox::critical(qobject_cast<QWidget *>(parent()),
"Error", message);
853 if (!
project()->activeImageList() || !
project()->activeImageList()->serialNumberList()) {
854 QString message =
"No active image list chosen. Choose an active image list on the project "
856 QMessageBox::critical(qobject_cast<QWidget *>(parent()),
"Error", message);
860 project()->activeImageList()->serialNumberList());
862 m_controlPointEditViewWidget = result;
864 connect(result, SIGNAL(destroyed(
QObject *)),
866 emit newWidgetAvailable(result);
884 this, SIGNAL(cnetModified()));
886 connect (
project(), SIGNAL(activeControlSet(
bool)),
889 connect(result, SIGNAL(windowChangeEvent(
bool)),
893 connect(
m_project, SIGNAL(cnetSaved(
bool)),
907 connect(result, SIGNAL(destroyed(
QObject *)),
this, SLOT(cleanupchipViewportWidges()));
908 m_controlPointChipViews.append(result);
909 result->setWindowTitle(tr(
"ChipViewport View %1").arg(m_controlPointChipViews.count()));
910 result->setObjectName(result->windowTitle());
911 emit newWidgetAvailable(result);
925 connect( result, SIGNAL( destroyed(
QObject *) ),
931 result->setObjectName( result->windowTitle() );
933 emit newWidgetAvailable(result);
946 connect( result, SIGNAL( destroyed(
QObject *) ),
951 result->setWindowTitle( tr(
"%1").arg(target->displayProperties()->displayName() ) );
952 result->setObjectName( result->windowTitle() );
954 emit newWidgetAvailable(result);
967 connect( result, SIGNAL( destroyed(
QObject *) ),
972 result->setWindowTitle( tr(
"%1").arg(
FileName(currentTemplate->fileName()).
name() ) );
973 result->setObjectName( result->windowTitle() );
975 emit newWidgetAvailable(result);
981 if (jigsawRunWidget()) {
986 connect( result, SIGNAL( destroyed(
QObject *) ),
987 this, SLOT( cleanupJigsawRunWidget(
QObject *) ) );
990 result->setAttribute(Qt::WA_DeleteOnClose);
993 emit newWidgetAvailable(result);
1005 connect( result, SIGNAL( destroyed(
QObject *) ),
1010 result->setWindowTitle( tr(
"%1").arg(camera->displayProperties()->displayName() ) );
1011 result->setObjectName( result->windowTitle() );
1013 emit newWidgetAvailable(result);
1027 connect( result, SIGNAL( destroyed(
QObject *) ),
1034 if (objectName !=
"") {
1035 result->setObjectName(objectName);
1039 QString newObjectName = QUuid::createUuid().toString().remove(QRegExp(
"[{}]"));
1040 result->setObjectName(newObjectName);
1054 result->setWindowTitle( tr(
"Project"));
1055 result->setObjectName( result->windowTitle() );
1062 connect(result, SIGNAL(windowChangeEvent(
bool)),
1109 if (!bundleObservationView) {
1112 m_bundleObservationViews.removeAll(bundleObservationView);
1136 if (!cnetEditorView) {
1192 if (!imageFileListWidget) {
1206 if (!footprintView) {
1223 m_controlPointEditViewWidget = NULL;
1235 if (!matrixWidget) {
1249 if (!sensorInfoWidget) {
1263 if (!targetInfoWidget) {
1277 if (!templateEditorWidget) {
1286 void Directory::cleanupJigsawRunWidget(
QObject *obj) {
1288 if (!jigsawRunWidget) {
1319 QList<CnetEditorView *> results;
1322 results.append(widget);
1334 QList<CubeDnView *> results;
1337 results.append(widget);
1349 QList<MatrixSceneWidget *> results;
1352 results.append(widget);
1364 QList<SensorInfoWidget *> results;
1367 results.append(widget);
1379 QList<TargetInfoWidget *> results;
1382 results.append(widget);
1394 QList<TemplateEditorWidget *> results;
1397 results.append(widget);
1409 QList<Footprint2DView *> results;
1412 results.append(view);
1424 QList<ImageFileListWidget *> results;
1427 results.append(widget);
1439 return m_controlPointEditViewWidget;
1470 QList<QProgressBar *> result;
1513 stream.writeStartElement(
"directory");
1516 stream.writeStartElement(
"fileListWidgets");
1519 fileListWidget->
save(stream,
project(), newProjectRoot);
1522 stream.writeEndElement();
1527 stream.writeStartElement(
"footprintViews");
1530 footprint2DViewWidget->save(stream,
project(), newProjectRoot);
1533 stream.writeEndElement();
1538 stream.writeStartElement(
"cubeDnViews");
1541 cubeDnView->save(stream,
project(), newProjectRoot);
1544 stream.writeEndElement();
1549 stream.writeStartElement(
"cnetEditorViews");
1552 cnetEditorWidget->
save(stream,
project(), newProjectRoot);
1555 stream.writeEndElement();
1559 stream.writeEndElement();
1624 QList<
QPair< QString, QList<QAction *> > > actionPairings) {
1625 QList<QAction *> results;
1630 QMap< QString, QList< QPair<QString, QAction *> > > restructuredData;
1632 QPair< QString, QList<QAction *> > singleWidgetPairing;
1633 foreach (singleWidgetPairing, actionPairings) {
1634 QString widgetTitle = singleWidgetPairing.first;
1635 QList<QAction *> widgetActions = singleWidgetPairing.second;
1637 foreach (
QAction *widgetAction, widgetActions) {
1639 QString actionText = widgetAction->text();
1641 restructuredData[actionText].append( qMakePair(widgetTitle, widgetAction) );
1643 if ( !sortedActionTexts.contains(actionText) ) {
1644 sortedActionTexts.append(actionText);
1649 if ( !sortedActionTexts.isEmpty() && !sortedActionTexts.last().isEmpty() ) {
1650 sortedActionTexts.append(
"");
1656 if ( sortedActionTexts.count() && sortedActionTexts.last().isEmpty() ) {
1657 sortedActionTexts.removeLast();
1660 foreach (QString actionText, sortedActionTexts) {
1661 if ( actionText.isEmpty() ) {
1662 results.append(NULL);
1667 QList< QPair<QString, QAction *> > actions = restructuredData[actionText];
1669 if (actions.count() == 1) {
1670 QAction *finalAct = actions.first().second;
1671 QString widgetTitle = actions.first().first;
1673 finalAct->setText( tr(
"%1 on %2").arg(actionText).arg(widgetTitle) );
1674 results.append(finalAct);
1680 menuAct->setMenu(menu);
1682 QList<QAction *> actionsInsideMenu;
1684 QPair<QString, QAction *> widgetTitleAndAction;
1685 foreach (widgetTitleAndAction, actions) {
1686 QString widgetTitle = widgetTitleAndAction.first;
1687 QAction *action = widgetTitleAndAction.second;
1689 action->setText(widgetTitle);
1690 actionsInsideMenu.append(action);
1697 foreach (
QAction *actionInMenu, actionsInsideMenu) {
1698 connect( allAct, SIGNAL( triggered() ),
1699 actionInMenu, SIGNAL( triggered() ) );
1700 menu->addAction(actionInMenu);
1703 menu->addSeparator();
1704 menu->addAction(allAct);
1706 results.append(menuAct);
1724 return lhs->text().localeAwareCompare( rhs->text() ) < 0;
1736 m_controlPointEdit, SLOT(loadControlPoint(
ControlPoint *)));
1737 connect(m_cnetEditor, SIGNAL(controlPointCreated(
ControlPoint *)),
1738 m_controlPointEditWidget, SLOT(setEditPoint(
ControlPoint *)));
1744 connect( m_cnetEditor, SIGNAL( controlPointDeleted() ),
1750 connect(m_controlPointEditWidget, SIGNAL(controlPointChanged(QString)),
1770 if (!addControlPointEditView()) {
1775 emit redrawMeasures();
1792 if (!addControlPointEditView()) {
1799 emit redrawMeasures();
1820 bool isGroundSource) {
1823 if (!addControlPointEditView()) {
1828 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.
QString m_editPointId
Current control point that is in the ControlPointEditWidget.
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.
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.