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

#include <projectsubstitute.h>

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

Public Slots

void DoClear (void)
 Clear the Substitution lists and display.
void LoadSubsTable (int ProjectNo)
void ReadProjectId (PROJECT_INFORMATION *ProjectInfo)
 Load the Substitution Table for th Project.
void UpdateVersion (REMOTE_VERSION_ENTRY Version)
 Update the Version Information in the Substitute Table.
void UpdateDevFamily (DEVELOPMENT_FAMILY DevelopmentTypes)
 Update the Dev Families Information in the Substitute Table.
void UpdateStatus (STATUS_INFO StatusInfo)
 Update the Deve Families Information in the Substitute Table.
void SaveLocalSubstitutes (void)
 Save the Local Substitutes to the Database.
void UpdateSoftwareLicence (QString LicenceName)
 Update the Software Licence Information in the Substitute Table.
void UpdateHardwareLicence (QString LicenceName)
 Update the Hardware Licence Information in the Substitute Table.
void UpdateDocumentationLicence (QString LicenceName)
 Update the Documentation Licence Information in the Substitute Table.
void UpdateFullDescription (QString FullDescription)
 Update the Full Description in the Substitute Table.
void ReadMajorVersion (int MajorVersion)
 Update the Major Version in the Substitute Table.
void ReadMinorVersion (int MinorVersion)
 Update the Minor Version in the Substitute Table.
void ReadRevision (int Revision)
 Update the Revision in the Substitute Table.
void UpdateProjectName (QString Name)
 Update Project Name in Substitute Table.
void UpdateDepartureURL (QString Name)
 Update Exit URL in Substitute Table.
void UpdateProjectIcon (QString Name)
void UpdateProjectBrief (QString Text)
 Update Project Brief in Substitute Table.
void UpdateProjectContact (QString ContactName)
void UpdateProjectDateTime (QString ProjectDateTime)
 Update Project's DateTime in Substitute Table.
void UpdateDoxyProjectLogo (QString DoxyProjectLogo)
 Update Doxygen's Project Logo Filename in Substitute Table.
void UpdateDoxyHeader (QString DoxyHeader)
 Update Doxygen's Header Filename in Substitute Table.
void UpdateDoxyFooter (QString DoxyFooter)
 Update Doxygen's Footer Filename in Substitute Table.
void UpdateDoxyStylesheet (QString DoxyStylesheet)
 Update Doxygen's Stylesheet Filename in Substitute Table.
void UpdateInAssocation (QString Association)
void LoadPresets (void)
 Load the Substitution Table.

Signals

void SendLogEntry (REMOTE_LOG_ENTRY LogEntry)

Public Member Functions

 ProjectSubstitute (Ui::MainWindow *UI_Window, ProjectOptionsManager *ProjectOptsManager)
 LicenceManager Construction routine.
void LoadFileSubsList (PROJECT_INFORMATION *Project)
 Load the Substitution table from the Project Information.

Private Slots

void ReloadSubstituteTable (void)
 Reload the Substituition Table & Display.
void ClearSubstituteEntry (void)
 Clear the Select Substitution Row & data.
void SetSubstituteState (bool State)
void SetOptionState (uint Options)
void SetEditableState (QTableWidgetItem *Item)

Private Member Functions

QTableWidgetItem * FindItemByKey (QString Key)
 Find a Substitution Entry in the Substitution List by Name.
bool UpdateItem (QString Key, QString Value)
 Update the Value of an Entry in the Substitution List.
void LogAdd (LOGGING_SEVERITY Severity, LOGGING_MODE Mode, QString Message)
 Add a Log Entry.
void AddKeyValue (QString Key, QString Value, int RowIndex)
 Add a New Key-Value pair to the Substitution List.
int DecodeProjectOptions (uint Options, int RowIndex, bool NewProject)
 Add Key-Value items for all Project Options.
bool SaveKeyValuePair (int ProjectId, QString Key, QString Value, bool Lock)
void LoadBasePresets (int RowIndex, int ProjectNo)
QString GetProjectEmail (int Index)
void LoadUserSubstitutes (PROJECT_INFORMATION *Project)

Private Attributes

Ui::MainWindow * ui
 Pointer to the Main Window.
PROJECT_INFORMATIONproject_info
 Structure to hold Project Information.
QString leadin_string
 Lead in Characters for substitution blocks.
QString leadout_string
 Lead out Characters for substitution blocks.
QColor system_colour
 table Background Colour
ProjectOptionsManagerproject_opts_manager
 Pointer the Project Options Manager Class.
QStringList option_name
 List of Option Names for Subtitution process.
QStringList sys_item_name
 List of System Names for Subtitution process.

Detailed Description

Definition at line 80 of file projectsubstitute.h.

Constructor & Destructor Documentation

◆ ProjectSubstitute()

ProjectSubstitute::ProjectSubstitute ( Ui::MainWindow * UI_Window,
ProjectOptionsManager * ProjectOptsManager )
explicit

LicenceManager Construction routine.

Parameters
UI_WindowPOinter to the main window
ProjectOptsManagerPointer to the Project Options Manager Class

Definition at line 7 of file projectsubstitute.cpp.

8{
9 ui = UI_Window;
10 leadin_string = "[#";
11 leadout_string = "#]";
12 system_colour = QColor(255, 255, 220);
13
14 project_opts_manager = ProjectOptsManager;
15 option_name << "EXCLUDE_FROM_LIST"
16 << "CONTROL_DOC_ACCESS"
17 << "ONLY_DEFAULT_PAGE"
18 << "GROUP_ACCESS_ONLY"
19 << "ENABLE_CUSTOM_DOXY"
20 << "CAVEAT_LECTOR"
21 << "POTENTIAL_HAZARD"
22 << "ASSISTANCE_WELCOME"
23 << "DONATIONS_WELCOME"
24 << "OFFER_PAYPAL_DONATION";
25
26 sys_item_name << "PROJECT_NAME"
27 << "PROJECT_IDENT"
28 << "MAJOR_VERSION"
29 << "MINOR_VERSION"
30 << "REVISION"
31 << "BRIEF_DESCRIPTION"
32 << "DEV_FAMILY"
33 << "LANGUAGE_FAMILY"
34 << "PRIMARY_TOOL"
35 << "SYSTEM_FAMILY"
36 << "PROJECT_STATUS"
37 << "PROJECT_HISTORY"
38 << "STATUS_DATE"
39 << "DOCUMENT_LICENCE"
40 << "SOFTWARE_LICENCE"
41 << "HARDWARE_LICENCE"
42 << "PROJECT_CONTACT"
43 << "PROJECT_EMAIL"
44 << "FULL_DESCRIPTION"
45 << "PROJECT_DIRECTORY"
46 << "PROJECT_ICON"
47 << "DOXY_LOGO"
48 << "DOXY_HTML_HEADER"
49 << "DOXY_HTML_FOOTER"
50 << "DOXY_EXTRA_STYLESHEET"
51 << "ASSOCIATED_GROUP"
52 << "DEPARTURE_URL"
53 << "SITE_URL"
54 << "EXECUTABLE_DIR"
55 << "SOURCE_LIST";
56
57
58 QObject::connect(ui->ReloadSubstituitions, SIGNAL(pressed()), this, SLOT(ReloadSubstituteTable()));
59 QObject::connect(ui->ClearSubstituitions, SIGNAL(pressed()), this, SLOT(ClearSubstituteEntry()));
60 QObject::connect(ui->SaveSubstituitions, SIGNAL(pressed()), this, SLOT(SaveLocalSubstitutes()));
61
62 // Set the Substituition Table Column and Row Settings
63 ui->ProjectSubsList->setColumnCount(2);
64 ui->ProjectSubsList->setRowCount( MAXIMUM_KEY_VALUE_PAIRS );
65 ui->ProjectSubsList->setHorizontalHeaderLabels( QStringList( {"Key Word", "Substitution String"} ));
66 ui->ProjectSubsList->setColumnWidth(0, PROJECT_KEY_COLUMN_WIDTH);
67 ui->ProjectSubsList->setColumnWidth(1,(ui->ProjectSubsList->width() - ui->ProjectSubsList->columnWidth(0) ) );
68}
void SaveLocalSubstitutes(void)
Save the Local Substitutes to the Database.
ProjectOptionsManager * project_opts_manager
Pointer the Project Options Manager Class.
QStringList sys_item_name
List of System Names for Subtitution process.
void ReloadSubstituteTable(void)
Reload the Substituition Table & Display.
Ui::MainWindow * ui
Pointer to the Main Window.
QString leadin_string
Lead in Characters for substitution blocks.
QStringList option_name
List of Option Names for Subtitution process.
QColor system_colour
table Background Colour
QString leadout_string
Lead out Characters for substitution blocks.
void ClearSubstituteEntry(void)
Clear the Select Substitution Row & data.
#define MAXIMUM_KEY_VALUE_PAIRS
Define the Maximum number of Key-Value pairs to Display.
#define PROJECT_KEY_COLUMN_WIDTH
Define the Key's Column Width in the display.

References ClearSubstituteEntry(), leadin_string, leadout_string, MAXIMUM_KEY_VALUE_PAIRS, option_name, PROJECT_KEY_COLUMN_WIDTH, project_opts_manager, ReloadSubstituteTable(), SaveLocalSubstitutes(), sys_item_name, system_colour, and ui.

Here is the call graph for this function:

Member Function Documentation

◆ AddKeyValue()

void ProjectSubstitute::AddKeyValue ( QString Key,
QString Value,
int RowIndex )
private

