diff options
Diffstat (limited to 'gio/src/file.ccg')
-rw-r--r-- | gio/src/file.ccg | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gio/src/file.ccg b/gio/src/file.ccg index 36f0a2b3..017dedab 100644 --- a/gio/src/file.ccg +++ b/gio/src/file.ccg @@ -375,6 +375,27 @@ Glib::RefPtr<FileInfo> File::query_filesystem_info(const Glib::RefPtr<Cancellabl } #ifdef GLIBMM_EXCEPTIONS_ENABLED +Glib::RefPtr<FileInfo> File::query_filesystem_info(const std::string& attributes) +#else +Glib::RefPtr<FileInfo> File::query_filesystem_info(const std::string& attributes, std::auto_ptr<Glib::Error>& error) +#endif //GLIBMM_EXCEPTIONS_ENABLED +{ + GError* gerror = 0; + Glib::RefPtr<FileInfo> retvalue = Glib::wrap(g_file_query_filesystem_info(gobj(), attributes.c_str(), NULL, &(gerror))); +#ifdef GLIBMM_EXCEPTIONS_ENABLED + if(gerror) + ::Glib::Error::throw_exception(gerror); +#else + if(gerror) + error = ::Glib::Error::throw_exception(gerror); +#endif //GLIBMM_EXCEPTIONS_ENABLED + + if(retvalue) + retvalue->reference(); //The function does not do a ref for us. + return retvalue; +} + +#ifdef GLIBMM_EXCEPTIONS_ENABLED Glib::RefPtr<FileEnumerator> File::enumerate_children(const Glib::RefPtr<Cancellable>& cancellable, const std::string& attributes, FileQueryInfoFlags flags) #else Glib::RefPtr<FileEnumerator> File::enumerate_children(const Glib::RefPtr<Cancellable>& cancellable, const std::string& attributes, FileQueryInfoFlags flags, std::auto_ptr<Glib::Error>& error) |