Project Documentation Manager BRIGADOON-0002
Project Documentation Manager
Loading...
Searching...
No Matches
ProjectListManager Class Reference

#include <projectlistmanager.h>

Inheritance diagram for ProjectListManager:
[legend]
Collaboration diagram for ProjectListManager:
[legend]

Public Slots

void ProjectTabChanged (int Index)
 Process the Change in Window Tab.
void LoadProjectTable (void)
 Clear and Reload the Project table, Sort by Selected Button \SortButton Button pressed to sort the Table List.
void ProcessFullList (void)
 Add all Projects for Documentation Creation.
void ProcessSelection (void)
 Add th Selected Project for Documentation Creation.
void PrStateChange (PROJECT_INFORMATION *Project)
 Update the Lock/Queued Status of Project in the Project List Table.
void OutputProjectLists (void)
 Output the Project Lists to text and HTML.

Signals

void SendLogEntry (REMOTE_LOG_ENTRY log_entry)

Public Member Functions

 ProjectListManager (Ui::MainWindow *UI_Window)
 Project List Manager Class Constructor.
 ~ProjectListManager ()
 Project List Manager Class Destructor.
QString MakeHTMLProjectPage (QString HeaderTemplateFile, QString FooterTemplateFile, QString LineTemplateFile, bool TableOnly=true)
QString MakeOSProjectPage (void)

Private Slots

void PressedInstallOff (void)
 Turn all Install Check boxes off in List table.
void PressedInstallOn (void)
 Turn all Install Check boxes on in List table.
void PressedArchiveOff (void)
 Turn all Archive Check boxes off in List table.
void PressedPublishOn (void)
void PressedPublishOff (void)
 Turn all Archive Check boxes off in List table.
void PressedArchiveOn (void)
 Turn all Archive Check boxes on in List table.

Private Member Functions

void InitaliseProjectTable (void)
 Clear and Load the Project List Table.
void SetMaximumProjects (void)
 Set the Initial Line Count in the Project List table.
QString ReadTableTemplate (QString TemplateFile)
 Read an HTML template from a File.
bool WriteTextFile (QString FileName, QString Contents)
 Write a String to a File.
int FindSelections (int index)
 Read and Encode selected options for a Project.
void SetCheckState (int column, bool InstallState)
 Set the State of all Project Selection in Table List.
void LogAdd (LOGGING_SEVERITY Severity, LOGGING_MODE Mode, QString Message)
 Send Message to the Log.

Private Attributes

Ui::MainWindow * ui
QButtonGroup * sort_group
 Pointer to Button Group for sorting Project List Table.
QString base_project_query
 Basic SQL Query for listing Projects.
QList< PROJECT_INFORMATION * > ProjectList
 A list of Projects to be processed.

Detailed Description

Definition at line 131 of file projectlistmanager.h.

Constructor & Destructor Documentation

◆ ProjectListManager()

ProjectListManager::ProjectListManager ( Ui::MainWindow * UI_Window)

Project List Manager Class Constructor.

Parameters
UI_WindowPointer to the Main Window

Definition at line 15 of file projectlistmanager.cpp.

16{
17 ProjectList.clear();
18 ui = UI_Window;
19 QObject::connect(ui->AutoInstallOff, SIGNAL(pressed()), this, SLOT(PressedInstallOff()));
20 QObject::connect(ui->AutoInstallOn, SIGNAL(pressed()), this, SLOT(PressedInstallOn()));
21
22 QObject::connect(ui->AutoArchiveOff, SIGNAL(pressed()), this, SLOT(PressedArchiveOff()));
23 QObject::connect(ui->AutoArchiveOn, SIGNAL(pressed()), this, SLOT(PressedArchiveOn()));
24
25 QObject::connect (ui->AutoPublishOff, SIGNAL (pressed ()), this,
26 SLOT (PressedPublishOff ()));
27
28 QObject::connect (ui->AutoPublishOn, SIGNAL (pressed ()), this,
29 SLOT (PressedPublishOn ()));
30
31 base_project_query = QString (
32 "select project_index from project where project_index != 1");
33
34 ui->ProjectTableWidget->setColumnCount( TABLE_COLUMN_COUNT );
36
37 ui->ProjectTableWidget->setHorizontalHeaderLabels( QStringList( {"Proj. Ident", "Proj. Name", "Target", "Status", "Proj. Contact", "Brief Desc.", "Dev. Family", "Comp. Lang.", "Assoc Group",
38 "S/W Licence", "H/W Licence", "Doc Licence", "Inst", "Arch", "Publish"} ));
39
40 ui->ProjectTableWidget->setColumnWidth( PROJECT_IDENT_COLUMN, PROJECT_IDENT_SIZE );
41 ui->ProjectTableWidget->setColumnWidth( PROJECT_NAME_COLUMN, PROJECT_NAME_SIZE );
42 ui->ProjectTableWidget->setColumnWidth( TARGET_FAMILY_COLUMN, TARGET_FAMILY_SIZE );
43 ui->ProjectTableWidget->setColumnWidth( PROJECT_CONTACT_COLUMN, PROJECT_CONTACT_SIZE );
44 ui->ProjectTableWidget->setColumnWidth( PROJECT_STATUS_COLUMN, PROJECT_STATUS_SIZE);
45 ui->ProjectTableWidget->setColumnWidth( BRIEF_DESC_COLUMN, BRIEF_DESC_SIZE );
46 ui->ProjectTableWidget->setColumnWidth( DEV_FAMILY_COLUMN, DEV_FAMILY_SIZE );
47 ui->ProjectTableWidget->setColumnWidth( COMPILER_FAMILY_COLUMN, COMPILER_FAMILY_SIZE );
48 ui->ProjectTableWidget->setColumnWidth( ASSOCIATION_COLUMN, ASSOCIATION_SIZE );
49 ui->ProjectTableWidget->setColumnWidth( SOFTWARE_LICENCE_COLUMN, SOFTWARE_LICENCE_SIZE );
50 ui->ProjectTableWidget->setColumnWidth( HARDWARE_LICENCE_COLUMN, HARDWARE_LICENCE_SIZE );
51 ui->ProjectTableWidget->setColumnWidth( DOC_LICENCE_COLUMN, DOC_LICENCE_SIZE );
52 ui->ProjectTableWidget->setColumnWidth( ARCHIVE_BUTTON_COLUMN, ARCHIVE_BUTTON_SIZE );
53 ui->ProjectTableWidget->setColumnWidth( INSTALL_BUTTON_COLUMN, INSTALL_BUTTON_SIZE );
54 ui->ProjectTableWidget->setColumnWidth( PUBLISH_BUTTON_COLUMN, PUBLISH_BUTTON_SIZE );
55}
void SetMaximumProjects(void)
Set the Initial Line Count in the Project List table.
void PressedInstallOff(void)
Turn all Install Check boxes off in List table.
QList< PROJECT_INFORMATION * > ProjectList
A list of Projects to be processed.
QString base_project_query
Basic SQL Query for listing Projects.
void PressedArchiveOn(void)
Turn all Archive Check boxes on in List table.
void PressedArchiveOff(void)
Turn all Archive Check boxes off in List table.
void PressedInstallOn(void)
Turn all Install Check boxes on in List table.
void PressedPublishOff(void)
Turn all Archive Check boxes off in List table.
#define TABLE_COLUMN_COUNT
Number of Columns in the Project List Table.
@ DOC_LICENCE_COLUMN
@ SOFTWARE_LICENCE_COLUMN
@ PROJECT_CONTACT_COLUMN
@ TARGET_FAMILY_COLUMN
@ PUBLISH_BUTTON_COLUMN
@ PROJECT_STATUS_COLUMN
@ ASSOCIATION_COLUMN
@ INSTALL_BUTTON_COLUMN
@ COMPILER_FAMILY_COLUMN
@ ARCHIVE_BUTTON_COLUMN
@ HARDWARE_LICENCE_COLUMN
@ DEV_FAMILY_COLUMN
@ PROJECT_IDENT_COLUMN
@ PROJECT_NAME_COLUMN
@ BRIEF_DESC_COLUMN
#define ASSOCIATION_SIZE
The width of the Association Column.
#define PROJECT_CONTACT_SIZE
The width of the Project Contact Column.
#define COMPILER_FAMILY_SIZE
The width of the Compiler Family Column.
#define DEV_FAMILY_SIZE
#define PROJECT_NAME_SIZE
The width of the Project Name Column.
#define PROJECT_IDENT_SIZE
The width of the Project Ident Column.
#define BRIEF_DESC_SIZE
The width of the Brief Description Column.
#define ARCHIVE_BUTTON_SIZE
The width of the Archive Button Column.
#define SOFTWARE_LICENCE_SIZE
The width of the Software Licence Column.
#define HARDWARE_LICENCE_SIZE
#define INSTALL_BUTTON_SIZE
The width of the Install Button Column.
#define PUBLISH_BUTTON_SIZE
The width of the Publish Button Column.
#define TARGET_FAMILY_SIZE
The width of the Target Family Column.
#define PROJECT_STATUS_SIZE
The width of the Project Status Column.
#define DOC_LICENCE_SIZE
The width of the Documentation Licence Column.