Add a New Key-Value pair to the Substitution List.

Parameters
KeyThe Key to be inserted into the List
ValueThe Value to be associated with the New Key in the list

Definition at line 246 of file projectsubstitute.cpp.

247{
248 QTableWidgetItem *new_key = new QTableWidgetItem( Key );
249 new_key->data(true);
250 QTableWidgetItem *new_value = new QTableWidgetItem( Value );
251 new_key->setBackground(system_colour);
252 new_value->setBackground(system_colour);
253 new_key->setFlags(new_key->flags() ^ Qt::ItemIsEditable);
254 new_value->setFlags(new_value->flags() ^ Qt::ItemIsEditable);
255 ui->ProjectSubsList->setItem( RowIndex, 0, new_key );
256 ui->ProjectSubsList->setItem( RowIndex, 1, new_value );
257}

References system_colour, and ui.

Referenced by DecodeProjectOptions(), and LoadSubsTable().

Here is the caller graph for this function:

◆ ClearSubstituteEntry

void ProjectSubstitute::ClearSubstituteEntry ( void )
privateslot

Clear the Select Substitution Row & data.

Definition at line 279 of file projectsubstitute.cpp.

280{
281 // Turn Off Sorting
282
283
284 // Get the List of Selected Items
285 QModelIndexList selection = ui->ProjectSubsList->selectionModel()->selectedRows();
286
287 // Multiple rows can be selected
288 for(int i=0; i< selection.count(); i++)
289 {
290 QModelIndex index = selection.at(i);
291 QTableWidgetItem* item = ui->ProjectSubsList->item(index.row(), 0);
292 if ((item != 0) && (item->flags() & Qt::ItemIsEditable)) ui->ProjectSubsList->removeRow(index.row());
293 }
294 ui->ProjectSubsList->sortItems(0, Qt::AscendingOrder);
295}

References ui.

Referenced by ProjectSubstitute().

Here is the caller graph for this function:

◆ DecodeProjectOptions()

int ProjectSubstitute::DecodeProjectOptions ( uint Options,
int RowIndex,
bool NewProject )
private

Add Key-Value items for all Project Options.

Parameters
OptionsEncoded Project Options
RowIndexThe Row in the Substitution table Display
NewProject Flag if this is a new Project
Returns
The RowIndex

Definition at line 297 of file projectsubstitute.cpp.

298{
299 if (!NewProject)
300 {
301 QString key = option_name[EXCLUDE_PROJECT_LIST_BIT]; QString value = QVariant(project_opts_manager->CheckExcludeProjectList(Options)).toString();
302 AddKeyValue(key, value, RowIndex++);
303
304 key = option_name[CONTROL_DOC_ACCESS_BIT]; value = QVariant(project_opts_manager->CheckControlDocAccess(Options)).toString();
305 AddKeyValue(key, value, RowIndex++);
306
307 key = option_name[ONLY_DEFAULT_PAGE_BIT]; value = QVariant(project_opts_manager->CheckOnlyDefaultPage(Options)).toString();
308 AddKeyValue(key, value, RowIndex++);
309
310 key = option_name[GROUP_ACCESS_ONLY_BIT]; value = QVariant(project_opts_manager->CheckGroupAccessOnly(Options)).toString();
311 AddKeyValue(key, value, RowIndex++);
312
313 key = option_name[ENABLE_CUSTOM_DOXYGEN_BIT]; value = QVariant(project_opts_manager->CheckEnableCustomDoxygen(Options)).toString();
314 AddKeyValue(key, value, RowIndex++);
315
316 key = option_name[CAVEAT_LECTOR_BIT]; value = QVariant(project_opts_manager->CheckCaveatLector(Options)).toString();
317 AddKeyValue(key, value, RowIndex++);
318
319 key = option_name[POTENTIAL_HAZARD_BIT]; value = QVariant(project_opts_manager->CheckPotentialHazard(Options)).toString();
320 AddKeyValue(key, value, RowIndex++);
321
322 key = option_name[ASSISTANCE_WELCOME_BIT]; value = QVariant(project_opts_manager->CheckAssistanceWelcome(Options)).toString();
323 AddKeyValue(key, value, RowIndex++);
324
325 key = option_name[DONATIONS_WELCOME_BIT]; value = QVariant(project_opts_manager->ChecktDonationsWelcome(Options)).toString();
326 AddKeyValue(key, value, RowIndex++);
327
328 key = option_name[OFFER_PAYPAL_DONATION_BIT]; value = QVariant(project_opts_manager->CheckOfferPaypalDonation(Options)).toString();
329 AddKeyValue(key, value, RowIndex++);
330 }
331 else
332 {
333 QString key = option_name[EXCLUDE_PROJECT_LIST_BIT]; QString value = "false";
334 AddKeyValue(key, value, RowIndex++);
335
336 key = option_name[CONTROL_DOC_ACCESS_BIT]; value = "false";
337 AddKeyValue(key, value, RowIndex++);
338
339 key = option_name[ONLY_DEFAULT_PAGE_BIT]; value = "false";
340 AddKeyValue(key, value, RowIndex++);
341
342 key = option_name[GROUP_ACCESS_ONLY_BIT]; value = "false";
343 AddKeyValue(key, value, RowIndex++);
344
345 key = option_name[ENABLE_CUSTOM_DOXYGEN_BIT]; value = "false";
346 AddKeyValue(key, value, RowIndex++);
347
348 key = option_name[CAVEAT_LECTOR_BIT]; value = "false";
349 AddKeyValue(key, value, RowIndex++);
350
351 key = option_name[POTENTIAL_HAZARD_BIT]; value = "false";
352 AddKeyValue(key, value, RowIndex++);
353
354 key = option_name[ASSISTANCE_WELCOME_BIT]; value = "false";
355 AddKeyValue(key, value, RowIndex++);
356
357 key = option_name[DONATIONS_WELCOME_BIT]; value = "false";
358 AddKeyValue(key, value, RowIndex++);
359
360 key = option_name[OFFER_PAYPAL_DONATION_BIT]; value = "false";
361 AddKeyValue(key, value, RowIndex++);
362
363 }
364 return(RowIndex);
365}
void AddKeyValue(QString Key, QString Value, int RowIndex)
Add a New Key-Value pair to the Substitution List.
@ DONATIONS_WELCOME_BIT
@ ONLY_DEFAULT_PAGE_BIT
@ CONTROL_DOC_ACCESS_BIT
@ GROUP_ACCESS_ONLY_BIT
@ POTENTIAL_HAZARD_BIT
@ ASSISTANCE_WELCOME_BIT
@ CAVEAT_LECTOR_BIT
@ ENABLE_CUSTOM_DOXYGEN_BIT
@ OFFER_PAYPAL_DONATION_BIT
@ EXCLUDE_PROJECT_LIST_BIT

References AddKeyValue(), ASSISTANCE_WELCOME_BIT, CAVEAT_LECTOR_BIT, CONTROL_DOC_ACCESS_BIT, DONATIONS_WELCOME_BIT, ENABLE_CUSTOM_DOXYGEN_BIT, EXCLUDE_PROJECT_LIST_BIT, GROUP_ACCESS_ONLY_BIT, OFFER_PAYPAL_DONATION_BIT, ONLY_DEFAULT_PAGE_BIT, option_name, POTENTIAL_HAZARD_BIT, and project_opts_manager.

Referenced by LoadSubsTable().

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

◆ DoClear

void ProjectSubstitute::DoClear ( void )
slot

Clear the Substitution lists and display.

Definition at line 259 of file projectsubstitute.cpp.

260{
261 ui->ProjectSubsList->clearContents();
262}

References ui.

◆ FindItemByKey()

QTableWidgetItem * ProjectSubstitute::FindItemByKey ( QString Key)
private

Find a Substitution Entry in the Substitution List by Name.

Parameters
KeyThe Key String
Returns
The Table Widget Item with that Name or NULL if not found

Definition at line 367 of file projectsubstitute.cpp.

368{
369 QTableWidgetItem* found_item = NULL;
370
371 // Find the Item witht the Match Name. There should only be one match as names are unique.
372 QList<QTableWidgetItem*> item_list = ui->ProjectSubsList->findItems(Key, Qt::MatchExactly);
373 if (item_list.count() == 1)
374 {
375 found_item = item_list[0];
376 }
377 else
378 {
379 LogAdd(LOG_DEBUG, MODE_DATABASE, QString("Unknown Key \"%1\" in the Substitute Table").arg(Key));
380 }
381 return(found_item);
382}
void LogAdd(LOGGING_SEVERITY Severity, LOGGING_MODE Mode, QString Message)
Add a Log Entry.
@ LOG_DEBUG
Definition logger.h:56
@ MODE_DATABASE
Definition logger.h:35

References LOG_DEBUG, LogAdd(), MODE_DATABASE, and ui.

Referenced by UpdateItem().

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

◆ GetProjectEmail()

QString ProjectSubstitute::GetProjectEmail ( int Index)
private

Definition at line 197 of file projectsubstitute.cpp.

198{
199 QString email_address;
200 QSqlQuery email_query(QString("select developer_email from developer where developer_index = %1").arg(QString::number(Index)));
201 while ( email_query.next() )
202 {
203 email_address = email_query.value(0).toString();
204 }
205 return(email_address);
206}

Referenced by LoadSubsTable().

Here is the caller graph for this function:

◆ LoadBasePresets()

void ProjectSubstitute::LoadBasePresets ( int RowIndex,
int ProjectNo )
private

Definition at line 213 of file projectsubstitute.cpp.

