Пример #1
0
void CExportImageDialog::HandleExportExtension( int index )
{
	assert__( index >= 0 && index < CDisplayData::EImageExportType_size );

	mOutputFileType = (EImageExportType)index;

	std::string extension = CDisplayData::ImageType2String( mOutputFileType );

	SetFileExtension( mOutputFileName2D, extension );
	mOutputPathLineEdit2D->setText( mOutputFileName2D.c_str() );
	SetFileExtension( mOutputFileName3D, extension );
	mOutputPathLineEdit3D->setText( mOutputFileName3D.c_str() );
}
	ERMsg CWeatherUpdate::Execute(const CFileManager& fileManager, CCallback& callback)
	{
		ERMsg msg;

		string filePath;
		msg = GetFM().WeatherUpdate().GetFilePath(m_fileTitle, filePath);
		if (msg)
		{
			//try to open log
			string logFilePath(filePath);
			SetFileExtension(logFilePath, ".log");

			callback.PushTask("Call WeatherUpdater...", NOT_INIT);
			msg = CallApplication(CRegistry::WEATHER_UPDATER, "\"" + filePath + "\" -e -l \"" + logFilePath + (m_bShowApp ? "\" -Show" : "\""), NULL, m_bShowApp ? SW_SHOW : SW_HIDE, false, true);

			if (msg)
			{
				ifStream log;
				if (log.open(logFilePath))
					callback.AddMessage(log.GetText());
			}

			callback.PopTask();
		}
			

		return msg;
	}
Пример #3
0
void CMatchingDlg::UpdatePreview(bool force_update)
{
	int frame_id, state;
	CImage img;
	GtkTreeIter iter;
	GtkTreeModel *model;

	if (m_SelectMode == REFERENCE_FRAME) {
		// Reference frame
		GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(m_FrameView));
		if (gtk_tree_selection_get_selected(sel, &model, &iter)) {
			gtk_tree_model_get(model, &iter, FCOL_ID, &frame_id, FCOL_STATE, &state, -1);
			if (force_update || m_FrameID!=frame_id) {
				cmpack_chart_view_set_model(CMPACK_CHART_VIEW(m_Preview), NULL);
				cmpack_chart_view_set_image(CMPACK_CHART_VIEW(m_Preview), NULL);
				if (m_ChartData) {
					g_object_unref(m_ChartData);
					m_ChartData = NULL;
				}
				if (m_ImageData) {
					g_object_unref(m_ImageData);
					m_ImageData = NULL;
				}
				m_FrameID = frame_id;
				if (m_DMFrame == DISPLAY_CHART && (state & CFILE_PHOTOMETRY)) {
					gchar *pht_file = g_Project->GetPhotFile(frame_id);
					CPhot pht;
					if (pht_file && pht.Load(pht_file))
						UpdateChart(pht);
					g_free(pht_file);
				} else 
				if (state & CFILE_CONVERSION) {
					gchar *fts_file = g_Project->GetImageFile(frame_id);
					if (fts_file && img.Load(fts_file)) 
						UpdateImage(img);
					g_free(fts_file);
				} else {
					gchar *src_file = g_Project->GetSourceFile(frame_id);
					if (src_file && img.Load(src_file)) 
						UpdateImage(img);
					g_free(src_file);
				}
			}
		} else {
			if (force_update || m_FrameID>=0) {
				m_FrameID = -1;
				cmpack_chart_view_set_model(CMPACK_CHART_VIEW(m_Preview), NULL);
				cmpack_chart_view_set_image(CMPACK_CHART_VIEW(m_Preview), NULL);
				if (m_ChartData) {
					g_object_unref(m_ChartData);
					m_ChartData = NULL;
				}
				if (m_ImageData) {
					g_object_unref(m_ImageData);
					m_ImageData = NULL;
				}
			}
		}
	} else {
		// Catalog file
		GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(m_CatalogView));
		if (gtk_tree_selection_get_selected(sel, &model, &iter)) {
			gchar *fname;
			gtk_tree_model_get(GTK_TREE_MODEL(m_Catalogs), &iter, CCOL_FILENAME, &fname, -1);
			gchar *fpath = g_build_filename(gtk_entry_get_text(GTK_ENTRY(m_PathEntry)), fname, NULL);
			if (force_update || StrCmp0(m_CatFile, fpath)!=0) {
				g_free(m_CatFile);
				m_CatFile = g_strdup(fpath);
				cmpack_chart_view_set_model(CMPACK_CHART_VIEW(m_Preview), NULL);
				cmpack_chart_view_set_image(CMPACK_CHART_VIEW(m_Preview), NULL);
				if (m_ChartData) {
					g_object_unref(m_ChartData);
					m_ChartData = NULL;
				}
				if (m_ImageData) {
					g_object_unref(m_ImageData);
					m_ImageData = NULL;
				}
				CCatalog cat;
				if (cat.Load(m_CatFile)) 
					UpdateChart(cat);
				if (m_DMCatalog == DISPLAY_IMAGE) {
					gchar *fts_file = SetFileExtension(m_CatFile, FILE_EXTENSION_FITS);
					if (img.Load(fts_file)) 
						UpdateImage(img);
					g_free(fts_file);
				}
			}
			g_free(fpath);
			g_free(fname);
		} else {
			if (force_update || m_CatFile) {
				g_free(m_CatFile);
				m_CatFile = NULL;
				g_free(m_SelectionName);
				m_SelectionName = NULL;
				cmpack_chart_view_set_model(CMPACK_CHART_VIEW(m_Preview), NULL);
				cmpack_chart_view_set_image(CMPACK_CHART_VIEW(m_Preview), NULL);
				if (m_ChartData) {
					g_object_unref(m_ChartData);
					m_ChartData = NULL;
				}
				if (m_ImageData) {
					g_object_unref(m_ImageData);
					m_ImageData = NULL;
				}
			}
		}
	}
}
	ERMsg CAppendWeather::Execute(CCallback& callback)
	{
		ERMsg msg;
		
		string inputFilePath1 = Get(INPUT_FILEPATH_1);
		string inputFilePath2 = Get(INPUT_FILEPATH_2);
		string outputFilePath = Get(OUTPUT_FILEPATH);

		string extention1 = GetFileExtension(inputFilePath1);
		string extention2 = GetFileExtension(inputFilePath2);

		if (IsEqualNoCase(extention1, CNormalsDatabase::DATABASE_EXT) && IsEqualNoCase(extention2, CNormalsDatabase::DATABASE_EXT))
		{
			msg.ajoute("It's not possible to append normals stations");
			//msg = ExecuteNormal(callback);
		}
		else if (IsEqualNoCase(extention1, CDailyDatabase::DATABASE_EXT) && IsEqualNoCase(extention2, CDailyDatabase::DATABASE_EXT))
		{
			SetFileExtension(outputFilePath, CDailyDatabase::DATABASE_EXT);

			msg = CDailyDatabase().DeleteDatabase(outputFilePath, callback);
			if (msg)
			{
				CDailyDatabase DB;
				msg = DB.Open(outputFilePath, CDailyDatabase::modeWrite, callback);
				if (msg)
				{
					msg = DB.AppendDatabase(inputFilePath1, inputFilePath2, callback);
					msg += DB.Close();
					if (msg)
					{
						msg = DB.Open(outputFilePath, CDailyDatabase::modeRead, callback);
						if (msg)
							DB.Close();
					}
				}
			}
		}
		else if (IsEqualNoCase(extention1, CHourlyDatabase::DATABASE_EXT) && IsEqualNoCase(extention2, CHourlyDatabase::DATABASE_EXT))
		{
			SetFileExtension(outputFilePath, CHourlyDatabase::DATABASE_EXT);

			msg = CHourlyDatabase().DeleteDatabase(outputFilePath, callback);
			if (msg)
			{
				CHourlyDatabase DB;
				msg = DB.Open(outputFilePath, CHourlyDatabase::modeWrite, callback);
				if (msg)
				{
					msg = DB.AppendDatabase(inputFilePath1, inputFilePath2, callback);
					msg += DB.Close();
					if (msg)
					{
						msg = DB.Open(outputFilePath, CHourlyDatabase::modeRead, callback);
						if (msg)
							DB.Close();
					}
				}
			}
		}
		else
		{
			msg.ajoute("Database must be of the same type");
		}

		return msg;
	}