References ARCHIVE_BUTTON_COLUMN, ARCHIVE_BUTTON_SIZE, ASSOCIATION_COLUMN, ASSOCIATION_SIZE, base_project_query, BRIEF_DESC_COLUMN, BRIEF_DESC_SIZE, COMPILER_FAMILY_COLUMN, COMPILER_FAMILY_SIZE, DEV_FAMILY_COLUMN, DEV_FAMILY_SIZE, DOC_LICENCE_COLUMN, DOC_LICENCE_SIZE, HARDWARE_LICENCE_COLUMN, HARDWARE_LICENCE_SIZE, INSTALL_BUTTON_COLUMN, INSTALL_BUTTON_SIZE, PressedArchiveOff(), PressedArchiveOn(), PressedInstallOff(), PressedInstallOn(), PressedPublishOff(), PressedPublishOn(), PROJECT_CONTACT_COLUMN, PROJECT_CONTACT_SIZE, PROJECT_IDENT_COLUMN, PROJECT_IDENT_SIZE, PROJECT_NAME_COLUMN, PROJECT_NAME_SIZE, PROJECT_STATUS_COLUMN, PROJECT_STATUS_SIZE, ProjectList, PUBLISH_BUTTON_COLUMN, PUBLISH_BUTTON_SIZE, SetMaximumProjects(), SOFTWARE_LICENCE_COLUMN, SOFTWARE_LICENCE_SIZE, TABLE_COLUMN_COUNT, TARGET_FAMILY_COLUMN, TARGET_FAMILY_SIZE, and ui.

Here is the call graph for this function:

◆ ~ProjectListManager()

ProjectListManager::~ProjectListManager ( void )

Project List Manager Class Destructor.

Definition at line 58 of file projectlistmanager.cpp.

59{
60
61}

Member Function Documentation

◆ FindSelections()

int ProjectListManager::FindSelections ( int index)
private

Read and Encode selected options for a Project.

Parameters
indexThe row index in the Project List Table
Returns
Ecoded Selected Options for the Project

Definition at line 257 of file projectlistmanager.cpp.

258{
259 int selections = 0;
260
261 QCheckBox* check_widget = (QCheckBox*)ui->ProjectTableWidget->cellWidget(index, ARCHIVE_BUTTON_COLUMN);
262 if (check_widget->isChecked())
263 {
264 selections |= CREATE_SOURCE_ARCHIVE;
265 }
266
267 check_widget = (QCheckBox*)ui->ProjectTableWidget->cellWidget(index, INSTALL_BUTTON_COLUMN);
268 if (check_widget->isChecked())
269 {
270 selections |= INSTALL_SCRIPT_MASK;
271 }
272
273 check_widget = (QCheckBox *)ui->ProjectTableWidget->cellWidget (
274 index, PUBLISH_BUTTON_COLUMN);
275 if (check_widget->isChecked ())
276 {
277 selections |= PUBLISH_MASK;
278 }
279
280 return (selections);
281}
#define PUBLISH_MASK
Bit Mask for publishing the Doxygen Files.
#define INSTALL_SCRIPT_MASK
Bit Mask for the Install Script.
#define CREATE_SOURCE_ARCHIVE
Create a SOurce Archive when Documentation Generated.

References ARCHIVE_BUTTON_COLUMN, CREATE_SOURCE_ARCHIVE, INSTALL_BUTTON_COLUMN, INSTALL_SCRIPT_MASK, PUBLISH_BUTTON_COLUMN, PUBLISH_MASK, and ui.

Referenced by ProcessSelection().

Here is the caller graph for this function:

◆ InitaliseProjectTable()

void ProjectListManager::InitaliseProjectTable ( void )
private

Clear and Load the Project List Table.

Definition at line 104 of file projectlistmanager.cpp.

105{
107}
void LoadProjectTable(void)
Clear and Reload the Project table, Sort by Selected Button \SortButton Button pressed to sort the Ta...

References LoadProjectTable().

Referenced by ProjectTabChanged().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LoadProjectTable

void ProjectListManager::LoadProjectTable ( void )
slot

Clear and Reload the Project table, Sort by Selected Button \SortButton Button pressed to sort the Table List.

Definition at line 109 of file projectlistmanager.cpp.

110{
111 ProjectList.clear();
113 QString sort_type;
114 sort_type = QString(" order by project_ident desc");
115 QString query_string = base_project_query + sort_type;
116
117 // Clear the Table Widget before Starting to Add Projects
118 ui->ProjectTableWidget->clearContents();
119 ui->ProjectTableWidget->setEnabled(true);
120
121 // Search for the Project List
122 QSqlQuery project_query(query_string);
123
124 int row = 0;
125 while( project_query.next())
126 {
127 PROJECT_INFORMATION* project_file_info = new PROJECT_INFORMATION;
128
129 // Load all of the Data about this Project
130 read_project_info->LoadProjectInfo(project_file_info, project_query.value(0).toInt(), ui->ProjectPrefix->currentIndex() + 1);
131 project_subs_manager->LoadFileSubsList(project_file_info);
132 ProjectList.append(project_file_info);
133
134 // Make A Table Widget for the Project Identifier and Insert
135 QTableWidgetItem *new_project_ident = new QTableWidgetItem(project_file_info->ProjectDesc.ProjectIdent);
136 new_project_ident->setFlags(new_project_ident->flags() & ~(Qt::ItemIsEditable | Qt::ItemIsSelectable));
137 ui->ProjectTableWidget->setItem( row, PROJECT_IDENT_COLUMN, new_project_ident );
138 PrStateChange (project_file_info);
139
140 // Make A Table Widget for the Project Name and Insert
141 QTableWidgetItem *new_project_name = new QTableWidgetItem(project_file_info->ProjectDesc.ProjectName);
142 new_project_name->setFlags(new_project_name->flags() & ~(Qt::ItemIsEditable | Qt::ItemIsSelectable));
143 ui->ProjectTableWidget->setItem( row, PROJECT_NAME_COLUMN, new_project_name );
144
145 // Make A Table Widget for the Target System and Insert
146 QTableWidgetItem *new_target_system = new QTableWidgetItem(project_file_info->TargetFamilyInfo.ShortName);
147 new_target_system->setFlags(new_target_system->flags() & ~(Qt::ItemIsEditable | Qt::ItemIsSelectable));
148 ui->ProjectTableWidget->setItem( row, TARGET_FAMILY_COLUMN, new_target_system );
149
150 // Get the DEveloper Name, Create Table Widget and Insert in Table
151 QTableWidgetItem *new_project_contact = new QTableWidgetItem(project_file_info->Developer.Name);
152 new_project_contact->setFlags(new_project_contact->flags() & ~(Qt::ItemIsEditable | Qt::ItemIsSelectable));
153 ui->ProjectTableWidget->setItem( row, PROJECT_CONTACT_COLUMN, new_project_contact );
154
155 // Get the Project Status Name, Create Table Widget and Insert in Table
156 QTableWidgetItem *new_project_status = new QTableWidgetItem(project_file_info->StatusInfo.StatusName);
157 new_project_status->setFlags(new_project_status->flags() & ~(Qt::ItemIsEditable | Qt::ItemIsSelectable));
158 ui->ProjectTableWidget->setItem( row, PROJECT_STATUS_COLUMN, new_project_status );
159
160 // Get the Brief Description, Create Table Widget and Insert in Table
161 QTableWidgetItem *new_brief_desc = new QTableWidgetItem(project_file_info->ProjectDesc.BriefDescription);
162 new_brief_desc->setFlags(new_project_ident->flags() & ~(Qt::ItemIsEditable | Qt::ItemIsSelectable));
163 ui->ProjectTableWidget->setItem( row, BRIEF_DESC_COLUMN, new_brief_desc );
164
165 // Get the Development Family, Create Table Widget and Insert in Table
166 QTableWidgetItem *new_dev_family = new QTableWidgetItem(project_file_info->DevFamilyInfo.ShortName);
167 new_dev_family->setFlags(new_dev_family->flags() & ~(Qt::ItemIsEditable | Qt::ItemIsSelectable));
168 ui->ProjectTableWidget->setItem( row, DEV_FAMILY_COLUMN, new_dev_family );
169
170 // Get the Compiler Family, Create Table Widget and Insert in Table
171 QTableWidgetItem *new_comp_family = new QTableWidgetItem(project_file_info->LangFamilyInfo.ShortName);
172 new_comp_family->setFlags(new_comp_family->flags() & ~(Qt::ItemIsEditable | Qt::ItemIsSelectable));
173 ui->ProjectTableWidget->setItem( row, COMPILER_FAMILY_COLUMN, new_comp_family );
174
175 // Get the Association Family, Create Table Widget and Insert in Table
176 QTableWidgetItem *new_assoc_family = new QTableWidgetItem(project_file_info->InAssocInfo.ShortName);
177 new_assoc_family->setFlags(new_assoc_family->flags() & ~(Qt::ItemIsEditable | Qt::ItemIsSelectable));
178 ui->ProjectTableWidget->setItem( row, ASSOCIATION_COLUMN, new_assoc_family );
179
180 // Get the Software Licence, Create Table Widget and Insert in Table
181 QTableWidgetItem *new_software_licence = new QTableWidgetItem(project_file_info->SoftwareLicence.ShortName);
182 new_software_licence->setFlags(new_software_licence->flags() & ~(Qt::ItemIsEditable | Qt::ItemIsSelectable));
183 ui->ProjectTableWidget->setItem( row, SOFTWARE_LICENCE_COLUMN, new_software_licence );
184
185 // Get the Software Licence, Create Table Widget and Insert in Table
186 QTableWidgetItem *new_hardware_licence = new QTableWidgetItem(project_file_info->HardwareLicence.ShortName);
187 new_hardware_licence->setFlags(new_hardware_licence->flags() & ~(Qt::ItemIsEditable | Qt::ItemIsSelectable));
188 ui->ProjectTableWidget->setItem( row, HARDWARE_LICENCE_COLUMN, new_hardware_licence );
189
190 // Get the Documentation Licence, Create Table Widget and Insert in Table
191 QTableWidgetItem *new_doc_licence = new QTableWidgetItem(project_file_info->DocLicence.ShortName);
192 new_doc_licence->setFlags(new_doc_licence->flags() & ~(Qt::ItemIsEditable | Qt::ItemIsSelectable));
193 ui->ProjectTableWidget->setItem( row, DOC_LICENCE_COLUMN, new_doc_licence );
194 QWidget *check_box_widget1 = new QWidget();
195 QCheckBox *install_button = new QCheckBox();
196 install_button->setText("");
197 install_button->setChecked((project_file_info->ProjectDesc.ProjectOptions & ALLOW_AUTOMATIC_INSTALL));
198 install_button->setCheckable((project_file_info->ProjectDesc.ProjectOptions & ALLOW_AUTOMATIC_INSTALL));
199 QHBoxLayout *layout_check_box1 = new QHBoxLayout( check_box_widget1 );
200 layout_check_box1->addWidget(install_button); //add QCheckBox to layout
201 layout_check_box1->setAlignment(Qt::AlignCenter); //set Alignment layout
202 layout_check_box1->setContentsMargins(0,0,0,0);
203 ui->ProjectTableWidget->setCellWidget( row, INSTALL_BUTTON_COLUMN, check_box_widget1);
204
205 QWidget *check_box_widget2 = new QWidget();
206 QCheckBox *archive_button = new QCheckBox();
207 archive_button->setText("");
208 archive_button->setChecked((project_file_info->ProjectDesc.ProjectOptions & CREATE_SOURCE_ARCHIVE));
209 archive_button->setCheckable((project_file_info->ProjectDesc.ProjectOptions & CREATE_SOURCE_ARCHIVE));
210 QHBoxLayout *layout_check_box2 = new QHBoxLayout( check_box_widget2 );
211 layout_check_box2->addWidget(archive_button); //add QCheckBox to layout
212 layout_check_box2->setAlignment(Qt::AlignCenter); //set Alignment layout
213 layout_check_box2->setContentsMargins(0,0,0,0);
214 ui->ProjectTableWidget->setCellWidget( row, ARCHIVE_BUTTON_COLUMN, check_box_widget2);
215
216 QWidget *check_box_widget3 = new QWidget();
217 QCheckBox *publish_button = new QCheckBox();
218 archive_button->setText("");
219 QHBoxLayout *layout_check_box3 = new QHBoxLayout( check_box_widget3 );
220 layout_check_box3->addWidget(publish_button); //add QCheckBox to layout
221 layout_check_box3->setAlignment(Qt::AlignCenter); //set Alignment layout
222 layout_check_box3->setContentsMargins(0,0,0,0);
223 ui->ProjectTableWidget->setCellWidget( row, PUBLISH_BUTTON_COLUMN, check_box_widget3);
224
225 // Next Row
226 row++;
227 }
228 ui->ProjectTableWidget->setEnabled(true);
229}
void PrStateChange(PROJECT_INFORMATION *Project)
Update the Lock/Queued Status of Project in the Project List Table.
void LoadFileSubsList(PROJECT_INFORMATION *Project)
Load the Substitution table from the Project Information.
bool LoadProjectInfo(PROJECT_INFORMATION *Store, int ProjectIndex, int ProjManIndex)
Load Project & relevant System Information into the Structure.
#define ALLOW_AUTOMATIC_INSTALL
ReadProjectInfo * read_project_info
ProjectSubstitute * project_subs_manager
TARGET_FAMILY_INFO TargetFamilyInfo
DEV_FAMILY_INFO DevFamilyInfo
PROJECT_DESCRIPTION ProjectDesc
LANG_FAMILY_INFO LangFamilyInfo
ASSOCIATED_GROUP_INFO InAssocInfo