214{
215 int row_index = RowIndex;
216
217 // Load the Substitution Items from the Database
218 QSqlQuery subs_query(QString("select key_word, substitution, lock_entry from project_substitute where project_index = 1 or project_index = %1 order by key_word").arg(QString::number(ProjectNo)));
219 QBrush locked_brush;
220 locked_brush.setColor(Qt::lightGray);
221
222 while ( subs_query.next() )
223 {
224 QString keyword = subs_query.value(0).toString();
225 QString substitution = subs_query.value(1).toString();
226 bool locked = subs_query.value(2).toBool();
227
228 QTableWidgetItem *new_key = new QTableWidgetItem( keyword );
229 new_key->data(locked);
230 QTableWidgetItem *new_value = new QTableWidgetItem( substitution );
231 if (locked)
232 {
233 new_key->setBackground(system_colour);
234 new_value->setBackground(system_colour);
235 new_key->setFlags(new_key->flags() ^ Qt::ItemIsEditable);
236 new_value->setFlags(new_value->flags() ^ Qt::ItemIsEditable);
237 }
238 ui->ProjectSubsList->setItem( row_index, 0, new_key );
239 ui->ProjectSubsList->setItem( row_index, 1, new_value );
240 row_index++;
241 }
242 ui->ProjectSubsList->sortItems(0, Qt::AscendingOrder);
243}

References system_colour, and ui.

Referenced by LoadSubsTable().

Here is the caller graph for this function:

◆ LoadFileSubsList()

void ProjectSubstitute::LoadFileSubsList ( PROJECT_INFORMATION * Project)

Load the Substitution table from the Project Information.

Parameters
ProjectInforamtion about the Project

Definition at line 643 of file projectsubstitute.cpp.

