Isis 3 Programmer Reference
Gui.h
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 
32 namespace 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 
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
Isis::Gui::InvokeHelper
void InvokeHelper(const QString &funct)
Activate helper buttons.
Definition: Gui.cpp:905
Isis::Gui::Progress
void Progress(int percent)
Update the progress bar.
Definition: Gui.cpp:571
QWidget
QProgressBar
Isis::GuiLog
Definition: GuiLog.h:18
QMainWindow
Isis::Gui::ResetParameters
void ResetParameters()
Reset the parameters fields to the defaults.
Definition: Gui.cpp:667
Isis::Gui::UpdateExclusions
void UpdateExclusions()
Grey out parameters that should be excluded for radio buttons and checkboxes.
Definition: Gui.cpp:808
Isis::Gui::LoadMessage
void LoadMessage(const QString &message)
Add more information to the error message.
Definition: Gui.cpp:586
Isis::Gui
Gui for Isis Applications.
Definition: Gui.h:73
Isis::Gui::ProcessEvents
bool ProcessEvents()
Let the event loop have some time to see if we need to cancel.
Definition: Gui.cpp:661
Isis::GuiParameter
Definition: GuiParameter.h:34
Isis::Gui::eventFilter
bool eventFilter(QObject *o, QEvent *e)
Reset the Progress bar when the user moves the mouse onto the toolbar.
Definition: Gui.cpp:622
Isis::Gui::UpdateCommandLine
void UpdateCommandLine()
Update the command line toolbar.
Definition: Gui.cpp:830
Isis::Gui::~Gui
~Gui()
Destructor.
Definition: Gui.cpp:175
Isis::Gui::ProgressText
void ProgressText(const QString &text)
Change progress text.
Definition: Gui.cpp:565
Isis::Gui::NextHistory
void NextHistory()
Goto the next history entry.
Definition: Gui.cpp:683
Isis::Gui::ShowWarning
int ShowWarning()
Show an error message and return if the user wants to continue/abort.
Definition: Gui.cpp:606
Isis::Gui::UpdateHistory
void UpdateHistory()
Changed the parameters based on the history pointer.
Definition: Gui.cpp:702
Isis::Gui::Log
void Log(const QString &text)
Write text to the gui log.
Definition: Gui.cpp:617
Isis::Gui::Gui
Gui(Isis::UserInterface &ui)
Constructor.
Definition: Gui.cpp:130
Isis::Gui::p_gui
static Gui * p_gui
Singleton.
Definition: Gui.h:101
Isis::UserInterface
Command Line and Xml loader, validation, and access.
Definition: UserInterface.h:140
Isis::Gui::Exec
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
Isis::Gui::checkX11
static void checkX11()
check to see if X is available
Definition: Gui.cpp:55
Isis::Gui::StartProcess
void StartProcess()
The user pressed the go button.
Definition: Gui.cpp:335
QMap< QString, QGridLayout * >
QObject
QAction
Isis::Gui::UpdateParameters
void UpdateParameters()
Update Parameters.
Definition: Gui.cpp:862
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::Gui::PreviousHistory
void PreviousHistory()
Goto the previous history entry.
Definition: Gui.cpp:689
Isis::Gui::StopProcessing
void StopProcessing()
The user pressed the stop button ... see what they want to do.
Definition: Gui.cpp:633