Subversion Repositories spk

Rev

Rev 49 | Rev 52 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 49 Rev 50
Line 21... Line 21...
21
				return false;
21
				return false;
22
		}
22
		}
23
		else
23
		else
24
			m_pPackage = base;
24
			m_pPackage = base;
25
		
25
		
26
		m_pPackage->SetChanged(false);
26
		m_pPackage->adjustChanged(false);
27
		m_pPackage->UpdateSigned(true);
27
		m_pPackage->UpdateSigned(true);
28
		this->UpdateChanged();
28
		this->UpdateChanged();
29
		m_bLoading = true;
29
		m_bLoading = true;
30
 
30
 
31
		if ( m_pPackage->AnyFileType(FILETYPE_ADVERT) )
31
		if ( m_pPackage->AnyFileType(FILETYPE_ADVERT) )
Line 68... Line 68...
68
		this->RadioInstallAfter->Checked = false;
68
		this->RadioInstallAfter->Checked = false;
69
		this->RadioUninstallAfter->Checked = false;
69
		this->RadioUninstallAfter->Checked = false;
70
		this->RadioUninstallBefore->Checked = false;
70
		this->RadioUninstallBefore->Checked = false;
71
		this->UpdateView();
71
		this->UpdateView();
72
 
72
 
73
		m_pPackage->SetChanged(false);
73
		m_pPackage->adjustChanged(false);
74
 
74
 
75
		m_bLoading = false;
75
		m_bLoading = false;
76
 
76
 
77
		return true;
77
		return true;
78
	}
78
	}
Line 285... Line 285...
285
		m_bLoading = true;
285
		m_bLoading = true;
286
 
286
 
287
		System::ComponentModel::ComponentResourceManager^  resources = (gcnew System::ComponentModel::ComponentResourceManager(PackageForm::typeid));
287
		System::ComponentModel::ComponentResourceManager^  resources = (gcnew System::ComponentModel::ComponentResourceManager(PackageForm::typeid));
288
 
288
 
289
		this->LabelShipWarning->Visible = false;
289
		this->LabelShipWarning->Visible = false;
290
		this->TextName->Text = SystemStringFromCyString(m_pPackage->GetName());
290
		this->TextName->Text = _US(m_pPackage->name());
291
		this->TextAuthor->Text = SystemStringFromCyString(m_pPackage->GetAuthor());
291
		this->TextAuthor->Text = _US(m_pPackage->author());
292
		this->TextVersion->Text = SystemStringFromCyString(m_pPackage->GetVersion());
292
		this->TextVersion->Text = _US(m_pPackage->version());
293
		Utils::String desc = m_pPackage->description();
293
		Utils::String desc = m_pPackage->description();
294
		desc = desc.findReplace("<br>", "\n");
294
		desc = desc.findReplace("<br>", "\n");
295
		desc = desc.findReplace("<newline>", "\n");
295
		desc = desc.findReplace("<newline>", "\n");
296
		desc = desc.stripHtml();
296
		desc = desc.stripHtml();
297
		this->TextDesc->Text = _US(desc);
297
		this->TextDesc->Text = _US(desc);
Line 366... Line 366...
366
 
366
 
367
			this->UpdateWares();
367
			this->UpdateWares();
368
			this->UpdateScriptType();
368
			this->UpdateScriptType();
369
		}
369
		}
370
 
370
 
371
		if ( !m_pPackage->GetCreationDate().Empty() )
371
		if ( !m_pPackage->creationDate().empty() ) {
372
		{
-
 
373
			CyString date = m_pPackage->GetCreationDate();
-
 
374
			int day = m_pPackage->GetCreationDate().GetToken("/", 1, 1).ToInt();
372
			int day = m_pPackage->creationDate().token("/", 1);
375
			int month = m_pPackage->GetCreationDate().GetToken("/", 2, 2).ToInt();
373
			int month = m_pPackage->creationDate().token("/", 2);
376
			int year = m_pPackage->GetCreationDate().GetToken("/", 3, 3).ToInt();
374
			int year = m_pPackage->creationDate().token("/", 3);
377
			if ( month > 12 && day <= 12 ) { int temp = day; day = month; month = temp; }
375
			if ( month > 12 && day <= 12 ) { int temp = day; day = month; month = temp; }
378
			if ( month < 1 ) month = 1;
376
			if ( month < 1 ) month = 1;
379
			if ( month > 12 ) month = 12;
377
			if ( month > 12 ) month = 12;
380
			if ( day < 1 ) day = 1;
378
			if ( day < 1 ) day = 1;
381
			if ( day > 31 ) day = 1;
379
			if ( day > 31 ) day = 1;
Line 1018... Line 1016...
1018
		}
1016
		}