644{
645 // Clear the Project Substitution Map
646 Project->SubsMap.clear();
647
648 // Load the System Defined Substitutions
649 QString web_directory = Project->ProgramInformation.PrimaryWebsiteDirectory + "/projects/" + Project->ProjectDesc.ProjectIdent;
650
651 // Convenient display of Lead-In and Lead-Out without it invokes the substitution process.
652 Project->SubsMap.insert("[#LEAD_IN#]", "'@htmlonly &lsqb;&num; @endhtmlonly'");
653 Project->SubsMap.insert("[#LEAD_OUT#]", "'@htmlonly &num;&rsqb; @endhtmlonly'");
654
655 Project->SubsMap.insert("[#PROJECT_NAME#]", Project->ProjectDesc.ProjectName);
656 Project->SubsMap.insert("[#PROJECT_IDENT#]", Project->ProjectDesc.ProjectIdent);
657 Project->SubsMap. insert("[#PROJECT_DIRECTORY#]", Project->ProjectDesc.ProjectDirectory);
658 Project->SubsMap.insert("[#BRIEF_DESC#]", Project->ProjectDesc.BriefDescription);
659 Project->SubsMap.insert("[#FULL_DESC#]", Project->ProjectDesc.FullDescription);
660 Project->SubsMap.insert("[#VERSION#]", Project->VersionInfo.VersionString);
661 Project->SubsMap.insert("[#VERSION_TEXT#]", Project->VersionInfo.CurrentVersionString);
662 Project->SubsMap.insert("[#VERSION_HISTORY#]", Project->VersionInfo.FullVersionString);
663 Project->SubsMap.insert("[#VERSION_DATE#]", Project->VersionInfo.VersionDateString);
664 Project->SubsMap.insert("[#DEV_SHORT_NAME#]", Project->DevFamilyInfo.ShortName);
665 Project->SubsMap.insert("[#DEV_FULL_NAME#]", Project->DevFamilyInfo.FullName);
666 Project->SubsMap.insert("[#DEV_IMAGE#]", Project->DevFamilyInfo.DevFamilyImage);
667 Project->SubsMap.insert("[#COMPILER_SHORT_NAME#]", Project->LangFamilyInfo.ShortName);
668 Project->SubsMap.insert("[#COMPILER_FULL_NAME#]", Project->LangFamilyInfo.FullName);
669 Project->SubsMap.insert("[#COMPILER_IMAGE#]", Project->LangFamilyInfo.LangFamilyImage);
670 Project->SubsMap.insert("[#TOOL_SHORT_NAME#]", Project->CompFamilyInfo.ShortName);
671 Project->SubsMap.insert("[#TOOL_FULL_NAME#]", Project->CompFamilyInfo.FullName);
672 Project->SubsMap.insert("[#TOOL_IMAGE#]", Project->CompFamilyInfo.CompilerToolImage);
673 Project->SubsMap.insert("[#TOOL_DIRECTORY#]", Project->CompFamilyInfo.CompilerDirectory);
674 Project->SubsMap.insert("[#TARGET_SHORT_NAME#]", Project->TargetFamilyInfo.ShortName);
675 Project->SubsMap.insert("[#TARGET_FULL_NAME#]", Project->TargetFamilyInfo.FullName);
676 Project->SubsMap.insert("[#TARGET_IMAGE#]", Project->TargetFamilyInfo.TargetFamilyImage);
677 Project->SubsMap.insert("[#STATUS_NAME#]", Project->StatusInfo.StatusName);
678 Project->SubsMap.insert("[#STATUS_DESC#]", Project->StatusInfo.StatusDescription);
679 Project->SubsMap.insert("[#STATUS_IMAGE#]", Project->StatusInfo.StatusImage);
680 Project->SubsMap.insert("[#STATUS_DATE#]", Project->StatusInfo.StatusDateTimeString);
681 Project->SubsMap.insert("[#DL_SHORT_NAME#]", Project->DocLicence.ShortName);
682 Project->SubsMap.insert("[#DL_FULL_NAME#]", Project->DocLicence.FullName);
683 Project->SubsMap.insert("[#DL_IMAGE#]", Project->DocLicence.LicenceImage);
684 Project->SubsMap.insert("[#DL_URL#]", Project->DocLicence.LicenceURL);
685 Project->SubsMap.insert("[#SL_SHORT_NAME#]", Project->SoftwareLicence.ShortName);
686 Project->SubsMap.insert("[#SL_FULL_NAME#]", Project->SoftwareLicence.FullName);
687 Project->SubsMap.insert("[#SL_IMAGE#]", Project->SoftwareLicence.LicenceImage);
688 Project->SubsMap.insert("[#SL_URL#]", Project->SoftwareLicence.LicenceURL);
689 Project->SubsMap.insert("[#HL_SHORT_NAME#]", Project->HardwareLicence.ShortName);
690 Project->SubsMap.insert("[#HL_FULL_NAME#]", Project->HardwareLicence.FullName);
691 Project->SubsMap.insert("[#HL_IMAGE#]", Project->HardwareLicence.LicenceImage);
692 Project->SubsMap.insert("[#HL_URL#]", Project->HardwareLicence.LicenceURL);
693 Project->SubsMap.insert("[#DEVELOPER_NAME#]", Project->Developer.Name);
694 Project->SubsMap.insert("[#DEVELOPER_EMAIL#]", Project->Developer.Email);
695 Project->SubsMap.insert("[#DEVELOPER_PHONE#]", Project->Developer.Phone);
696 Project->SubsMap.insert("[#DEVELOPER_INFO#]", Project->Developer.Info);
697 Project->SubsMap.insert("[#DEVELOPER_HANDLE#]", Project->Developer.Handle);
698 Project->SubsMap.insert("[#PROJECT_ICON#]", Project->ProjectDesc.ProjectIcon);
699 Project->SubsMap.insert("[#SITE_NAME#]", Project->ProgramInformation.SiteName);
700 Project->SubsMap.insert("[#SITE_URL#]", Project->ProgramInformation.SiteURL);
701 Project->SubsMap.insert("[#SITE_LOGO#]", Project->ProgramInformation.SiteLogo);
702 Project->SubsMap.insert("[#DEPARTURE_URL#]", Project->ProjectDesc.DepartureURL);
703 Project->SubsMap.insert("[#EXE_BUILD_DIR#]", Project->ProjectDesc.ExeDirectory);
704 Project->SubsMap.insert("[#EXE_NAME#]", Project->ProjectDesc.ExeName);
705 Project->SubsMap.insert("[#WEBSITE_DIR#]", Project->ProgramInformation.PrimaryWebsiteDirectory);
706 Project->SubsMap.insert("[#TEMPLATE_DIR#]", Project->ProgramInformation.SharedTemplateDirectory);
707 Project->SubsMap.insert("[#LOCAL_DEV_DIR#]", Project->ProgramInformation.LocalDevelopmentDirectory);
708 Project->SubsMap.insert("[#DOXY_LOGO#]", Project->DoxyOptions.DoxyLogoFilename);
709 Project->SubsMap.insert("[#DOXY_HEADER#]", Project->DoxyOptions.DoxyHtmlHeaderFilename);
710 Project->SubsMap.insert("[#DOXY_FOOTER#]", Project->DoxyOptions.DoxyHtmlFooterFilename);
711 Project->SubsMap.insert("[#DOXY_STYLESHEET#]", Project->DoxyOptions.DoxyExtraStylesheetFilename);
712 Project->SubsMap.insert("[#ASSOC_SHORT_NAME#]", Project->InAssocInfo.ShortName);
713 Project->SubsMap.insert("[#ASSOC_FULL_NAME#]", Project->InAssocInfo.FullName);
714 Project->SubsMap.insert("[#ASSOC_LOGO#]", Project->InAssocInfo.AssociationLogo);
715 Project->SubsMap.insert("[#ASSOC_URL#]", Project->InAssocInfo.AssociationURL);
716 Project->SubsMap.insert("[#EXCLUDE_FROM_LIST#]", QVariant(project_opts_manager->CheckExcludeProjectList(Project->ProjectDesc.ProjectOptions)).toString());
717 Project->SubsMap.insert("[#CONTROL_DOC_ACCESS#]", QVariant(project_opts_manager->CheckControlDocAccess(Project->ProjectDesc.ProjectOptions)).toString());
718 Project->SubsMap.insert("[#ONLY_DEFAULT_PAGE#]", QVariant(project_opts_manager->CheckOnlyDefaultPage(Project->ProjectDesc.ProjectOptions)).toString());
719 Project->SubsMap.insert("[#GROUP_ACCESS_ONLY#]", QVariant(project_opts_manager->CheckGroupAccessOnly(Project->ProjectDesc.ProjectOptions)).toString());
720 Project->SubsMap.insert("[#ENABLE_CUSTOM_DOXY#]", QVariant(project_opts_manager->CheckEnableCustomDoxygen(Project->ProjectDesc.ProjectOptions)).toString());
721 Project->SubsMap.insert("[#CAVEAT_LECTOR#]", QVariant(project_opts_manager->CheckCaveatLector(Project->ProjectDesc.ProjectOptions)).toString());
722 Project->SubsMap.insert("[#POTENTIAL_HAZARD#]", QVariant(project_opts_manager->CheckPotentialHazard(Project->ProjectDesc.ProjectOptions)).toString());
723 Project->SubsMap.insert("[#ASSISTANCE_WELCOME#]", QVariant(project_opts_manager->CheckAssistanceWelcome(Project->ProjectDesc.ProjectOptions)).toString());
724 Project->SubsMap.insert("[#DONATIONS_WELCOME#]", QVariant(project_opts_manager->ChecktDonationsWelcome(Project->ProjectDesc.ProjectOptions)).toString());
725 Project->SubsMap.insert("[#OFFER_PAYPAL_DONATION#]", QVariant(project_opts_manager->CheckOfferPaypalDonation(Project->ProjectDesc.ProjectOptions)).toString());
726 Project->SubsMap.insert("[#DOCUMENTATION_ADDRESS#]", Project->ProgramInformation.SiteURL + "/projects/" + Project->ProjectDesc.ProjectIdent);
727 Project->SubsMap.insert("[#CODE_DIR#]", Project->ProjectDesc.ProjectDirectory + "/source/" + Project->ProjectDesc.ExeName);
728 Project->SubsMap.insert("[#WEB_DIR#]", web_directory);
729 Project->SubsMap.insert("[#DIA_PATH#]", Project->ProjectDesc.ProjectDirectory + "/dia");
730 Project->SubsMap.insert("[#DOXY_LOG_FILE#]", Project->ProjectDesc.ProjectDirectory + "/scratch/" + DOXY_LOG_FILE);
731 Project->SubsMap.insert("[#DOXY_RESULTS#]", Project->ProgramInformation.SiteURL + "/project_dynamic/" + Project->ProjectDesc.ProjectIdent + "/html/" + DOXY_LOG_FILE);
732 Project->SubsMap.insert("[#CPPCHECK_RESULTS#]", Project->ProgramInformation.SiteURL + "/project_dynamic/" + Project->ProjectDesc.ProjectIdent + "/html/" + CPP_CHECK_FILE);
733 Project->SubsMap.insert("[#DOXY_IMAGE_PATH#]", web_directory + "/images");
734 Project->SubsMap.insert("[#DOT_IMAGE_FORMAT#]", ui->DotImageType->currentText());
735 if (ui->DotImageType->currentText() == "SVG") Project->SubsMap.insert("[#INTERACTIVE_SVG#]", "YES");
736 Project->SubsMap.insert("[#DOXY_TAB_SIZE#]", QString::number(ui->DoxyTabSize->value()));
737 Project->SubsMap.insert("[#DOXY_FILTERS#]", Project->ProgramInformation.SharedTemplateDirectory + "/support_template/doxygen_filters");
738 Project->SubsMap.insert("[#PUBLISHER_NAME#]", Project->ProgramInformation.PublisherName);
739 Project->SubsMap.insert("[#PUBLISHER_WEBSITE#]", Project->ProgramInformation.PublisherWebsite);
740 Project->SubsMap.insert("[#PUBLISHER_CONTACT#]", Project->ProgramInformation.PublisherContactEmail);
741 Project->SubsMap.insert("[#WEBDIR_PROJECT_HTML", Project->ProgramInformation.PrimaryWebsiteDirectory + "/html");
742 Project->SubsMap.insert("[#WEBDIR_PROJECT_IMAGES", Project->ProgramInformation.PrimaryWebsiteDirectory + "/images");
743 Project->SubsMap.insert("[#WEBDIR_PROJECT_DOCS", Project->ProgramInformation.PrimaryWebsiteDirectory + "/docs");
744 Project->SubsMap.insert("[#WEBSITE_PROJECT_HTML",Project->ProgramInformation.SiteURL + "/project_dynamic/" + Project->ProjectDesc.ProjectIdent + "/html");
745 Project->SubsMap.insert("[#WEBSITE_PROJECT_IMAGES", Project->ProgramInformation.SiteURL + "/project_dynamic/" + Project->ProjectDesc.ProjectIdent + "/images");
746 Project->SubsMap.insert("[#WEBSITE_PROJECT_DOCS", Project->ProgramInformation.SiteURL + "/project_dynamic/" + Project->ProjectDesc.ProjectIdent + "/docs");
747 Project->SubsMap.insert("[#LOCAL_DESKTOP#]", "/home/" + Project->ProgramInformation.CurrentUser + "/.local/share/applications/" + Project->ProjectDesc.ExeName + ".desktop");
748
750 {
751 QString archive_web_location = Project->ProgramInformation.SiteURL + "/project_dynamic/" +
752 Project->ProjectDesc.ProjectIdent + "/archive/" + Project->ProjectDesc.ExeName + ".tar.gz";
753 Project->SubsMap.insert("[#ARCHIVE_FILENAME#]", archive_web_location);
754 }
755
756 // Add Doxygen Optimisation for appropriate languages
757 QString key; QString value; bool key_set = false;
758 switch(Project->LangFamilyInfo.LangFamilyIndex)
759 {
760 case 5: // C++
761 key = "[#OPTIMIZE_C#]"; value = "YES"; key_set = true;
762 break;
763
764 case 16: // Java
765 key = "[#OPTIMIZE_JAVA#]"; value = "YES"; key_set = true;
766 break;
767
768 case 17: // Fortran
769 key = "[#OPTIMIZE_FORTRAN#]"; value = "YES"; key_set = true;
770 break;
771
772 case 18: // VDHL
773 key = "[#OPTIMIZE_FORTRAN#]"; value = "YES"; key_set = true;
774 break;
775
776 default:
777 key_set = false;
778 break;
779 }
780 if (key_set) Project->SubsMap.insert(key, value);
781
782
783 // Create Copyright Statement
784 QString created_query_template = "select version_timestamp from proj_version_info where project_id = %1 and major_version = 0 and minor_version = 0 and revision = 0";
785 QSqlQuery created_query(QString(created_query_template).arg(QString::number(Project->ProjectDesc.ProjectIndex)));
786
787 QString creation_year = "";
788 while ( created_query.next() )
789 {
790 QDateTime created_datetime = created_query.value(0).toDateTime();
791 creation_year = created_datetime.toString("yyyy");
792 }
793 QString current_year = QDateTime::currentDateTime().toString("yyyy");
794 QString copyright_year = creation_year + "-" + current_year;
795 QString copyright_template = "Copyright © %1 by %2";
796 QString copyright_statement = copyright_template.arg(copyright_year, Project->ProgramInformation.PublisherName);
797 Project->SubsMap.insert("[#COPYRIGHT_STATEMENT#]", copyright_statement);
798
799 // Create the
800 // Include the User Defined Substitutions
801 LoadUserSubstitutes(Project);
802}
void LoadUserSubstitutes(PROJECT_INFORMATION *Project)
#define DOXY_LOG_FILE
The name of the Doxygen Log File.
#define CPP_CHECK_FILE
#define CREATE_SOURCE_ARCHIVE
Create a SOurce Archive when Documentation Generated.
QString DoxyExtraStylesheetFilename
QString DoxyHtmlHeaderFilename
QString DoxyHtmlFooterFilename
PROGRAM_INFORMATION ProgramInformation
TARGET_FAMILY_INFO TargetFamilyInfo
DEV_FAMILY_INFO DevFamilyInfo
PROJECT_DESCRIPTION ProjectDesc
COMP_FAMILY_INFO CompFamilyInfo
LANG_FAMILY_INFO LangFamilyInfo
ASSOCIATED_GROUP_INFO InAssocInfo
QMap< QString, QString > SubsMap
QString StatusDescription
QString StatusDateTimeString
QString CurrentVersionString

