refactor file from messages to objects (#27)

* part 1 move files from messages to objects tomato - did not touch chat_gui yet, but image loaders and other stuff
* part 1.1
* part 2, mostly chatgui - also ngcft1 behind the scenes
* part 3 - port over rest, except for avatar_manager, which is effectivly disabled
* fix surface missused causing bmp loader to crash
* fixing small issues and small forward refactor
This commit is contained in:
Erik Scholz
2024-07-31 18:10:52 +02:00
committed by GitHub
parent f27d178b78
commit 2abf09ac06
17 changed files with 621 additions and 348 deletions

View File

@ -1,6 +1,6 @@
#pragma once
#include <solanaceae/message3/registry_message_model.hpp>
#include <solanaceae/object_store/object_store.hpp>
#include <solanaceae/contact/contact_model3.hpp>
#include <string>
@ -12,20 +12,20 @@
struct ConfigModelI;
struct ToxKey;
class ToxAvatarManager : public RegistryMessageModelEventI {
RegistryMessageModel& _rmm;
class ToxAvatarManager : public ObjectStoreEventI {
ObjectStore2& _os;
Contact3Registry& _cr;
ConfigModelI& _conf;
struct AcceptEntry {
Message3Handle m;
ObjectHandle m;
std::string file_path;
};
std::vector<AcceptEntry> _accept_queue;
public:
ToxAvatarManager(
RegistryMessageModel& rmm,
ObjectStore2& os,
Contact3Registry& cr,
ConfigModelI& conf
);
@ -33,13 +33,14 @@ class ToxAvatarManager : public RegistryMessageModelEventI {
void iterate(void);
protected:
// TODO: become backend and work in objects instead
std::string getAvatarPath(const ToxKey& key) const;
void addAvatarFileToContact(const Contact3 c, const ToxKey& key);
void clearAvatarFromContact(const Contact3 c);
void checkMsg(Message3Handle h);
void checkObj(ObjectHandle o);
protected: // mm
bool onEvent(const Message::Events::MessageConstruct& e) override;
bool onEvent(const Message::Events::MessageUpdated& e) override;
protected: // os
bool onEvent(const ObjectStore::Events::ObjectConstruct& e) override;
bool onEvent(const ObjectStore::Events::ObjectUpdate& e) override;
};