diff options
Diffstat (limited to 'libdino')
-rw-r--r-- | libdino/src/plugin/interfaces.vala | 6 | ||||
-rw-r--r-- | libdino/src/plugin/loader.vala | 4 | ||||
-rw-r--r-- | libdino/src/service/connection_manager.vala | 1 | ||||
-rw-r--r-- | libdino/src/service/database.vala | 4 | ||||
-rw-r--r-- | libdino/src/service/file_manager.vala | 36 |
5 files changed, 28 insertions, 23 deletions
diff --git a/libdino/src/plugin/interfaces.vala b/libdino/src/plugin/interfaces.vala index 655ef13a..852aa596 100644 --- a/libdino/src/plugin/interfaces.vala +++ b/libdino/src/plugin/interfaces.vala @@ -64,7 +64,7 @@ public interface TextCommand : Object { public interface ConversationTitlebarEntry : Object { public abstract string id { get; } public abstract double order { get; } - public abstract ConversationTitlebarWidget get_widget(WidgetType type); + public abstract ConversationTitlebarWidget? get_widget(WidgetType type); } public interface ConversationTitlebarWidget : Object { @@ -94,7 +94,7 @@ public abstract class MetaConversationItem : Object { public abstract bool requires_avatar { get; set; } public abstract bool requires_header { get; set; } - public abstract Object get_widget(WidgetType type); + public abstract Object? get_widget(WidgetType type); } public interface ConversationItemCollection : Object { @@ -110,7 +110,7 @@ public interface MessageDisplayProvider : Object { } public interface FileWidget : Object { - public abstract Object get_widget(WidgetType type); + public abstract Object? get_widget(WidgetType type); } public interface FileDisplayProvider : Object { diff --git a/libdino/src/plugin/loader.vala b/libdino/src/plugin/loader.vala index 43876b92..102bf3f9 100644 --- a/libdino/src/plugin/loader.vala +++ b/libdino/src/plugin/loader.vala @@ -26,7 +26,7 @@ public class Loader : Object { this.search_paths = app.search_path_generator.get_plugin_paths(); } - public void loadAll() { + public void loadAll() throws Error { if (Module.supported() == false) { throw new Error(-1, 0, "Plugins are not supported"); } @@ -95,4 +95,4 @@ public class Loader : Object { } } -}
\ No newline at end of file +} diff --git a/libdino/src/service/connection_manager.vala b/libdino/src/service/connection_manager.vala index 3f945f4c..60cd335a 100644 --- a/libdino/src/service/connection_manager.vala +++ b/libdino/src/service/connection_manager.vala @@ -59,7 +59,6 @@ public class ConnectionManager { private class RecMutexWrap { public RecMutex mutex = RecMutex(); - public void lock() { mutex.lock(); } public void unlock() { mutex.unlock(); } public bool trylock() { return mutex.trylock(); } } diff --git a/libdino/src/service/database.vala b/libdino/src/service/database.vala index aaceede1..6b75b800 100644 --- a/libdino/src/service/database.vala +++ b/libdino/src/service/database.vala @@ -199,7 +199,9 @@ public class Database : Qlite.Database { roster = new RosterTable(this); settings = new SettingsTable(this); init({ account, jid, message, real_jid, file_transfer, conversation, avatar, entity_feature, roster, settings }); - exec("PRAGMA synchronous=0"); + try { + exec("PRAGMA synchronous=0"); + } catch (Error e) { } } public override void migrate(long oldVersion) { diff --git a/libdino/src/service/file_manager.vala b/libdino/src/service/file_manager.vala index 92ca7506..571bbaab 100644 --- a/libdino/src/service/file_manager.vala +++ b/libdino/src/service/file_manager.vala @@ -35,9 +35,6 @@ public class FileManager : StreamInteractionModule, Object { } public void send_file(string uri, Conversation conversation) { - File file = File.new_for_path(uri); - FileInfo file_info = file.query_info("*", FileQueryInfoFlags.NONE); - FileTransfer file_transfer = new FileTransfer(); file_transfer.account = conversation.account; file_transfer.counterpart = conversation.counterpart; @@ -46,11 +43,16 @@ public class FileManager : StreamInteractionModule, Object { file_transfer.time = new DateTime.now_utc(); file_transfer.local_time = new DateTime.now_utc(); file_transfer.encryption = Encryption.NONE; - file_transfer.file_name = file_info.get_display_name(); - file_transfer.input_stream = file.read(); - - file_transfer.mime_type = file_info.get_content_type(); - file_transfer.size = (int)file_info.get_size(); + try { + File file = File.new_for_path(uri); + FileInfo file_info = file.query_info("*", FileQueryInfoFlags.NONE); + file_transfer.file_name = file_info.get_display_name(); + file_transfer.mime_type = file_info.get_content_type(); + file_transfer.size = (int)file_info.get_size(); + file_transfer.input_stream = file.read(); + } catch (Error e) { + file_transfer.state = FileTransfer.State.FAILED; + } save_file(file_transfer); file_transfer.persist(db); @@ -90,7 +92,7 @@ public class FileManager : StreamInteractionModule, Object { File file = File.new_for_path(Path.build_filename(get_storage_dir(), file_transfer.path ?? file_transfer.file_name)); try { file_transfer.input_stream = file.read(); - } catch (IOError e) { } + } catch (Error e) { } ret.insert(0, file_transfer); } return ret; @@ -123,27 +125,29 @@ public class FileManager : StreamInteractionModule, Object { } save_file(file_transfer); - File file = File.new_for_path(file_transfer.get_uri()); - FileInfo file_info = file.query_info("*", FileQueryInfoFlags.NONE); - file_transfer.mime_type = file_info.get_content_type(); + try { + File file = File.new_for_path(file_transfer.get_uri()); + FileInfo file_info = file.query_info("*", FileQueryInfoFlags.NONE); + file_transfer.mime_type = file_info.get_content_type(); + } catch (Error e) { } file_transfer.persist(db); received_file(file_transfer); } private void save_file(FileTransfer file_transfer) { - string filename = Random.next_int().to_string("%x") + "_" + file_transfer.file_name; - File file = File.new_for_path(Path.build_filename(get_storage_dir(), filename)); try { + string filename = Random.next_int().to_string("%x") + "_" + file_transfer.file_name; + File file = File.new_for_path(Path.build_filename(get_storage_dir(), filename)); OutputStream os = file.create(FileCreateFlags.REPLACE_DESTINATION); os.splice(file_transfer.input_stream, 0); os.close(); file_transfer.state = FileTransfer.State.COMPLETE; + file_transfer.path = filename; + file_transfer.input_stream = file.read(); } catch (Error e) { file_transfer.state = FileTransfer.State.FAILED; } - file_transfer.path = filename; - file_transfer.input_stream = file.read(); } } |