References ASSOCIATED_GROUP_INFO::AssociationLogo, ASSOCIATED_GROUP_INFO::AssociationURL, PROJECT_DESCRIPTION::BriefDescription, PROJECT_INFORMATION::CompFamilyInfo, COMP_FAMILY_INFO::CompilerDirectory, COMP_FAMILY_INFO::CompilerToolImage, CPP_CHECK_FILE, CREATE_SOURCE_ARCHIVE, PROGRAM_INFORMATION::CurrentUser, VERSION_INFO::CurrentVersionString, PROJECT_DESCRIPTION::DepartureURL, PROJECT_INFORMATION::Developer, DEV_FAMILY_INFO::DevFamilyImage, PROJECT_INFORMATION::DevFamilyInfo, PROJECT_INFORMATION::DocLicence, DOXY_LOG_FILE, DOXY_OPTIONS::DoxyExtraStylesheetFilename, DOXY_OPTIONS::DoxyHtmlFooterFilename, DOXY_OPTIONS::DoxyHtmlHeaderFilename, DOXY_OPTIONS::DoxyLogoFilename, PROJECT_INFORMATION::DoxyOptions, DEVELOPER_INFO::Email, PROJECT_DESCRIPTION::ExeDirectory, PROJECT_DESCRIPTION::ExeName, PROJECT_DESCRIPTION::FullDescription, ASSOCIATED_GROUP_INFO::FullName, COMP_FAMILY_INFO::FullName, DEV_FAMILY_INFO::FullName, LANG_FAMILY_INFO::FullName, LICENCE_INFO::FullName, TARGET_FAMILY_INFO::FullName, VERSION_INFO::FullVersionString, DEVELOPER_INFO::Handle, PROJECT_INFORMATION::HardwareLicence, PROJECT_INFORMATION::InAssocInfo, DEVELOPER_INFO::Info, LANG_FAMILY_INFO::LangFamilyImage, LANG_FAMILY_INFO::LangFamilyIndex, PROJECT_INFORMATION::LangFamilyInfo, LICENCE_INFO::LicenceImage, LICENCE_INFO::LicenceURL, LoadUserSubstitutes(), PROGRAM_INFORMATION::LocalDevelopmentDirectory, DEVELOPER_INFO::Name, DEVELOPER_INFO::Phone, PROGRAM_INFORMATION::PrimaryWebsiteDirectory, PROJECT_INFORMATION::ProgramInformation, project_opts_manager, PROJECT_INFORMATION::ProjectDesc, PROJECT_DESCRIPTION::ProjectDirectory, PROJECT_DESCRIPTION::ProjectIcon, PROJECT_DESCRIPTION::ProjectIdent, PROJECT_DESCRIPTION::ProjectIndex, PROJECT_DESCRIPTION::ProjectName, PROJECT_DESCRIPTION::ProjectOptions, PROGRAM_INFORMATION::PublisherContactEmail, PROGRAM_INFORMATION::PublisherName, PROGRAM_INFORMATION::PublisherWebsite, PROGRAM_INFORMATION::SharedTemplateDirectory, ASSOCIATED_GROUP_INFO::ShortName, COMP_FAMILY_INFO::ShortName, DEV_FAMILY_INFO::ShortName, LANG_FAMILY_INFO::ShortName, LICENCE_INFO::ShortName, TARGET_FAMILY_INFO::ShortName, PROGRAM_INFORMATION::SiteLogo, PROGRAM_INFORMATION::SiteName, PROGRAM_INFORMATION::SiteURL, PROJECT_INFORMATION::SoftwareLicence, STATUS_INFO::StatusDateTimeString, STATUS_INFO::StatusDescription, STATUS_INFO::StatusImage, PROJECT_INFORMATION::StatusInfo, STATUS_INFO::StatusName, PROJECT_INFORMATION::SubsMap, TARGET_FAMILY_INFO::TargetFamilyImage, PROJECT_INFORMATION::TargetFamilyInfo, ui, VERSION_INFO::VersionDateString, PROJECT_INFORMATION::VersionInfo, and VERSION_INFO::VersionString.

Here is the call graph for this function:

◆ LoadPresets

void ProjectSubstitute::LoadPresets ( void )
slot

Load the Substitution Table.

Definition at line 208 of file projectsubstitute.cpp.

209{
210 LoadSubsTable(0);
211}
void LoadSubsTable(int ProjectNo)

References LoadSubsTable().

Here is the call graph for this function:

◆ LoadSubsTable

void ProjectSubstitute::LoadSubsTable ( int ProjectNo)
slot

Definition at line 85 of file projectsubstitute.cpp.

86{
87 QString key, value;
88
89 // Clear any Existing Entries
90 ui->ProjectSubsList->clearContents();
91
92 // Insert the Program Defined Substitutions
93 int row_index = 0;
94
95 // Add Keys defined by the Project
96 QString timestamp_format_string = DATETIME_DISPLAY_FORMAT;
97
98 // If this is a project Creation, use the Current Date Time.
99 if (ProjectNo != 0)
100 {
101 key = sys_item_name[STATUS_DATE]; value = project_info->StatusInfo.StatusDateTime.toString(timestamp_format_string);
102 AddKeyValue(key, value, row_index++);
103 key = sys_item_name[FULL_DESCRIPTION]; value = project_info->ProjectDesc.FullDescription;
104 AddKeyValue(key, value, row_index++);
105 key = sys_item_name[PROJECT_DIRECTORY]; value = project_info->ProgramInformation.LocalDevelopmentDirectory;
106 AddKeyValue(key, value, row_index++);
107 key = sys_item_name[PROJECT_ICON]; value = project_info->ProjectDesc.ProjectIcon;
108 AddKeyValue(key, value, row_index++);
109 key = sys_item_name[DOXY_LOGO]; value = project_info->DoxyOptions.DoxyLogoFilename;
110 AddKeyValue(key, value, row_index++);
111 key = sys_item_name[DOXY_HTML_HEADER]; value = project_info->DoxyOptions.DoxyHtmlHeaderFilename;
112 AddKeyValue(key, value, row_index++);
113 key = sys_item_name[DOXY_HTML_FOOTER]; value = project_info->DoxyOptions.DoxyHtmlFooterFilename;
114 AddKeyValue(key, value, row_index++);
115 key = sys_item_name[DOXY_EXTRA_STYLESHEET]; value = project_info->DoxyOptions.DoxyExtraStylesheetFilename;
116 //AddKeyValue(key, value, row_index++);
117 //key = sys_item_name[SOURCE_LIST]; value = project_info->ProjectDesc->
118 }
119 else
120 {
121 key = sys_item_name[STATUS_DATE]; value = "";
122 AddKeyValue(key, value, row_index++);
123 key = sys_item_name[FULL_DESCRIPTION]; value = "";
124 AddKeyValue(key, value, row_index++);
125 key = sys_item_name[PROJECT_DIRECTORY]; value = "";
126 AddKeyValue(key, value, row_index++);
127 key = sys_item_name[PROJECT_ICON]; value = "";
128 AddKeyValue(key, value, row_index++);
129 key = sys_item_name[DOXY_LOGO]; value = "";
130 AddKeyValue(key, value, row_index++);
131 key = sys_item_name[DOXY_HTML_HEADER]; value = "";
132 AddKeyValue(key, value, row_index++);
133 key = sys_item_name[DOXY_HTML_FOOTER]; value = "";
134 AddKeyValue(key, value, row_index++);
135 key = sys_item_name[DOXY_EXTRA_STYLESHEET]; value = "";
136 AddKeyValue(key, value, row_index++);
137 }
138
139 if (ProjectNo == 0)
140 {
141 row_index = DecodeProjectOptions(0, row_index, true);
142 }
143 else
144 {
145 row_index = DecodeProjectOptions(project_info->ProjectDesc.ProjectOptions, row_index, false);
146 }
147 key = sys_item_name[PROJECT_NAME]; value = ui->ProjectName->text();
148 AddKeyValue(key, value, row_index++);
149
150 key = sys_item_name[DEPARTURE_URL]; value = ui->DepartureURL->text();
151 AddKeyValue(key, value, row_index++);
152 key = sys_item_name[EXECUTABLE_DIR]; value = ui->ExecutableDirectory->text();
153 AddKeyValue(key, value, row_index++);
154
155 key = sys_item_name[SITE_URL]; value = ui->SiteURL->text();
156 AddKeyValue(key, value, row_index++);
157 key = sys_item_name[PROJECT_IDENT]; value = ui->ProjectIdent->text();
158 AddKeyValue(key, value, row_index++);
159 key = sys_item_name[MAJOR_VERSION]; value = QString::number(ui->MajorVersion->value());
160 AddKeyValue(key, value, row_index++);
161 key = sys_item_name[MINOR_VERSION]; value = QString::number(ui->MinorVersion->value());
162 AddKeyValue(key, value, row_index++);
163 key = sys_item_name[REVISION]; value = QString::number(ui->Revision->value());
164 AddKeyValue(key, value, row_index++);
165 key = sys_item_name[BRIEF_DESCRIPTION]; value = ui->BriefDescription->text();
166 AddKeyValue(key, value, row_index++);
167 key = sys_item_name[DEV_FAMILY]; value = ui->DevelopmentFamily->currentText();
168 AddKeyValue(key, value, row_index++);
169 key = sys_item_name[LANGUAGE_FAMILY]; value = ui->LanguageFamily->currentText();
170 AddKeyValue(key, value, row_index++);
171 key = sys_item_name[PRIMARY_TOOL]; value = ui->PrimaryTool->currentText();
172 AddKeyValue(key, value, row_index++);
173 key = sys_item_name[SYSTEM_FAMILY]; value = ui->TargetFamily->currentText();
174 AddKeyValue(key, value, row_index++);
175 key = sys_item_name[PROJECT_STATUS]; value = ui->ProjectStatus->currentText();
176 AddKeyValue(key, value, row_index++);
177 key = sys_item_name[PROJECT_HISTORY]; value = ui->FullHistory->toHtml();
178 AddKeyValue(key, value, row_index++);
179 key = sys_item_name[ASSOCIATED_GROUP]; value = ui->InAssociationList->currentText();
180 AddKeyValue(key, value, row_index++);
181 key = sys_item_name[DOCUMENT_LICENCE]; value = ui->DocumentationLicenceList->currentText();
182 AddKeyValue(key, value, row_index++);
183 key = sys_item_name[SOFTWARE_LICENCE]; value = ui->SoftwareLicenceList->currentText();
184 AddKeyValue(key, value, row_index++);
185 key = sys_item_name[HARDWARE_LICENCE]; value = ui->HardwareLicenceList->currentText();
186 AddKeyValue(key, value, row_index++);
187 key = sys_item_name[PROJECT_CONTACT]; value = ui->ProjectContactList->currentText();
188 AddKeyValue(key, value, row_index++);
189 key = sys_item_name[PROJECT_EMAIL]; value = GetProjectEmail(ui->ProjectContactList->currentIndex() + 1);
190 AddKeyValue(key, value, row_index++);
191
192 LoadBasePresets(row_index, ProjectNo);
193 ui->ProjectSubsList->sortItems(0, Qt::AscendingOrder);
194 LogAdd(LOG_DEBUG, MODE_DATABASE, QString("Read %1 Substitution entries from table \"project_substitute\"").arg(QString::number(row_index)));
195}
int DecodeProjectOptions(uint Options, int RowIndex, bool NewProject)
Add Key-Value items for all Project Options.
void LoadBasePresets(int RowIndex, int ProjectNo)
QString GetProjectEmail(int Index)
PROJECT_INFORMATION * project_info
Structure to hold Project Information.
#define DATETIME_DISPLAY_FORMAT
DateTime formatting for the program displays.
@ PROJECT_EMAIL
@ DOCUMENT_LICENCE
@ PRIMARY_TOOL
@ MAJOR_VERSION
@ PROJECT_IDENT
@ LANGUAGE_FAMILY
@ SOFTWARE_LICENCE
@ ASSOCIATED_GROUP
@ EXECUTABLE_DIR
@ PROJECT_CONTACT
@ MINOR_VERSION
@ DEV_FAMILY
@ PROJECT_STATUS
@ PROJECT_HISTORY
@ PROJECT_DIRECTORY
@ SITE_URL
@ REVISION
@ DOXY_LOGO
@ DOXY_HTML_FOOTER
@ BRIEF_DESCRIPTION
@ DOXY_HTML_HEADER
@ SYSTEM_FAMILY
@ PROJECT_NAME
@ HARDWARE_LICENCE
@ STATUS_DATE
@ PROJECT_ICON
@ DOXY_EXTRA_STYLESHEET
@ DEPARTURE_URL
@ FULL_DESCRIPTION