1019
	}
1017
	}
1020
 
1018
 
1021
	bool PackageForm::CheckSave()
1019
	bool PackageForm::CheckSave()
1022
	{
1020
	{
1023
		if ( m_pPackage->GetName().Empty() )
1021
		if ( m_pPackage->name().empty() )
1024
		{
1022
		{
1025
			MessageBox::Show(this, "You must specify a package name", "Invalid Entry", MessageBoxButtons::OK, MessageBoxIcon::Stop);
1023
			MessageBox::Show(this, "You must specify a package name", "Invalid Entry", MessageBoxButtons::OK, MessageBoxIcon::Stop);
1026
			return false;
1024
			return false;
1027
		}
1025
		}
1028
		if ( m_pPackage->GetAuthor().Empty() )
1026
		if ( m_pPackage->author().empty() )
1029
		{
1027
		{
1030
			MessageBox::Show(this, "You must specify an Author", "Invalid Entry", MessageBoxButtons::OK, MessageBoxIcon::Stop);
1028
			MessageBox::Show(this, "You must specify an Author", "Invalid Entry", MessageBoxButtons::OK, MessageBoxIcon::Stop);
1031
			return false;
1029
			return false;
1032
		}
1030
		}
1033
		if ( m_pPackage->GetVersion().Empty() )
1031
		if ( m_pPackage->version().empty() )
1034
		{
1032
		{
1035
			MessageBox::Show(this, "You must specify a version number", "Invalid Entry", MessageBoxButtons::OK, MessageBoxIcon::Stop);
1033
			MessageBox::Show(this, "You must specify a version number", "Invalid Entry", MessageBoxButtons::OK, MessageBoxIcon::Stop);
1036
			return false;
1034
			return false;
1037
		}
1035
		}
1038
 
1036
 
Line 1045... Line 1043...
1045
					m_pPackage->AddNeededLibrary("<package>", "<author>", "1.00");
1043
					m_pPackage->AddNeededLibrary("<package>", "<author>", "1.00");
1046
				n = m_pPackage->FindPackageNeeded("<package>", "<author>");
1044
				n = m_pPackage->FindPackageNeeded("<package>", "<author>");
1047
 
1045
 
1048
				if ( n )
1046
				if ( n )
1049
				{
1047
				{
1050
					if ( ((CSpkFile *)m_pPackage)->GetVersion().CompareVersion(n->sMinVersion) != COMPARE_OLDER )
1048
					if ( ((CSpkFile *)m_pPackage)->version().compareVersion(n->sMinVersion) != COMPARE_OLDER )
1051
					{
1049
					{
1052
						MessageBox::Show(this, "The depencay vesion (" + SystemStringFromCyString(n->sMinVersion) + ") is too high, it must be lower than the current version (" + SystemStringFromCyString(m_pPackage->GetVersion()) + ")", "Invalid Entry", MessageBoxButtons::OK, MessageBoxIcon::Stop);
1050
						MessageBox::Show(this, "The depencay vesion (" + _US(n->sMinVersion) + ") is too high, it must be lower than the current version (" + _US(m_pPackage->version()) + ")", "Invalid Entry", MessageBoxButtons::OK, MessageBoxIcon::Stop);
1053
						return false;
1051
						return false;
1054
					}
1052
					}
1055
				}
1053
				}
1056
			}
1054
			}
1057
			else if ( ((CSpkFile *)m_pPackage)->IsCustomStart() )
1055
			else if ( ((CSpkFile *)m_pPackage)->IsCustomStart() )
Line 1071... Line 1069...
1071
				}
1069
				}
1072
			}
1070
			}
1073
		}
1071
		}
1074
 
1072
 
1075
		 System::DateTime ^time = DateTime(this->CreationDate->Value);
1073
		 System::DateTime ^time = DateTime(this->CreationDate->Value);
1076
		 
-
 
1077
		 String ^t = System::Convert::ToString(time->Day) + ";/"; + System::Convert::ToString(time->Month) + "/" + System::Convert::ToString(time->Year);
1074
		 m_pPackage->setCreationDate(_S(System::Convert::ToString(time->Day) + "/" + System::Convert::ToString(time->Month) + ";/"; + System::Convert::ToString(time->Year)));
1078
		 m_pPackage->SetCreationDate(CyStringFromSystemString(t));
-
 
1079
 
1075
 
