Isis Developer Reference
Gui.h
Go to the documentation of this file.
1#ifndef Isis_GuiMainWindow_h
2#define Isis_GuiMainWindow_h
3
9/* SPDX-License-Identifier: CC0-1.0 */
10
11#include <iostream>
12#include <string>
13#include <vector>
14
15#include <QAction>
16#include <QGroupBox>
17#include <QLabel>
18#include <QLayout>
19#include <QLineEdit>
20#include <QMainWindow>
21#include <QProgressBar>
22#include <QScrollArea>
23#include <QWidget>
24
25#include "PvlObject.h"
26#include "PvlGroup.h"
27
28#include "GuiLog.h"
29#include "GuiParameter.h"
30#include "GuiParameterFactory.h"
31
32namespace Isis {
73 class Gui : public QMainWindow {
74 Q_OBJECT
75
76 public:
77 static void checkX11();
78
79 static Gui *Create(Isis::UserInterface &ui, int &argc, char *argv[]);
80
81 void ProgressText(const QString &text);
82 void Progress(int percent);
83
84 int Exec(void (*funct)());
85 bool ProcessEvents();
86
87 void LoadMessage(const QString &message);
88 int ShowWarning();
89
90 void ShowLog() {};
91 void Log(const QString &text);
92
94 ~Gui();
95
96 bool eventFilter(QObject *o, QEvent *e);
97
98 public slots:
99
100 private:
101 static Gui *p_gui;
102
103 GuiParameter *AddParameter(Isis::UserInterface &ui, int group, int param);
104 void Preferences();
105 void CreateAreas();
106
107 QAction *CreateProcessAction();
108 QAction *CreateStopAction();
109 QAction *CreateExitAction();
110 QAction *CreateResetAction();
111 QAction *CreatePreviousHistoryAction();
112 QAction *CreateNextHistoryAction();
113 QAction *CreateSaveLogAction();
114 QAction *CreateClearLogAction();
115 QAction *CreateWhatsThisAction();
116
117 void (*p_funct)(); // Function to be called for procesing phase
118
119 QScrollArea *p_scrollArea; // Scrolling area for parameter group boxes
120 QWidget *p_scrollWidget; // Widget with layout for group boxes
121 QVBoxLayout *p_scrollLayout; // Layout for all parameter group boxes
122
123 QLabel *p_statusText;
124 QProgressBar *p_progressBar;
125 GuiLog *p_log;
126
127 QAction *p_processAction;
128 QAction *p_exitAction;
129 QAction *p_stopAction;
130 QAction *p_resetAction;
131 QAction *p_saveLogAction;
132 QAction *p_clearLogAction;
133 QAction *p_previousHistoryAction;
134 QAction *p_nextHistoryAction;
135
136 QMap<QString, QGridLayout *> p_grids;
137
138 std::vector<GuiParameter *> p_parameters;
139
140 QString p_errorString;
141 bool p_stop;
142
143 void UpdateHistory();
144 int p_historyEntry;
145
146 QLineEdit *p_commandLineEdit;
147
148 private slots:
149 void StartProcess();
150 void StopProcessing();
151
152 void ResetParameters();
153
154 void NextHistory();
155 void PreviousHistory();
156
157 void UpdateExclusions();
158 void UpdateCommandLine();
159 void UpdateParameters();
160
161 void WhatsThis();
162 void AboutProgram();
163 void AboutIsis();
164
165 void InvokeHelper(const QString &funct);
166 };
167};
168
169
170
171#endif
Gui for Isis Applications.
Definition Gui.h:73
~Gui()
Destructor.
Definition Gui.cpp:175
int Exec(void(*funct)())
Start the Gui and enter the main loop This routine only returns when the program is ready to exit.
Definition Gui.cpp:580
void Log(const QString &text)
Write text to the gui log.
Definition Gui.cpp:617
void ProgressText(const QString &text)
Change progress text.
Definition Gui.cpp:565
int ShowWarning()
Show an error message and return if the user wants to continue/abort.
Definition Gui.cpp:606
static Gui * Create(Isis::UserInterface &ui, int &argc, char *argv[])
Definition Gui.cpp:84
void Progress(int percent)
Update the progress bar.
Definition Gui.cpp:571
void LoadMessage(const QString &message)
Add more information to the error message.
Definition Gui.cpp:586
bool eventFilter(QObject *o, QEvent *e)
Reset the Progress bar when the user moves the mouse onto the toolbar.
Definition Gui.cpp:622
Gui(Isis::UserInterface &ui)
Constructor.
Definition Gui.cpp:130
bool ProcessEvents()
Let the event loop have some time to see if we need to cancel.
Definition Gui.cpp:661
void ShowLog()
Definition Gui.h:90
static void checkX11()
check to see if X is available
Definition Gui.cpp:55
Definition GuiLog.h:18
Definition GuiParameter.h:34
Command Line and Xml loader, validation, and access.
Definition UserInterface.h:139
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16