Пример #5
0
void CChartDlg::Execute(const CSelection &sel, int aperIndex)
{
	int	res = 0;
	const gchar *tmp_file;
	GtkTreePath *refpath;
	GError *error = NULL;

	m_Selection = sel;
	m_Tags = *g_Project->Tags();
	
	cmpack_chart_view_set_model(CMPACK_CHART_VIEW(m_Chart), NULL);
	cmpack_chart_view_set_image(CMPACK_CHART_VIEW(m_Chart), NULL);
	if (m_ChartData) {
		g_object_unref(m_ChartData);
		m_ChartData = NULL;
	}
	if (m_ImageData) {
		g_object_unref(m_ImageData);
		m_ImageData = NULL;
	}
	m_Phot.Clear();
	m_Catalog.Clear();
	m_Image.Clear();

	m_RefType = g_Project->GetReferenceType();
	switch (m_RefType)
	{
	case REF_FRAME:
		// Load reference frame
		refpath = g_Project->GetReferencePath();
		if (refpath) {
			gchar *pht_file = g_Project->GetPhotFile(refpath);
			if (pht_file) {
				GError *error = NULL;
				if (m_Phot.Load(pht_file, &error)) {
					m_Phot.SelectAperture(aperIndex);
					UpdateChart();
					gchar *fts_file = g_Project->GetImageFile(refpath);
					if (fts_file) {
						if (m_Image.Load(fts_file, CMPACK_BITPIX_AUTO, &error)) 
							UpdateImage();
						g_free(fts_file);
					}
				} 
				if (error) {
					ShowError(m_pParent, error->message);
					g_error_free(error);
					res = -1;
				}
				g_free(pht_file);
			}
			gtk_tree_path_free(refpath);
		}
		break;

	case REF_CATALOG_FILE:
		// Load catalog file
		tmp_file = g_Project->GetTempCatFile()->FullPath();
		if (m_Catalog.Load(tmp_file, &error)) {
			UpdateChart();
			gchar *fts_file = SetFileExtension(tmp_file, FILE_EXTENSION_FITS);
			if (fts_file) {
				if (m_Image.Load(fts_file, CMPACK_BITPIX_AUTO, &error)) 
					UpdateImage();
				g_free(fts_file);
			}
		}
		if (error) {
			ShowError(m_pParent, error->message);
			g_error_free(error);
			res = -1;
		}
		break;

	default:
		ShowError(m_pParent, "No reference file.");
		res = -1;
	}

	if (res==0) {
		gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(m_ShowImage), 
			m_DisplayMode==DISPLAY_IMAGE);
		gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(m_ShowChart), 
			m_DisplayMode==DISPLAY_CHART);
		gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(m_ShowMixed), 
			m_DisplayMode==DISPLAY_FULL);
		gtk_widget_set_sensitive(GTK_WIDGET(m_ShowImage), 
			m_Image.Width()>0 && m_Image.Height()>0);
		gtk_widget_set_sensitive(GTK_WIDGET(m_ShowMixed), 
			m_Image.Width()>0 && m_Image.Height()>0);
		gtk_dialog_run(GTK_DIALOG(m_pDlg));
	}
}