1080
		return true;
1076
		return true;
1081
	}
1077
	}
1082
 
1078
 
1083
	void PackageForm::Save()
1079
	void PackageForm::Save()
1084
	{
1080
	{
1085
		if ( !this->CheckSave() )
1081
		if ( !this->CheckSave() )
1086
			return;
1082
			return;
1087
 
1083
 
1088
		if ( m_pPackage->GetFilename().Empty() )
1084
		if ( m_pPackage->filename().empty() )
1089
		{
1085
		{
1090
			this->SaveAs();
1086
			this->SaveAs();
1091
			return;
1087
			return;
1092
		}
1088
		}
1093
 
1089
 
1094
		if ( m_pPackage->GetType() == TYPE_XSP )
1090
		if ( m_pPackage->GetType() == TYPE_XSP )
1095
			((CXspFile *)m_pPackage)->AdjustCockpits();
1091
			((CXspFile *)m_pPackage)->AdjustCockpits();
1096
 
1092
 
1097
		SaveDialog ^save = gcnew SaveDialog(m_pPackage, SystemStringFromCyString(m_pPackage->GetFilename()));
1093
		SaveDialog ^save = gcnew SaveDialog(m_pPackage, _US(m_pPackage->filename()));
1098
		if ( save->ShowDialog(this) == Windows::Forms::DialogResult::Cancel )
1094
		if ( save->ShowDialog(this) == Windows::Forms::DialogResult::Cancel )
1099
			return;
1095
			return;
1100
 
1096
 
1101
		this->UpdateFileList();
1097
		this->UpdateFileList();
1102
		m_pPackage->SetChanged(false);
1098
		m_pPackage->adjustChanged(false);
1103
		this->UpdateChanged();
1099
		this->UpdateChanged();
1104
 
1100
 
1105
		if ( m_pSettings->bGenerateUpdate )
1101
		if ( m_pSettings->bGenerateUpdate )
1106
			m_pPackage->CreateUpdateFile(CFileIO(m_pPackage->GetFilename()).GetDir());
1102
			m_pPackage->CreateUpdateFile(CFileIO(m_pPackage->filename()).GetDir());
1107
 
1103
 
1108
		MessageBox::Show("Package: " + SystemStringFromCyString(m_pPackage->GetFilename()) + "\nHas been saved!", "Saved", MessageBoxButtons::OK, MessageBoxIcon::Information);
1104
		MessageBox::Show("Package: " + _US(m_pPackage->filename()) + "\nHas been saved!", "Saved", MessageBoxButtons::OK, MessageBoxIcon::Information);
1109
	}
1105
	}
1110
 
1106
 
1111
	void PackageForm::SaveAs()
1107
	void PackageForm::SaveAs()
1112
	{
1108
	{
1113
		if ( !this->CheckSave() )
1109
		if ( !this->CheckSave() )
Line 1117... Line 1113...
1117
		if ( m_pPackage->GetType() == TYPE_XSP )
1113
		if ( m_pPackage->GetType() == TYPE_XSP )
1118
			ofd->Filter = "Ship Files (*.xsp)|*.xsp";
1114
			ofd->Filter = "Ship Files (*.xsp)|*.xsp";
1119
		else
1115
		else
1120
			ofd->Filter = "Package Files (*.spk)|*.spk";
1116
			ofd->Filter = "Package Files (*.spk)|*.spk";
1121
		ofd->AddExtension = true;
1117
		ofd->AddExtension = true;
1122
		CyString filename = m_pPackage->GetFilename();
1118
		CyString filename = m_pPackage->filename();
1123
		if ( filename.Empty() )
1119
		if ( filename.Empty() )
1124
			filename = m_pPackage->GetAutosaveName();
1120
			filename = m_pPackage->GetAutosaveName();
1125
		filename = filename.FindReplace("/", "\\");
1121
		filename = filename.FindReplace("/", "\\");
1126
		ofd->FileName = SystemStringFromCyString(filename);
1122
		ofd->FileName = SystemStringFromCyString(filename);
1127
		ofd->FilterIndex = 1;
1123
		ofd->FilterIndex = 1;
1128
		ofd->RestoreDirectory = true;
1124
		ofd->RestoreDirectory = true;
1129
		if ( ofd->ShowDialog(this) == System::Windows::Forms::DialogResult::OK )
1125
		if ( ofd->ShowDialog(this) == System::Windows::Forms::DialogResult::OK )
1130
		{
1126
		{
1131
			m_pPackage->SetFilename(CyStringFromSystemString(ofd->FileName));
1127
			m_pPackage->setFilename(_S(ofd->FileName));
1132
			m_sFilename = ofd->FileName;
1128
			m_sFilename = ofd->FileName;
1133
			m_pTabPage->Text = SystemStringFromCyString(CFileIO(m_pPackage->GetFilename()).GetFilename());
1129
			m_pTabPage->Text = SystemStringFromCyString(CFileIO(m_pPackage->filename()).GetFilename());
1134
			m_pMenuItem->Text = m_pTabPage->Text;
1130
			m_pMenuItem->Text = m_pTabPage->Text;
1135
			this->Save();
1131
			this->Save();
1136
		}
1132
		}
1137
	}
1133
	}