References AddKeyValue(), ASSOCIATED_GROUP, BRIEF_DESCRIPTION, DATETIME_DISPLAY_FORMAT, DecodeProjectOptions(), DEPARTURE_URL, DEV_FAMILY, DOCUMENT_LICENCE, DOXY_EXTRA_STYLESHEET, DOXY_HTML_FOOTER, DOXY_HTML_HEADER, DOXY_LOGO, EXECUTABLE_DIR, FULL_DESCRIPTION, GetProjectEmail(), HARDWARE_LICENCE, LANGUAGE_FAMILY, LoadBasePresets(), LOG_DEBUG, LogAdd(), MAJOR_VERSION, MINOR_VERSION, MODE_DATABASE, PRIMARY_TOOL, PROJECT_CONTACT, PROJECT_DIRECTORY, PROJECT_EMAIL, PROJECT_HISTORY, PROJECT_ICON, PROJECT_IDENT, project_info, PROJECT_NAME, PROJECT_STATUS, REVISION, SITE_URL, SOFTWARE_LICENCE, STATUS_DATE, sys_item_name, SYSTEM_FAMILY, and ui.

Referenced by LoadPresets(), ReadProjectId(), ReloadSubstituteTable(), and SaveLocalSubstitutes().

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

◆ LoadUserSubstitutes()

void ProjectSubstitute::LoadUserSubstitutes ( PROJECT_INFORMATION * Project)
private

Definition at line 804 of file projectsubstitute.cpp.

805{
806 // Define Substitution Variables
807 QString key_string; QString value_string;
808
809 // Load the Substitution Items from the Database
810 QString user_subs_query = "select key_word, substitution, lock_entry from project_substitute where project_index = 1 or project_index = %1 order by key_word";
811 QSqlQuery subs_query(QString(user_subs_query).arg(QString::number(Project->ProjectDesc.ProjectIndex)));
812
813 while ( subs_query.next() )
814 {
815 key_string = leadin_string + subs_query.value(0).toString() + leadout_string;
816 value_string = subs_query.value(1).toString();
817 Project->SubsMap.insert(key_string, value_string);
818 }
819}

References leadin_string, leadout_string, PROJECT_INFORMATION::ProjectDesc, PROJECT_DESCRIPTION::ProjectIndex, and PROJECT_INFORMATION::SubsMap.

Referenced by LoadFileSubsList().

Here is the caller graph for this function:

◆ LogAdd()

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

Add a Log Entry.

Parameters
SeveritySeverity of the Logged Event
ModePart of the Program being Logged
MessageDescription of the Log Event

Definition at line 70 of file projectsubstitute.cpp.

71{
72 REMOTE_LOG_ENTRY log_entry;
73 log_entry.Severity = Severity;
74 log_entry.Mode = Mode;
75 log_entry.Message = Message;
76 emit SendLogEntry(log_entry);
77}
void SendLogEntry(REMOTE_LOG_ENTRY LogEntry)
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 FindItemByKey(), LoadSubsTable(), SaveKeyValuePair(), SaveLocalSubstitutes(), and UpdateItem().

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

◆ ReadMajorVersion

void ProjectSubstitute::ReadMajorVersion ( int MajorVersion)
slot

Update the Major Version in the Substitute Table.

Parameters
MajorVersionMajor Version as Integer

Definition at line 573 of file projectsubstitute.cpp.

574{
575 UpdateItem(sys_item_name[MAJOR_VERSION], QString::number(MajorVersion));
576}
bool UpdateItem(QString Key, QString Value)
Update the Value of an Entry in the Substitution List.

References MAJOR_VERSION, sys_item_name, and UpdateItem().

Here is the call graph for this function:

◆ ReadMinorVersion

void ProjectSubstitute::ReadMinorVersion ( int MinorVersion)
slot

Update the Minor Version in the Substitute Table.

Parameters
MinorVersionMinor Version as Integer

Definition at line 578 of file projectsubstitute.cpp.

579{
580 UpdateItem(sys_item_name[MINOR_VERSION], QString::number(MinorVersion));
581}

References MINOR_VERSION, sys_item_name, and UpdateItem().

Here is the call graph for this function:

◆ ReadProjectId

void ProjectSubstitute::ReadProjectId ( PROJECT_INFORMATION * ProjectInfo)
slot

Load the Substitution Table for th Project.

Parameters
ProjectInfoPointer to the Project Information

Definition at line 79 of file projectsubstitute.cpp.

80{
81 project_info = ProjectInfo;
82 LoadSubsTable(project_info->ProjectDesc.ProjectIndex);
83}

References LoadSubsTable(), and project_info.

Here is the call graph for this function:

◆ ReadRevision

void ProjectSubstitute::ReadRevision ( int Revision)
slot

Update the Revision in the Substitute Table.

Parameters
RevisionRevision as Integer

Definition at line 583 of file projectsubstitute.cpp.

584{
585 UpdateItem(sys_item_name[REVISION], QString::number(Revision));
586}

References REVISION, sys_item_name, and UpdateItem().

Here is the call graph for this function:

◆ ReloadSubstituteTable

void ProjectSubstitute::ReloadSubstituteTable ( void )
privateslot

Reload the Substituition Table & Display.

Definition at line 274 of file projectsubstitute.cpp.

275{
276 if (project_info->ProjectDesc.ProjectIndex != 0) LoadSubsTable(project_info->ProjectDesc.ProjectIndex);
277}

References LoadSubsTable(), and project_info.

Referenced by ProjectSubstitute().

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

◆ SaveKeyValuePair()

bool ProjectSubstitute::SaveKeyValuePair ( int ProjectId,
QString Key,
QString Value,
bool Lock )
private

Definition at line 536 of file projectsubstitute.cpp.

537{
538 QString insert_string = QString("insert into project_substitute values (null, %1, '%2', '%3', %4)").arg(QString::number(ProjectId), Key, Value, QString::number(Lock));
539 QSqlQuery insert_keyvalue;
540 bool result = insert_keyvalue.exec(insert_string);
541 if (!result)
542 {
543 LogAdd(LOG_ERROR, MODE_DATABASE, QString("Unable to Add Key-Value Pair \"%1 - %2\" to project Id %3").arg(Key, Value, QString::number(ProjectId)));
544 }
545 else
546 {
547 LogAdd(LOG_DEBUG, MODE_DATABASE, QString("Added Key-Value Pair \"%1 - %2\" to project Id %3").arg(Key, Value, QString::number(ProjectId)));
548 }
549
550 return(result);
551}
@ LOG_ERROR
Definition logger.h:52

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

Referenced by SaveLocalSubstitutes().

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

◆ SaveLocalSubstitutes

void ProjectSubstitute::SaveLocalSubstitutes ( void )
slot

Save the Local Substitutes to the Database.

Definition at line 482 of file projectsubstitute.cpp.