References ALLOW_AUTOMATIC_INSTALL, ARCHIVE_BUTTON_COLUMN, ASSOCIATION_COLUMN, base_project_query, BRIEF_DESC_COLUMN, PROJECT_DESCRIPTION::BriefDescription, COMPILER_FAMILY_COLUMN, CREATE_SOURCE_ARCHIVE, DEV_FAMILY_COLUMN, PROJECT_INFORMATION::Developer, PROJECT_INFORMATION::DevFamilyInfo, DOC_LICENCE_COLUMN, PROJECT_INFORMATION::DocLicence, HARDWARE_LICENCE_COLUMN, PROJECT_INFORMATION::HardwareLicence, PROJECT_INFORMATION::InAssocInfo, INSTALL_BUTTON_COLUMN, PROJECT_INFORMATION::LangFamilyInfo, DEVELOPER_INFO::Name, PROJECT_CONTACT_COLUMN, PROJECT_IDENT_COLUMN, PROJECT_NAME_COLUMN, PROJECT_STATUS_COLUMN, project_subs_manager, PROJECT_INFORMATION::ProjectDesc, PROJECT_DESCRIPTION::ProjectIdent, ProjectList, PROJECT_DESCRIPTION::ProjectName, PROJECT_DESCRIPTION::ProjectOptions, PrStateChange(), PUBLISH_BUTTON_COLUMN, read_project_info, SetMaximumProjects(), ASSOCIATED_GROUP_INFO::ShortName, DEV_FAMILY_INFO::ShortName, LANG_FAMILY_INFO::ShortName, LICENCE_INFO::ShortName, TARGET_FAMILY_INFO::ShortName, SOFTWARE_LICENCE_COLUMN, PROJECT_INFORMATION::SoftwareLicence, PROJECT_INFORMATION::StatusInfo, STATUS_INFO::StatusName, TARGET_FAMILY_COLUMN, PROJECT_INFORMATION::TargetFamilyInfo, and ui.

Referenced by InitaliseProjectTable().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LogAdd()

void ProjectListManager::LogAdd ( LOGGING_SEVERITY Severity,
LOGGING_MODE Mode,
QString Message )
private

Send Message to the Log.

Parameters
SeveritySeverity of the Log Message
ModeWhich part of the program does the message relate to
MessageText message to be added to the Log

Definition at line 295 of file projectlistmanager.cpp.

