diff options
author | daniel g. siegel <dgsiegel@gnome.org> | 2010-07-01 20:59:13 +0200 |
---|---|---|
committer | daniel g. siegel <dgsiegel@gnome.org> | 2010-07-01 21:11:02 +0200 |
commit | 97bb69dc457806594adc187fd3e8fe0d172f7e33 (patch) | |
tree | 8b39b0896053f95acee2f3c5e1140665a4aa5a23 /src/cheese-effects-manager.vala | |
parent | 5126db9353a4143aa96905a8e644f81f68f0acf8 (diff) | |
download | cheese-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.vala | 40 |
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) { |