483{
484 // Remove the Project's Deletable Substituitions from the Database
485 uint project_index = project_info->ProjectDesc.ProjectIndex;
486 QString query_string(QString("delete from project_substitute where project_index = %1 and lock_entry = false").arg(QString::number(project_index)));
487 QSqlQuery remove_query;
488 if (!remove_query.exec(query_string))
489 {
490 LogAdd(LOG_ERROR, MODE_DATABASE, "Unable to remove Key-Value pairs.");
491 }
492 else
493 {
494 LogAdd(LOG_DEBUG, MODE_DATABASE, "Removed Project's Key-Value pairs.");
495
496 // Step Through the Substituition Table Widget and put the Projects Deletable Key-Value Pairs into the Database
497 int row_count = ui->ProjectSubsList->rowCount();
498 for (int row = 0; row < row_count; row++)
499 {
500 QTableWidgetItem* key_item = ui->ProjectSubsList->item(row, 0);
501 QTableWidgetItem* value_item = ui->ProjectSubsList->item(row, 1);
502
503 if (key_item != nullptr)
504 {
505 // If the Key-Value Pair isn't Locked, Process It
506 Qt::ItemFlags flags = key_item->flags();
507 Qt::ItemFlags flag_bit = flags & Qt::ItemIsEditable;
508 bool is_locked = !(flag_bit & Qt::ItemIsEditable);
509 if (is_locked)
510 {
511 LogAdd(LOG_DEBUG, MODE_DATABASE, "Key-Value pair Locked");
512 }
513 else
514 {
515 if (SaveKeyValuePair(project_index, key_item->text(), value_item->text(),false))
516 {
517 LogAdd(LOG_DEBUG, MODE_DATABASE, QString("Key-Value pair:") + key_item->text() + " saved to database" );
518 }
519 else
520 {
521 LogAdd(LOG_ERROR, MODE_DATABASE, QString("Key-Value pair:") + key_item->text() + " NOT saved to database" );
522 }
523 }
524 }
525 else
526 {
527 LogAdd(LOG_DEBUG, MODE_DATABASE, QString("No Item in this row %1").arg(QString::number(row)));
528 }
529 }
530 }
531
532 // Reload the Substituitions Table
533 LoadSubsTable(project_index);
534}
bool SaveKeyValuePair(int ProjectId, QString Key, QString Value, bool Lock)

References LoadSubsTable(), LOG_DEBUG, LOG_ERROR, LogAdd(), MODE_DATABASE, project_info, SaveKeyValuePair(), and ui.

Referenced by ProjectSubstitute().

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

◆ SendLogEntry

void ProjectSubstitute::SendLogEntry ( REMOTE_LOG_ENTRY LogEntry)
signal

Referenced by LogAdd().

Here is the caller graph for this function:

◆ SetEditableState

void ProjectSubstitute::SetEditableState ( QTableWidgetItem * Item)
privateslot

Definition at line 553 of file projectsubstitute.cpp.

554{
555 Item->setFlags(Item->flags() | Qt::ItemIsEditable);
556}

◆ SetOptionState

void ProjectSubstitute::SetOptionState ( uint Options)
privateslot

Definition at line 433 of file projectsubstitute.cpp.

434{
435 bool state = OptionState & ((uint)EXCLUDE_PROJECT_LIST);
436 UpdateItem(option_name[EXCLUDE_PROJECT_LIST_BIT], QVariant(state).toString());
437
438 state = OptionState & ((uint)CONTROL_DOC_ACCESS);
439 UpdateItem(option_name[CONTROL_DOC_ACCESS_BIT], QVariant(state).toString());
440 if (!state)
441 {
444 }
445 else
446 {
447 if (OptionState & (uint)ONLY_DEFAULT_PAGE)
448 {
451 }
452 else
453 {
456 }
457 }
458
459 state = OptionState & ((uint)ENABLE_CUSTOM_DOXYGEN);
460 UpdateItem(option_name[ENABLE_CUSTOM_DOXYGEN_BIT], QVariant(state).toString());
461
462 state = OptionState & ((uint)CAVEAT_LECTOR);
463 UpdateItem(option_name[CAVEAT_LECTOR_BIT], QVariant(state).toString());
464
465 state = OptionState & ((uint)POTENTIAL_HAZARD);
466 UpdateItem(option_name[POTENTIAL_HAZARD_BIT], QVariant(state).toString());
467
468 state = OptionState & ((uint)ASSISTANCE_WELCOME);
469 UpdateItem(option_name[ASSISTANCE_WELCOME_BIT], QVariant(state).toString());
470
471 state = OptionState & ((uint)DONATIONS_WELCOME);
472 UpdateItem(option_name[DONATIONS_WELCOME_BIT], QVariant(state).toString());
473 if (!state)
474 {
476 }
477
478 state = OptionState & ((uint)OFFER_PAYPAL_DONATION);
479 UpdateItem(option_name[OFFER_PAYPAL_DONATION_BIT], QVariant(state).toString());
480}
#define ENABLE_CUSTOM_DOXYGEN
Enable Custom Doxygen Definitions Mask.
#define CAVEAT_LECTOR
Display User Warning Mask.
#define EXCLUDE_PROJECT_LIST
Exclude Project from Public List Mask.
#define DONATIONS_WELCOME
Display Donations Welcome Mask.
#define OFFER_PAYPAL_DONATION
Display Paypal Available Mask.
#define CONTROL_DOC_ACCESS
Control Document Access to Public Mask.
#define POTENTIAL_HAZARD
Display Potential Harzard Mask.
#define ASSISTANCE_WELCOME
Display Assistance Welcome Mask.
#define ONLY_DEFAULT_PAGE
Only Display Default Page to Public Mask.

References ASSISTANCE_WELCOME, ASSISTANCE_WELCOME_BIT, CAVEAT_LECTOR, CAVEAT_LECTOR_BIT, CONTROL_DOC_ACCESS, CONTROL_DOC_ACCESS_BIT, DONATIONS_WELCOME, DONATIONS_WELCOME_BIT, ENABLE_CUSTOM_DOXYGEN, ENABLE_CUSTOM_DOXYGEN_BIT, EXCLUDE_PROJECT_LIST, EXCLUDE_PROJECT_LIST_BIT, GROUP_ACCESS_ONLY_BIT, OFFER_PAYPAL_DONATION, OFFER_PAYPAL_DONATION_BIT, ONLY_DEFAULT_PAGE, ONLY_DEFAULT_PAGE_BIT, option_name, POTENTIAL_HAZARD, POTENTIAL_HAZARD_BIT, and UpdateItem().

Here is the call graph for this function:

◆ SetSubstituteState

void ProjectSubstitute::SetSubstituteState ( bool State)
privateslot

Definition at line 264 of file projectsubstitute.cpp.

265{
266 ui->ProjectSubsGroupBox->setEnabled(State);
267 ui->ProjectSubsList->setEnabled(State);
268 ui->ReloadSubstituitions->setEnabled(State);
269 ui->ClearSubstituitions->setEnabled(State);
270 ui->SaveSubstituitions->setEnabled(State);
271
272}

References ui.

◆ UpdateDepartureURL

void ProjectSubstitute::UpdateDepartureURL ( QString ExitURL)
slot

Update Exit URL in Substitute Table.

Parameters
ExitURLURL of exit destination

Definition at line 593 of file projectsubstitute.cpp.

594{
596}

References DEPARTURE_URL, sys_item_name, and UpdateItem().

Here is the call graph for this function:

◆ UpdateDevFamily

void ProjectSubstitute::UpdateDevFamily ( DEVELOPMENT_FAMILY DevelopmentTypes)
slot

Update the Dev Families Information in the Substitute Table.

Parameters
Structureholding the Dev Families Information

Definition at line 419 of file projectsubstitute.cpp.

420{
421 UpdateItem("DEV_FAMILY", DevelopmentTypes.DevelopmentFamilyString);
422 UpdateItem("LANGUAGE_FAMILY", DevelopmentTypes.LanguageFamilyString);
423 UpdateItem("PRIMARY_TOOL", DevelopmentTypes.CompilerFamilyString);
424 UpdateItem("SYSTEM_FAMILY", DevelopmentTypes.TargetFamilyString);
425}

References DEVELOPMENT_FAMILY::CompilerFamilyString, DEVELOPMENT_FAMILY::DevelopmentFamilyString, DEVELOPMENT_FAMILY::LanguageFamilyString, DEVELOPMENT_FAMILY::TargetFamilyString, and UpdateItem().

Here is the call graph for this function:

◆ UpdateDocumentationLicence

void ProjectSubstitute::UpdateDocumentationLicence ( QString LicenceName)
slot

Update the Documentation Licence Information in the Substitute Table.

Parameters
LicenceNameString holding the Documentation Licence Name

Definition at line 568 of file projectsubstitute.cpp.

569{
571}

References DOCUMENT_LICENCE, sys_item_name, and UpdateItem().

Here is the call graph for this function:

◆ UpdateDoxyFooter

void ProjectSubstitute::UpdateDoxyFooter ( QString DoxyFooter)
slot

Update Doxygen's Footer Filename in Substitute Table.

Parameters
DoxyFooterFilename of the Doxygen's Header

Definition at line 628 of file projectsubstitute.cpp.

629{
631}

References DOXY_HTML_FOOTER, sys_item_name, and UpdateItem().

Here is the call graph for this function:

◆ UpdateDoxyHeader

void ProjectSubstitute::UpdateDoxyHeader ( QString DoxyHeader)
slot

Update Doxygen's Header Filename in Substitute Table.

Parameters
DoxyHeaderFilename of the Doxygen's Header

Definition at line 623 of file projectsubstitute.cpp.

624{
626}

References DOXY_HTML_HEADER, sys_item_name, and UpdateItem().

