17 QSettings settings(
"brigadoon/netprojectmanager" );
18 ui->ProjectPrefix->setCurrentText(settings.value(
"Project/ProjectSite",
"BRIGADOON").toString());
19 ui->ProjectNumberSize->setValue(settings.value(
"Project/ProjectIdSize", 4).toInt());
20 SetSite(
ui->ProjectPrefix->currentIndex() + 1);
21 ui->BuildProgram->setText(qVersion());
25 QObject::connect(
ui->SelectProjectIcon, SIGNAL(pressed()),
this, SLOT(
SelectIconImage()));
26 QObject::connect(
ui->ProjectName, SIGNAL(textChanged(QString)),
this, SLOT(
UpdateProjectName(QString)));
27 QObject::connect(
ui->DepartureURL, SIGNAL(textChanged(QString)),
this, SLOT(
UpdateDepartureURL(QString)));
28 QObject::connect(
ui->ProjectIcon, SIGNAL(textChanged(QString)),
this, SLOT(
UpdateProjectIcon(QString)));
29 QObject::connect(
ui->BriefDescription, SIGNAL(textChanged(QString)),
this, SLOT(
UpdateProjectBrief(QString)));
30 QObject::connect(
ui->ProjectContactList, SIGNAL(currentIndexChanged(
int)),
this, SLOT(
UpdateProjectContact(
int)));
31 QObject::connect(
ui->InAssociationList, SIGNAL(currentIndexChanged(
int)),
this, SLOT (
UpdateInAssociation(
int)));
37 ui->ProjectPrefix->clear();
39 QSqlQuery site_list_query(
"select project_prefix, suffix_size from project_manager");
43 while ( site_list_query.next() )
45 QString project_prefix = site_list_query.value(0).toString();
46 int suffix_size = site_list_query.value(1).toInt();
47 ui->ProjectPrefix->addItem(project_prefix, suffix_size);
51 else LogAdd(
LOG_DEBUG,
MODE_DATABASE, QString(
"Read %1 Site name entries from table \"project_manager\"").arg(QString::number(row_index)));
57 ui->ProjectContactList->clear();
59 QSqlQuery contact_list_query(
"select developer_index, developer_handle, developer_name from developer");
63 while ( contact_list_query.next() )
65 int developer_index = contact_list_query.value(0).toInt();
66 QString developer_handle = contact_list_query.value(1).toString();
67 QString developer_name = contact_list_query.value(2).toString();
68 QString list_entry = QString(
"%1 (%2)").arg(developer_handle, developer_name);
69 ui->ProjectContactList->addItem(list_entry, developer_index);
79 QString query_string_template = QString(
"select * from project_manager where proj_manager_index = %1");
80 QString query_string = QString(query_string_template).arg(QString::number(SiteId));
81 QSqlQuery proj_man_query(query_string);
85 while ( proj_man_query.next() )
121 ui->ProjectListHeaderFile->setText(
project_information.ProgramInformation.ProjectListHeaderFilename);
124 ui->ProjectListFooterFile->setText(
project_information.ProgramInformation.ProjectListFooterFilename);
130 ui->ProjectListWebTableFile->setText(
project_information.ProgramInformation.ProjectListWebpageFilename);
133 ui->ProjectListOSTableFile->setText(
project_information.ProgramInformation.ProjectListWebpageFilename);
139 ui->SiteLogo->setPixmap(the_pixmap.scaledToWidth(140));
152 log_entry.
Mode = Mode;
159 int index =
ui->ProjectPrefix->currentIndex() + 1;
161 QSettings settings(
"brigadoon/netprojectmanager");
162 settings.setValue(
"Project/ProjectSite",
ui->ProjectPrefix->currentText());
163 settings.setValue(
"Project/ProjectIdSize",
ui->ProjectNumberSize->value());
166 ui->PrimaryWebsiteDirectory->setText(
project_information.ProgramInformation.PrimaryWebsiteDirectory);
176 ui->InAssociationList->clear();
178 QSqlQuery association_list_query(
"select short_name, in_assoc_index from in_association");
182 while ( association_list_query.next() )
184 QString associate = association_list_query.value(0).toString();
185 int associate_index = association_list_query.value(1).toInt();
186 ui->InAssociationList->addItem(associate, associate_index);
189 LogAdd(
LOG_DEBUG,
MODE_DATABASE, QString(
"Added %1 entries to the In-Association List from table \"in_association\"").arg(QString::number(row_index)));
194 QString directory_name;
195 QString selected_file;
196 if (
ui->ProjectIdent->text().isEmpty())
202 directory_name =
ui->LocalDevDirectory->text() +
"/" +
ui->ProjectIdent->text();
204 selected_file =
GetFile( directory_name );
205 if ( selected_file !=
"" )
207 ui->ProjectIcon->setText( selected_file );
213 QString file_name = QFileDialog::getOpenFileName(
nullptr,
"Select Project's Icon", InitialName,
"*.png *.xpm *.jpg *.svg");
214 if (file_name ==
"")file_name = InitialName;
224 ui->ProjectName->clear();
225 ui->ProjectIcon->clear();
226 ui->ProjectIdent->clear();
227 ui->BriefDescription->clear();
228 ui->DepartureURL->clear();
237 QString project_prefix =
ui->ProjectPrefix->currentText();
238 int suffix_size =
ui->ProjectPrefix->currentData().toInt();
243 ui->ProjectIdent->setText( project_prefix +
"-" + QString::number(ProjectId->
ProjectDesc.
ProjectIndex).rightJustified(suffix_size,
'0'));
295 QString group_name =
ui->InAssociationList->itemText(Index);
void ReadProjectId(PROJECT_INFORMATION *ProjectId)
Read the Project Identifiers from Disk.
void SendInAssociation(QString InAssocGroup)
Send Associated Group name via signal/slot.
void LoadSiteList(void)
Load the Site Name List from Database.
void LoadInAssociationList(void)
Read known Association Lilst from Database.
Ui::MainWindow * ui
Pointer to the Main Window.
void SendLicenceState(LICENCE_STATE LicenceState)
Send the Licence State using Signal Slot.
void UpdateProjectContact(int Index)
Update Project Contact from User Interface.
void SetSite(int SiteId)
Set the Destination Site using the Site Index.
void UpdateInAssociation(int Index)
Update Associated Organisation from User Interface.
void DoClear()
Clear User Interface of Project identifiers.
void SendProjectName(QString ProjectName)
void LogAdd(LOGGING_SEVERITY Severity, LOGGING_MODE Mode, QString Message)
Send Message to the Log.
void SendProjectIcon(QString ProjectIcon)
void SavePreferredProject(void)
Save the Preferred Project and related Information.
void UpdateProjectName(QString Name)
Update Project Name from User Interface.
void UpdateProjectIcon(QString Name)
Update Project Icon from User Interface.
void SendLogEntry(REMOTE_LOG_ENTRY LogEntry)
Send Log Entry to the Log \LogEntry Structure holding Log information.
QString GetFile(QString InitialName)
Read contents of file into string.
void LoadContactList(void)
Load Contact List from the Database.
void SendDepartureURL(QString DepartureURL)
void SendProjectBrief(QString ProjectBrief)
Send Project Brief Description via signal/slot.
void UpdateDepartureURL(QString Name)
Update Departure URL from User Interface.
void UpdateProjectBrief(QString Name)
Update Project Brief Description from User Interface.
ProjectIdentifier(Ui::MainWindow *UI_Window)
ProjectIdentifier Class Constructor.
void SendProjectContact(QString ProjectContact)
Send Project Contact name via signal/slot.
void SelectIconImage(void)
Select Icon triggered by User Selection.
void SendDevelopmentFamily(DEVELOPMENT_FAMILY DevFamily)
Send the Development Family using Signal Slot.
Common Structure Defintitions.
@ PM_PROJECT_LIST_FOOTER_FILENAME
@ PM_PUBLISHER_CONTACT_EMAIL
@ PM_PROJECT_DEVELOPMENT_DOXY_DIRECTORY
@ PM_PROJECT_LIST_RETURN_ADDRESS
@ PM_PROJECT_LIST_HEADER_FILENAME
@ PM_PROJECT_LIST_OPENSIM_FILENAME
@ PM_PROJECT_LIST_WEBPAGE_FILENAME
@ PM_PRIMARY_WEBSITE_DIRECTORY
@ PM_PROJECT_LIST_LINE_FILENAME
LOGGING_SEVERITY
Log Severity allow the selection of logging events based on Severity.
LOGGING_MODE
Log Severity allow the selection of logging events based on the mode.
PROJECT_INFORMATION project_information
Project Identifier Class.
Summary of Project Types.
Assigned Software, Hardware and COgumenttaion Licences.
uint DocumentationLicence
LOGGING_SEVERITY Severity
Version Structure used between functions.