summaryrefslogtreecommitdiff
path: root/src/cheese-effects-manager.vala
diff options
context:
space:
mode:
authordaniel g. siegel <dgsiegel@gnome.org>2010-07-01 20:59:13 +0200
committerdaniel g. siegel <dgsiegel@gnome.org>2010-07-01 21:11:02 +0200
commit97bb69dc457806594adc187fd3e8fe0d172f7e33 (patch)
tree8b39b0896053f95acee2f3c5e1140665a4aa5a23 /src/cheese-effects-manager.vala
parent5126db9353a4143aa96905a8e644f81f68f0acf8 (diff)
downloadcheese-97bb69dc457806594adc187fd3e8fe0d172f7e33.tar.gz
remove incompatible return type warning
the ? symbol after the return type makes it able to return null in a function. did that in the effects manager class
Diffstat (limited to 'src/cheese-effects-manager.vala')
-rw-r--r--src/cheese-effects-manager.vala40
1 files changed, 32 insertions, 8 deletions
diff --git a/src/cheese-effects-manager.vala b/src/cheese-effects-manager.vala
index 033fcc7c..baac0aaf 100644
--- a/src/cheese-effects-manager.vala
+++ b/src/cheese-effects-manager.vala
@@ -5,27 +5,51 @@ const string GROUP_NAME = "effect";
internal class Cheese.EffectsManager : GLib.Object
{
- public static Cheese.Effect parse_effect_file (string filename)
+ public static Cheese.Effect ? parse_effect_file (string filename)
{
KeyFile kf = new KeyFile ();
-
- kf.load_from_file (filename, KeyFileFlags.NONE);
Effect eff = new Effect ();
- eff.name = kf.get_string (GROUP_NAME, "name");
- eff.pipeline_desc = kf.get_string (GROUP_NAME, "pipeline_desc");
+
+ try
+ {
+ kf.load_from_file (filename, KeyFileFlags.NONE);
+ eff.name = kf.get_string (GROUP_NAME, "name");
+ eff.pipeline_desc = kf.get_string (GROUP_NAME, "pipeline_desc");
+ }
+ catch (KeyFileError err)
+ {
+ warning ("Error: %s\n", err.message);
+ return null;
+ }
+ catch (FileError err)
+ {
+ warning ("Error: %s\n", err.message);
+ return null;
+ }
+
critical ("%s", eff.pipeline_desc);
return eff;
}
public ArrayList<Effect> effects;
- private ArrayList<Effect> load_effects_from_directory (string directory)
+ private ArrayList<Effect> ? load_effects_from_directory (string directory)
{
ArrayList<Effect> effects = new ArrayList<Effect>();
if (FileUtils.test (directory, FileTest.EXISTS | FileTest.IS_DIR))
{
- Dir dir = Dir.open (directory);
+ Dir dir;
string cur_file;
+ try
+ {
+ dir = Dir.open (directory);
+ }
+ catch (FileError err)
+ {
+ warning ("Error: %s\n", err.message);
+ return null;
+ }
+
cur_file = dir.read_name ();
while (cur_file != null)
@@ -53,7 +77,7 @@ internal class Cheese.EffectsManager : GLib.Object
effects.add_all (load_effects_from_directory (user_effects));
}
- public Effect get_effect (string name)
+ public Effect ? get_effect (string name)
{
foreach (Effect eff in effects)
{