Here is the call graph for this function:

◆ UpdateDoxyProjectLogo

void ProjectSubstitute::UpdateDoxyProjectLogo ( QString DoxyProjectLogo)
slot

Update Doxygen's Project Logo Filename in Substitute Table.

Parameters
DoxyProjectLogoFilename of the Doxygen's Project Logo

Definition at line 618 of file projectsubstitute.cpp.

619{
620 UpdateItem(sys_item_name[DOXY_LOGO], DoxyProjectLogo);
621}

References DOXY_LOGO, sys_item_name, and UpdateItem().

Here is the call graph for this function:

◆ UpdateDoxyStylesheet

void ProjectSubstitute::UpdateDoxyStylesheet ( QString DoxyStylesheet)
slot

Update Doxygen's Stylesheet Filename in Substitute Table.

Parameters
DoxyStylesheetFilename of the Doxygen's Stylesheet

Definition at line 633 of file projectsubstitute.cpp.

634{
636}

References DOXY_EXTRA_STYLESHEET, sys_item_name, and UpdateItem().

Here is the call graph for this function:

◆ UpdateFullDescription

void ProjectSubstitute::UpdateFullDescription ( QString FullDescription)
slot

Update the Full Description in the Substitute Table.

Parameters
FullDescriptionString holding the Full Description

Definition at line 407 of file projectsubstitute.cpp.

408{
409 UpdateItem("FULL_DESCRIPTION", TheText);
410}

References UpdateItem().

Here is the call graph for this function:

◆ UpdateHardwareLicence

void ProjectSubstitute::UpdateHardwareLicence ( QString LicenceName)
slot

Update the Hardware Licence Information in the Substitute Table.

Parameters
LicenceNameString holding the Hardware Licence Name

Definition at line 563 of file projectsubstitute.cpp.

564{
566}

References HARDWARE_LICENCE, sys_item_name, and UpdateItem().

Here is the call graph for this function:

◆ UpdateInAssocation

void ProjectSubstitute::UpdateInAssocation ( QString Association)
slot

Definition at line 638 of file projectsubstitute.cpp.

639{
641}

References ASSOCIATED_GROUP, sys_item_name, and UpdateItem().

Here is the call graph for this function:

◆ UpdateItem()

bool ProjectSubstitute::UpdateItem ( QString Key,
QString Value )
private

Update the Value of an Entry in the Substitution List.

Parameters
KeyThe Value of the Key in the List
ValueThe New Value to be associated with the Key
Returns
Success (true) or Failed (false)

Definition at line 385 of file projectsubstitute.cpp.

386{
387 bool result;
388 QTableWidgetItem* item = FindItemByKey(Key);
389 if (item != NULL)
390 {
391 int row = item->row(); // Item's Row
392 int column = 1; // Value Column
393
394 QTableWidgetItem* value_item = ui->ProjectSubsList->item(row, column);
395 value_item->setText(Value);
396 LogAdd(LOG_DEBUG, MODE_GENERAL, QString("Set Key \"%1\" to \"%2\"in the Substitute Table").arg(Key, Value));
397 result = true;
398 }
399 else
400 {
401 LogAdd(LOG_DEBUG, MODE_GENERAL, QString("Unable to set Key \"%1\" to \"%2\"in the Substitute Table").arg(Key, Value));
402 result = false;
403 }
404 return(result);
405}
QTableWidgetItem * FindItemByKey(QString Key)
Find a Substitution Entry in the Substitution List by Name.
@ MODE_GENERAL
Definition logger.h:24

References FindItemByKey(), LOG_DEBUG, LogAdd(), MODE_GENERAL, and ui.

Referenced by ReadMajorVersion(), ReadMinorVersion(), ReadRevision(), SetOptionState(), UpdateDepartureURL(), UpdateDevFamily(), UpdateDocumentationLicence(), UpdateDoxyFooter(), UpdateDoxyHeader(), UpdateDoxyProjectLogo(), UpdateDoxyStylesheet(), UpdateFullDescription(), UpdateHardwareLicence(), UpdateInAssocation(), UpdateProjectBrief(), UpdateProjectContact(), UpdateProjectDateTime(), UpdateProjectIcon(), UpdateProjectName(), UpdateSoftwareLicence(), UpdateStatus(), and UpdateVersion().

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

◆ UpdateProjectBrief

void ProjectSubstitute::UpdateProjectBrief ( QString Text)
slot

Update Project Brief in Substitute Table.

Parameters
NameURL of exit destination

Definition at line 603 of file projectsubstitute.cpp.

604{
606}

References BRIEF_DESCRIPTION, sys_item_name, and UpdateItem().

Here is the call graph for this function:

◆ UpdateProjectContact

void ProjectSubstitute::UpdateProjectContact ( QString ContactName)
slot

Definition at line 608 of file projectsubstitute.cpp.

609{
611}

References PROJECT_CONTACT, sys_item_name, and UpdateItem().

Here is the call graph for this function:

◆ UpdateProjectDateTime

void ProjectSubstitute::UpdateProjectDateTime ( QString ProjectDateTime)
slot

Update Project's DateTime in Substitute Table.

Parameters
ProjectDateTimeProject's Status DateTime

Definition at line 613 of file projectsubstitute.cpp.

614{
615 UpdateItem(sys_item_name[STATUS_DATE], ProjectDateTimeString);
616}

References STATUS_DATE, sys_item_name, and UpdateItem().

Here is the call graph for this function:

◆ UpdateProjectIcon

void ProjectSubstitute::UpdateProjectIcon ( QString Name)
slot

Definition at line 598 of file projectsubstitute.cpp.

599{
601}

References PROJECT_ICON, sys_item_name, and UpdateItem().

Here is the call graph for this function:

◆ UpdateProjectName

void ProjectSubstitute::UpdateProjectName ( QString Name)
slot

Update Project Name in Substitute Table.

Parameters
NameName of the Project

Definition at line 588 of file projectsubstitute.cpp.

589{
591}

References PROJECT_NAME, sys_item_name, and UpdateItem().

Here is the call graph for this function:

◆ UpdateSoftwareLicence

void ProjectSubstitute::UpdateSoftwareLicence ( QString LicenceName)
slot

Update the Software Licence Information in the Substitute Table.

Parameters
LicenceNameString holding the Software Licence Name

Definition at line 558 of file projectsubstitute.cpp.

559{
561}

References SOFTWARE_LICENCE, sys_item_name, and UpdateItem().

Here is the call graph for this function:

◆ UpdateStatus

void ProjectSubstitute::UpdateStatus ( STATUS_INFO StatusInfo)
slot

Update the Deve Families Information in the Substitute Table.

Parameters
Structureholding the Status Information

Definition at line 427 of file projectsubstitute.cpp.

428{
429 UpdateItem("PROJECT_STATUS", StatusInfo.StatusName);
430 UpdateItem("STATUS_DATE", StatusInfo.StatusDateTimeString);
431}

References STATUS_INFO::StatusDateTimeString, STATUS_INFO::StatusName, and UpdateItem().

Here is the call graph for this function:

◆ UpdateVersion

void ProjectSubstitute::UpdateVersion ( REMOTE_VERSION_ENTRY Version)
slot

Update the Version Information in the Substitute Table.

Parameters
VersionStructure holding the Version Information

Definition at line 412 of file projectsubstitute.cpp.

413{
414 UpdateItem("MAJOR_VERSION", QString::number(Version.VersionInfo.MajorVersion));
415 UpdateItem("MINOR_VERSION", QString::number(Version.VersionInfo.MinorVersion));
416 UpdateItem("REVISION", QString::number(Version.VersionInfo.Revision));
417}
VERSION_INFO VersionInfo

References VERSION_INFO::MajorVersion, VERSION_INFO::MinorVersion, VERSION_INFO::Revision, UpdateItem(), and REMOTE_VERSION_ENTRY::VersionInfo.

Here is the call graph for this function:

Field Documentation

◆ leadin_string

QString ProjectSubstitute::leadin_string
private

Lead in Characters for substitution blocks.

Definition at line 303 of file projectsubstitute.h.

Referenced by LoadUserSubstitutes(), and ProjectSubstitute().

◆ leadout_string

QString ProjectSubstitute::leadout_string
private

Lead out Characters for substitution blocks.

Definition at line 309 of file projectsubstitute.h.

Referenced by LoadUserSubstitutes(), and ProjectSubstitute().

◆ option_name

QStringList ProjectSubstitute::option_name
private

List of Option Names for Subtitution process.

Definition at line 327 of file projectsubstitute.h.

Referenced by DecodeProjectOptions(), ProjectSubstitute(), and SetOptionState().

◆ project_info

PROJECT_INFORMATION* ProjectSubstitute::project_info
private

Structure to hold Project Information.

Definition at line 297 of file projectsubstitute.h.

Referenced by LoadSubsTable(), ReadProjectId(), ReloadSubstituteTable(), and SaveLocalSubstitutes().

◆ project_opts_manager

ProjectOptionsManager* ProjectSubstitute::project_opts_manager
private

Pointer the Project Options Manager Class.

Definition at line 321 of file projectsubstitute.h.

Referenced by DecodeProjectOptions(), LoadFileSubsList(), and ProjectSubstitute().

◆ sys_item_name

◆ system_colour

QColor ProjectSubstitute::system_colour
private

table Background Colour

Definition at line 315 of file projectsubstitute.h.

Referenced by AddKeyValue(), LoadBasePresets(), and ProjectSubstitute().

◆ ui

Ui::MainWindow* ProjectSubstitute::ui
private

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