296{
297 REMOTE_LOG_ENTRY log_entry;
298 log_entry.Severity = Severity;
299 log_entry.Mode = Mode;
300 log_entry.Message = Message;
301 emit SendLogEntry(log_entry);
302}
void SendLogEntry(REMOTE_LOG_ENTRY log_entry)
LOGGING_MODE Mode
Definition logger.h:61
QString Message
Definition logger.h:63
LOGGING_SEVERITY Severity
Definition logger.h:62

References REMOTE_LOG_ENTRY::Message, REMOTE_LOG_ENTRY::Mode, SendLogEntry(), and REMOTE_LOG_ENTRY::Severity.

Referenced by MakeHTMLProjectPage(), PrStateChange(), and WriteTextFile().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MakeHTMLProjectPage()

QString ProjectListManager::MakeHTMLProjectPage ( QString HeaderTemplateFile,
QString FooterTemplateFile,
QString LineTemplateFile,
bool TableOnly = true )

Definition at line 332 of file projectlistmanager.cpp.

333{
334 QString project_html_header;
335 QString project_html_line;
336 QString project_html_footer;
337
338 QString project_line;
339 QString project_table_html;
340
341 // Substitution Strings
342 QString p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, pa, pb, pc;
343
344
345 if (QFileInfo::exists(HeaderTemplateFile) && !TableOnly)
346 {
347 project_html_line = ReadTableTemplate(HeaderTemplateFile);
348 LogAdd(LOG_DEBUG, MODE_FILE, QString("Read Project List Header Template %1.").arg(HeaderTemplateFile));
349 }
350 else
351 {
352 // Initialise the HTML Table Header Template with Default
353 if (!TableOnly)
354 {
355 project_html_header =
356 QString("<!doctype html><html lang=\"en-au\">") +
357 QString("<head><meta charset=\"utf-8\">") +
358 QString("<title>Brigadoon Project List</title>") +
359 QString("<meta name=\"author\" content=\"RiverPirate\">") +
360 QString("<meta name=\"robots\" content=\"index, follow\">") +
361 QString("<meta name=\"revisit-after\" content=\"30 days\">") +
362 QString("<meta name=\"generator\" content=\"ProjectManager\">") +
363 QString("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">") +
364 QString("</head>") +
365 QString("<body>");
366 }
367 project_html_header +=
368 QString("<div Class=\"Title\">") +
369 QString("<span style=\"color:#000000;font-family:Arial;font-size:100px;\">BRIGADOON</span>") +
370 QString("</div>") +
371 QString("<DIV CLASS=\"ProjListTable\">") +
372 QString("<TABLE WIDTH=\"100%\" BORDER=\"1\"><TR>") +
373 QString("<TH>Prj. Ident.</TH><TH>Prj. Name</TH><TH>Target</TH><TH>Stat.</TH><TH>Contact</TH><TH>Brief Description</TH>") +
374 QString("<TH>Dev. Fam.</TH><TH>Comp. Lang.</TH><TH>Assoc. Grp.</TH>") +
375 QString("<TH>S/W Lic.</TH><TH>H/W Lic.</TH><TH>Doc.Lic.</TH>") +
376 QString("</TR>");
377
378 LogAdd(LOG_INFO, MODE_FILE, QString("Unable to Read Project List Header Template %1, using Default Template.").arg(HeaderTemplateFile));
379 }
380
381 if (QFileInfo::exists(LineTemplateFile))
382 {
383 project_html_line = ReadTableTemplate(LineTemplateFile);
384 LogAdd(LOG_DEBUG, MODE_FILE, QString("Read Project List Line Template %1.").arg(LineTemplateFile));
385 }
386 else
387 {
388 project_html_line =
389 QString("<TR>") +
390 QString("<TD>%1</TD><TD>%2</TD><TD>%3</TD><TD>%4</TD>") +
391 QString("<TD>%5</TD><TD>%6</TD><TD>%7</TD><TD>%8</TD>") +
392 QString("<TD>%9</TD><TD>%10</TD><TD>%11</TD><TD>%12</TD>") +
393 QString("</TR>");
394 LogAdd(LOG_INFO, MODE_FILE, QString("Unable to Read Project List Line Template %1, using Default Template.").arg(LineTemplateFile));
395 }
396
397 if (QFileInfo::exists(FooterTemplateFile))
398 {
399 project_html_line = ReadTableTemplate(FooterTemplateFile);
400 LogAdd(LOG_DEBUG, MODE_FILE, QString("Read Project List Footer Template %1.").arg(FooterTemplateFile));
401 }
402 else
403 {
404 project_html_footer = QString("</TABLE></DIV>");
405 if (!TableOnly) project_html_footer += "</BODY></HTML>";
406
407 LogAdd(LOG_INFO, MODE_FILE, QString("Unable to Read Project List Footer Template %1, using Default Template.").arg(FooterTemplateFile));
408 }
409
410 // Start Creating table
411 project_table_html = project_html_header;
412
413 // Retreive the List of Projects
414 QString query_string = base_project_query;
415 QSqlQuery project_query(query_string + " order by project_index desc");
416
417 // Step Through the List of Projects
418 while( project_query.next())
419 {
420 PROJECT_INFORMATION* project_info = new PROJECT_INFORMATION;
421
422 // Load all of the Data about this Project
423 read_project_info->LoadProjectInfo(project_info, project_query.value(0).toInt(), ui->ProjectPrefix->currentIndex() + 1);
424
425 if (!(project_info->ProjectDesc.ProjectOptions & EXCLUDE_PROJECT_LIST))
426 {
427
428 // Get the Project's URL and Project Identifier
429 pa = project_info->ProgramInformation.SiteURL + "/project_dynamic/" + project_info->ProjectDesc.ProjectIdent + "/html/index.html";
430 pb = project_info->ProjectDesc.ProjectIdent;
431 p1 = QString("<A HREF=\"")+pa + "\">" + pb + "</A>";
432
433 // Make A Table Widget for the Project Name and Insert
434 p2 = project_info->ProjectDesc.ProjectName;
435
436 // Get the Name of the target System
437 p3 = project_info->TargetFamilyInfo.ShortName;
438
439 // Get the Project Status Name, Create Table Widget and Insert in Table
440 p4 = project_info->StatusInfo.StatusName;
441
442 // Get the Developer Name, Create Table Widget and Insert in Table
443 pa = project_info->Developer.Email;
444 pb = project_info->Developer.Handle;
445 pc = project_info->ProjectDesc.ProjectIdent;
446 p5 = QString("<A HREF=\"mailto:") + pa +"?subject=re: " + pc + " Project.\">" + pb + "</A>";
447
448 // Get the Brief Description, Create Table Widget and Insert in Table
449 p6 = project_info->ProjectDesc.BriefDescription;
450
451 // Get the Development Family, Create Table Widget and Insert in Table
452 p7 = project_info->DevFamilyInfo.ShortName;
453
454 // Get the Language Family, Create Table Widget and Insert in Table
455 p8 = project_info->LangFamilyInfo.ShortName;
456
457 // Get the Association Family, Create Table Widget and Insert in Table
458 pa = project_info->InAssocInfo.ShortName;
459 if (project_info->InAssocInfo.InAssociationIndex != 0)
460 {
461 pb = project_info->InAssocInfo.AssociationURL;
462 p9 = QString("<A HREF=\"")+ pb + QString("\" target=\"_blank\">") + pa + "</A>";
463 }
464 else
465 {
466 p9 = pa;
467 }
468
469 // Get the Software Licence, Create Table Widget and Insert in Table
470 pa = project_info->SoftwareLicence.ShortName;
471 if( project_info->SoftwareLicence.LicenceIndex != 14)
472 {
473 pb = project_info->SoftwareLicence.LicenceURL;
474 p10 = QString("<A HREF=\"")+ pb + QString("\" target=\"_blank\">") + pa + "</A>";
475 }
476 else
477 {
478 p10 = pa;
479 }
480
481 // Get the Hardware Licence, Create Table Widget and Insert in Table
482 pa = project_info->HardwareLicence.ShortName;
483 if( project_info->HardwareLicence.LicenceIndex != 14)
484 {
485 pb = project_info->HardwareLicence.LicenceURL;
486 p11 = QString("<A HREF=\"")+ pb + QString("\" target=\"_blank\">") + pa + "</A>";
487 }
488 else
489 {
490 p11 = pa;
491 }
492
493 // Get the Documentation Licence, Create Table Widget and Insert in Table
494 pa = project_info->DocLicence.ShortName;
495 if( project_info->DocLicence.LicenceIndex != 14)
496 {
497 pb = project_info->DocLicence.LicenceURL;
498 p12 = QString("<A HREF=\"")+ pb + QString("\" target=\"_blank\">") + pa + "</A>";
499 }
500 else
501 {
502 p12 = pa;
503 }
504
505 project_line = project_html_line.arg(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12);
506 project_table_html += project_line;
507 }
508 }
509 project_table_html += project_html_footer;
510
511 // Write the Table Out to a File
512
513
514 return(project_table_html);
515}
QString ReadTableTemplate(QString TemplateFile)
Read an HTML template from a File.
void LogAdd(LOGGING_SEVERITY Severity, LOGGING_MODE Mode, QString Message)
Send Message to the Log.
#define EXCLUDE_PROJECT_LIST
Exclude Project from Public List Mask.
@ LOG_INFO
Definition logger.h:55
@ LOG_DEBUG
Definition logger.h:56
@ MODE_FILE
Definition logger.h:32
PROGRAM_INFORMATION ProgramInformation

References ASSOCIATED_GROUP_INFO::AssociationURL, base_project_query, PROJECT_DESCRIPTION::BriefDescription, PROJECT_INFORMATION::Developer, PROJECT_INFORMATION::DevFamilyInfo, PROJECT_INFORMATION::DocLicence, DEVELOPER_INFO::Email, EXCLUDE_PROJECT_LIST, DEVELOPER_INFO::Handle, PROJECT_INFORMATION::HardwareLicence, ASSOCIATED_GROUP_INFO::InAssociationIndex, PROJECT_INFORMATION::InAssocInfo, PROJECT_INFORMATION::LangFamilyInfo, LICENCE_INFO::LicenceIndex, LICENCE_INFO::LicenceURL, LOG_DEBUG, LOG_INFO, LogAdd(), MODE_FILE, PROJECT_INFORMATION::ProgramInformation, PROJECT_INFORMATION::ProjectDesc, PROJECT_DESCRIPTION::ProjectIdent, PROJECT_DESCRIPTION::ProjectName, PROJECT_DESCRIPTION::ProjectOptions, read_project_info, ReadTableTemplate(), ASSOCIATED_GROUP_INFO::ShortName, DEV_FAMILY_INFO::ShortName, LANG_FAMILY_INFO::ShortName, LICENCE_INFO::ShortName, TARGET_FAMILY_INFO::ShortName, PROGRAM_INFORMATION::SiteURL, PROJECT_INFORMATION::SoftwareLicence, PROJECT_INFORMATION::StatusInfo, STATUS_INFO::StatusName, PROJECT_INFORMATION::TargetFamilyInfo, and ui.

Referenced by OutputProjectLists().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MakeOSProjectPage()

QString ProjectListManager::MakeOSProjectPage ( void )

Definition at line 304 of file projectlistmanager.cpp.

305{
306 QString project_line;
307 QString project_table_opensim;
308
309 // Retreive the List of Projects
310 QString query_string = base_project_query;
311 QSqlQuery project_query(query_string + " order by project_name");
312
313 // Step Through the List of Projects
314 while( project_query.next())
315 {
316 PROJECT_INFORMATION* project_info = new PROJECT_INFORMATION;
317 read_project_info->LoadProjectInfo(project_info, project_query.value(0).toInt(), ui->ProjectPrefix->currentIndex() + 1);
318
319 uint options = project_info->ProjectDesc.ProjectOptions;
320 if ((options & (1 <<EXCLUDE_PROJECT_LIST_BIT)) == 0)
321 {
322 QString project_address = project_info->ProgramInformation.SiteURL + "/project_dynamic/" + project_info->ProjectDesc.ProjectIdent + "/html/index.html";
323 QString project_logo = project_info->ProgramInformation.SiteURL + "/project_dynamic/" + project_info->ProjectDesc.ProjectIdent + "/images/os_logo.png";
324 project_line = project_info->ProjectDesc.ProjectName + "=" + project_address + "=" + project_logo + "\r\n";
325 project_table_opensim += project_line;
326 }
327 delete project_info;
328 }
329 return(project_table_opensim);
330}
@ EXCLUDE_PROJECT_LIST_BIT

References base_project_query, EXCLUDE_PROJECT_LIST_BIT, PROJECT_INFORMATION::ProgramInformation, PROJECT_INFORMATION::ProjectDesc, PROJECT_DESCRIPTION::ProjectIdent, PROJECT_DESCRIPTION::ProjectName, PROJECT_DESCRIPTION::ProjectOptions, read_project_info, PROGRAM_INFORMATION::SiteURL, and ui.

Referenced by OutputProjectLists().

Here is the caller graph for this function:

◆ OutputProjectLists

void ProjectListManager::OutputProjectLists ( void )
slot

Output the Project Lists to text and HTML.

Definition at line 88 of file projectlistmanager.cpp.

89{
90 QString list_table_string;
91
92 list_table_string = MakeHTMLProjectPage (
93 ui->ProjectListHeaderFile->text (), ui->ProjectListFooterFile->text (),
94 ui->ProjectListLineFile->text (), true);
95 WriteTextFile (ui->PrimaryWebsiteDirectory->text () + "/projects/"
96 + ui->ProjectListWebTableFile->text (),
97 list_table_string);
98 list_table_string = MakeOSProjectPage ();
99 WriteTextFile (ui->PrimaryWebsiteDirectory->text () + "/projects/"
100 + ui->ProjectOSListName->text (),
101 list_table_string);
102}
bool WriteTextFile(QString FileName, QString Contents)
Write a String to a File.
QString MakeOSProjectPage(void)
QString MakeHTMLProjectPage(QString HeaderTemplateFile, QString FooterTemplateFile, QString LineTemplateFile, bool TableOnly=true)

References MakeHTMLProjectPage(), MakeOSProjectPage(), ui, and WriteTextFile().

Referenced by ProjectTabChanged().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PressedArchiveOff

void ProjectListManager::PressedArchiveOff ( void )
privateslot

Turn all Archive Check boxes off in List table.

Definition at line 595 of file projectlistmanager.cpp.

596{
598}
void SetCheckState(int column, bool InstallState)
Set the State of all Project Selection in Table List.

References ARCHIVE_BUTTON_COLUMN, and SetCheckState().

Referenced by ProjectListManager().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PressedArchiveOn

void ProjectListManager::PressedArchiveOn ( void )
privateslot

Turn all Archive Check boxes on in List table.

Definition at line 590 of file projectlistmanager.cpp.

591{
593}

References ARCHIVE_BUTTON_COLUMN, and SetCheckState().

Referenced by ProjectListManager().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PressedInstallOff

void ProjectListManager::PressedInstallOff ( void )
privateslot

Turn all Install Check boxes off in List table.

Definition at line 584 of file projectlistmanager.cpp.

585{
587
588}

References INSTALL_BUTTON_COLUMN, and SetCheckState().

Referenced by ProjectListManager().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PressedInstallOn

void ProjectListManager::PressedInstallOn ( void )
privateslot

Turn all Install Check boxes on in List table.

Definition at line 579 of file projectlistmanager.cpp.

580{
582}

References INSTALL_BUTTON_COLUMN, and SetCheckState().

Referenced by ProjectListManager().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PressedPublishOff

void ProjectListManager::PressedPublishOff ( void )
privateslot

Turn all Archive Check boxes off in List table.

Definition at line 607 of file projectlistmanager.cpp.

608{
610}

References PUBLISH_BUTTON_COLUMN, and SetCheckState().

Referenced by ProjectListManager().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PressedPublishOn

void ProjectListManager::PressedPublishOn ( void )
privateslot

Definition at line 601 of file projectlistmanager.cpp.

602{
604}

References PUBLISH_BUTTON_COLUMN, and SetCheckState().

Referenced by ProjectListManager().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ProcessFullList

void ProjectListManager::ProcessFullList ( void )
slot

Add all Projects for Documentation Creation.

Definition at line 283 of file projectlistmanager.cpp.

284{
285 int row_count = ui->ProjectTableWidget->rowCount();
286 for ( int index = 0; (index < row_count) && ( ui->ProjectTableWidget->item( index, 0 ) != nullptr) ; ++index )
287 {
288 if ( ( ui->ProjectTableWidget->item( index, 0 ) != nullptr) && ( ui->ProjectTableWidget->item( index, 0 )->text() != "") )
289 {
291 }
292 }
293}
void ProcessProject(PROJECT_INFORMATION *ProjectInfo)
Process documentation for a Project.
DoxygenManager * doxy_manager

References doxy_manager, ProjectList, and ui.

◆ ProcessSelection

void ProjectListManager::ProcessSelection ( void )
slot

Add th Selected Project for Documentation Creation.

Definition at line 246 of file projectlistmanager.cpp.

247{
248 int index = ui->ProjectTableWidget->currentRow();
249 if ((index > 1) && (ui->ProjectTableWidget->item (index, 0) != nullptr)
250 && (ui->ProjectTableWidget->item (index, 0)->text () != ""))
251 {
252 ProjectList[index]->ProjectDesc.ProjectSelections = FindSelections(index);
254 }
255}
int FindSelections(int index)
Read and Encode selected options for a Project.

References doxy_manager, FindSelections(), ProjectList, and ui.

Here is the call graph for this function:

◆ ProjectTabChanged

void ProjectListManager::ProjectTabChanged ( int Index)
slot

Process the Change in Window Tab.

Parameters
SelectedWindow Tab Index

Definition at line 64 of file projectlistmanager.cpp.

65{
66 switch( Index )
67 {
69 break;
70
74 break;
75
77 break;
78
79 case LOG_TAB:
80 break;
81
82 case LICENCE_ACK_TAB:
83 break;
84 }
85}
void InitaliseProjectTable(void)
Clear and Load the Project List Table.
void OutputProjectLists(void)
Output the Project Lists to text and HTML.
@ LICENCE_ACK_TAB
@ CREATE_UPDATE_TAB
@ UPDATE_PROJECTS_TAB
@ PROGRAM_SETUP_TAB
@ LOG_TAB

References CREATE_UPDATE_TAB, InitaliseProjectTable(), LICENCE_ACK_TAB, LOG_TAB, OutputProjectLists(), PROGRAM_SETUP_TAB, and UPDATE_PROJECTS_TAB.

Here is the call graph for this function:

◆ PrStateChange

void ProjectListManager::PrStateChange ( PROJECT_INFORMATION * Project)
slot

Update the Lock/Queued Status of Project in the Project List Table.

Parameters
ProjectPOinter to Project's Information

Definition at line 551 of file projectlistmanager.cpp.

552{
553 // Find the Line with this Project Ident
554 QList<QTableWidgetItem *> item_list = ui->ProjectTableWidget->findItems (
555 Project->ProjectDesc.ProjectIdent, Qt::MatchExactly);
556 if (item_list.count () != 1)
557 {
559 QString ("Error Finding Project %1 in the Table Widget. ")
560 .arg (Project->ProjectDesc.ProjectIdent));
561 }
562 else
563 {
564 if (!Project->ProjectLock)
565 {
566 item_list[0]->setForeground (QBrush (QColor (INACTIVE_COLOUR)));
567 }
568 else
569 {
570 if (Project->ProjectQueued)
571 item_list[0]->setForeground (QBrush (QColor (QUEUED_COLOUR)));
572 else
573 item_list[0]->setForeground (QBrush (QColor (LOCK_COLOUR)));
574 }
575 ui->ProjectTableWidget->repaint ();
576 }
577}
#define QUEUED_COLOUR
#define INACTIVE_COLOUR
The Text colour indicating an unlocked and unqueued Project.
#define LOCK_COLOUR
The Text colour indicating a Locked Project.
@ LOG_ERROR
Definition logger.h:52
@ MODE_QT
Definition logger.h:23