1138
 
1134
 
1139
	System::Void PackageForm::PackageForm_Closing(System::Object^  sender, CancelEventArgs^  e)	{
1135
	System::Void PackageForm::PackageForm_Closing(System::Object^  sender, CancelEventArgs^  e)	{
1140
		if ( m_pPackage->IsChanged() )
1136
		if ( m_pPackage->hasChanged() )
1141
		{
1137
		{
1142
			String ^name = m_pTabPage->Text;
1138
			String ^name = m_pTabPage->Text;
1143
			if ( name[name->Length - 1] == '*' )
1139
			if ( name[name->Length - 1] == '*' )
1144
				name = name->Remove(name->Length - 1);
1140
				name = name->Remove(name->Length - 1);
1145
			System::Windows::Forms::DialogResult result = MessageBox::Show("Would you like to save changes to the package?\n\n" + name, "Save Package", MessageBoxButtons::YesNoCancel, MessageBoxIcon::Question);
1141
			System::Windows::Forms::DialogResult result = MessageBox::Show("Would you like to save changes to the package?\n\n" + name, "Save Package", MessageBoxButtons::YesNoCancel, MessageBoxIcon::Question);
Line 1155... Line 1151...
1155
				{
1151
				{
1156
					e->Cancel = true;
1152
					e->Cancel = true;
1157
					return;
1153
					return;
1158
				}
1154
				}
1159
 
1155
 
1160
				if ( m_pPackage->GetFilename().Empty() )
1156
				if ( m_pPackage->filename().empty() )
1161
				{
1157
				{
1162
					SaveFileDialog ^ofd = gcnew SaveFileDialog();
1158
					SaveFileDialog ^ofd = gcnew SaveFileDialog();
1163
					if ( m_pPackage->GetType() == TYPE_XSP )
1159
					if ( m_pPackage->GetType() == TYPE_XSP )
1164
						ofd->Filter = "Ship Files (*.xsp)|*.xsp";
1160
						ofd->Filter = "Ship Files (*.xsp)|*.xsp";
1165
					else
1161
					else
1166
						ofd->Filter = "Package Files (*.spk)|*.spk";
1162
						ofd->Filter = "Package Files (*.spk)|*.spk";
1167
					ofd->FilterIndex = 1;
1163
					ofd->FilterIndex = 1;
1168
					ofd->RestoreDirectory = true;
1164
					ofd->RestoreDirectory = true;
1169
					if ( ofd->ShowDialog(this) == System::Windows::Forms::DialogResult::OK )
1165
					if ( ofd->ShowDialog(this) == System::Windows::Forms::DialogResult::OK )
1170
						m_pPackage->SetFilename(CyStringFromSystemString(ofd->FileName));
1166
						m_pPackage->setFilename(_S(ofd->FileName));
1171
					else
1167
					else
1172
					{
1168
					{
1173
						 e->Cancel = true;
1169
						 e->Cancel = true;
1174
						 return;
1170
						 return;
1175
					}
1171
					}
1176
				}
1172
				}
1177
 
1173
 
1178
				if ( !m_pPackage->WriteFile(m_pPackage->GetFilename()) )
1174
				if ( !m_pPackage->WriteFile(m_pPackage->filename()) )
1179
				{
1175
				{
1180
					e->Cancel = true;
1176
					e->Cancel = true;
1181
					MessageBox::Show("Unable to save package\n" + SystemStringFromCyString(m_pPackage->GetFilename()), "Save Error", MessageBoxButtons::OK, MessageBoxIcon::Error);
1177
					MessageBox::Show("Unable to save package\n" + _US(m_pPackage->filename()), "Save Error", MessageBoxButtons::OK, MessageBoxIcon::Error);
1182
					return;
1178
					return;
1183
				}
1179
				}
1184
			}
1180
			}
1185
		}
1181
		}
1186
 
1182