References INACTIVE_COLOUR, LOCK_COLOUR, LOG_ERROR, LogAdd(), MODE_QT, PROJECT_INFORMATION::ProjectDesc, PROJECT_DESCRIPTION::ProjectIdent, PROJECT_INFORMATION::ProjectLock, PROJECT_INFORMATION::ProjectQueued, QUEUED_COLOUR, and ui.

Referenced by LoadProjectTable().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReadTableTemplate()

QString ProjectListManager::ReadTableTemplate ( QString TemplateFile)
private

Read an HTML template from a File.

Parameters
TemplateFileName of the Template File
Returns
The contents of the Template as a String

Definition at line 517 of file projectlistmanager.cpp.

518{
519 QString text_result;
520 QFile file(TemplateFile);
521 if (file.open(QIODevice::ReadOnly | QIODevice::Text))
522 {
523 QTextStream in(&file);
524 while(!in.atEnd())
525 {
526 text_result += in.readLine();
527 }
528 }
529 return(text_result);
530}

Referenced by MakeHTMLProjectPage().

Here is the caller graph for this function:

◆ SendLogEntry

void ProjectListManager::SendLogEntry ( REMOTE_LOG_ENTRY log_entry)
signal

Referenced by LogAdd().

Here is the caller graph for this function:

◆ SetCheckState()

void ProjectListManager::SetCheckState ( int column,
bool InstallState )
private

Set the State of all Project Selection in Table List.

Parameters
Columof Project List Table
InstallStateState (Off/On) to be Install in all Switches

Definition at line 612 of file projectlistmanager.cpp.

613{
614 int row_count = ui->ProjectTableWidget->rowCount();
615 for (int row = 0; row < row_count; row++)
616 {
617 QCheckBox* checkBox = nullptr;
618
619 if (QWidget* w = ui->ProjectTableWidget->cellWidget(row, column))
620 {
621 if (QLayout* layout = w->layout())
622 {
623 if (QLayoutItem* layoutItem = layout->itemAt(0))
624 {
625 if (QWidgetItem* widgetItem = dynamic_cast<QWidgetItem*>(layoutItem))
626 {
627 checkBox = qobject_cast<QCheckBox*>(widgetItem->widget());
628 checkBox->setChecked(CheckState);
629 }
630 }
631 }
632 }
633 }
634}

References ui.

Referenced by PressedArchiveOff(), PressedArchiveOn(), PressedInstallOff(), PressedInstallOn(), PressedPublishOff(), and PressedPublishOn().

Here is the caller graph for this function:

◆ SetMaximumProjects()

void ProjectListManager::SetMaximumProjects ( void )
private

Set the Initial Line Count in the Project List table.

Definition at line 231 of file projectlistmanager.cpp.

232{
233 int current_row_count = ui->ProjectTableWidget->rowCount();
234 int project_count = 0;
235
236 QString count_query = "select count(*) from project";
237 QSqlQuery project_counter(count_query);
238 while (project_counter.next())
239 {
240 project_count = project_counter.value(0).toInt();
241 }
242 int increased_project_count = project_count - 1;
243 if (current_row_count < increased_project_count) ui->ProjectTableWidget->setRowCount(increased_project_count);
244}

References ui.

Referenced by LoadProjectTable(), and ProjectListManager().

Here is the caller graph for this function:

◆ WriteTextFile()

bool ProjectListManager::WriteTextFile ( QString FileName,
QString Contents )
private

Write a String to a File.

Parameters
FileNameThe name of the Target File
ContentsThe String to be written to the File
Returns
Success (true) or Failure (false)

Definition at line 532 of file projectlistmanager.cpp.

533{
534 bool result = false;
535 QFile file(FileName);
536 if (file.open(QIODevice::WriteOnly | QIODevice::Text))
537 {
538 QTextStream out(&file);
539 out << Contents;
540 result = true;
541 LogAdd(LOG_DEBUG, MODE_FILE, QString("Wrote Project List File %1 ").arg(FileName));
542 }
543 else
544 {
545 LogAdd(LOG_ERROR, MODE_FILE, QString("Unable to write Project List File %1 ").arg(FileName));
546
547 }
548 return(result);
549}

References LOG_DEBUG, LOG_ERROR, LogAdd(), and MODE_FILE.

Referenced by OutputProjectLists().

Here is the call graph for this function:
Here is the caller graph for this function:

Field Documentation

◆ base_project_query

QString ProjectListManager::base_project_query
private

Basic SQL Query for listing Projects.

Definition at line 170 of file projectlistmanager.h.

Referenced by LoadProjectTable(), MakeHTMLProjectPage(), MakeOSProjectPage(), and ProjectListManager().

◆ ProjectList

QList<PROJECT_INFORMATION*> ProjectListManager::ProjectList
private

A list of Projects to be processed.

Definition at line 176 of file projectlistmanager.h.

Referenced by LoadProjectTable(), ProcessFullList(), ProcessSelection(), and ProjectListManager().

◆ sort_group

QButtonGroup* ProjectListManager::sort_group
private

Pointer to Button Group for sorting Project List Table.

Definition at line 164 of file projectlistmanager.h.

◆ ui

Ui::MainWindow* ProjectListManager::ui
private

The documentation for this class was generated from the following files: