add contact context menu and invites
Some checks failed
ContinuousDelivery / linux-ubuntu (push) Has been cancelled
ContinuousDelivery / android (map[ndk_abi:arm64-v8a vcpkg_toolkit:arm64-android-23]) (push) Has been cancelled
ContinuousDelivery / android (map[ndk_abi:armeabi-v7a vcpkg_toolkit:arm-neon-android-23]) (push) Has been cancelled
ContinuousDelivery / android (map[ndk_abi:x86_64 vcpkg_toolkit:x64-android-23]) (push) Has been cancelled
ContinuousDelivery / windows (push) Has been cancelled
ContinuousDelivery / windows-asan (push) Has been cancelled
ContinuousDelivery / dumpsyms (push) Has been cancelled
ContinuousDelivery / release (push) Has been cancelled
ContinuousIntegration / linux (push) Has been cancelled
ContinuousIntegration / linux-arm (push) Has been cancelled
ContinuousIntegration / android (map[ndk_abi:arm64-v8a vcpkg_toolkit:arm64-android-23]) (push) Has been cancelled
ContinuousIntegration / android (map[ndk_abi:armeabi-v7a vcpkg_toolkit:arm-neon-android-23]) (push) Has been cancelled
ContinuousIntegration / android (map[ndk_abi:x86_64 vcpkg_toolkit:x64-android-23]) (push) Has been cancelled
ContinuousIntegration / macos (push) Has been cancelled
ContinuousIntegration / windows (push) Has been cancelled
Some checks failed
ContinuousDelivery / linux-ubuntu (push) Has been cancelled
ContinuousDelivery / android (map[ndk_abi:arm64-v8a vcpkg_toolkit:arm64-android-23]) (push) Has been cancelled
ContinuousDelivery / android (map[ndk_abi:armeabi-v7a vcpkg_toolkit:arm-neon-android-23]) (push) Has been cancelled
ContinuousDelivery / android (map[ndk_abi:x86_64 vcpkg_toolkit:x64-android-23]) (push) Has been cancelled
ContinuousDelivery / windows (push) Has been cancelled
ContinuousDelivery / windows-asan (push) Has been cancelled
ContinuousDelivery / dumpsyms (push) Has been cancelled
ContinuousDelivery / release (push) Has been cancelled
ContinuousIntegration / linux (push) Has been cancelled
ContinuousIntegration / linux-arm (push) Has been cancelled
ContinuousIntegration / android (map[ndk_abi:arm64-v8a vcpkg_toolkit:arm64-android-23]) (push) Has been cancelled
ContinuousIntegration / android (map[ndk_abi:armeabi-v7a vcpkg_toolkit:arm-neon-android-23]) (push) Has been cancelled
ContinuousIntegration / android (map[ndk_abi:x86_64 vcpkg_toolkit:x64-android-23]) (push) Has been cancelled
ContinuousIntegration / macos (push) Has been cancelled
ContinuousIntegration / windows (push) Has been cancelled
This commit is contained in:
2
external/solanaceae_contact
vendored
2
external/solanaceae_contact
vendored
Submodule external/solanaceae_contact updated: 5adf5bf9da...fdbe643958
2
external/solanaceae_tox
vendored
2
external/solanaceae_tox
vendored
Submodule external/solanaceae_tox updated: 91ae0671b0...83367b2d2e
@@ -1,6 +1,7 @@
|
|||||||
#include "./contact_list.hpp"
|
#include "./contact_list.hpp"
|
||||||
|
|
||||||
#include <solanaceae/contact/components.hpp>
|
#include <solanaceae/contact/components.hpp>
|
||||||
|
#include <solanaceae/contact/contact_model4.hpp>
|
||||||
#include <solanaceae/message3/components.hpp>
|
#include <solanaceae/message3/components.hpp>
|
||||||
#include <solanaceae/util/utils.hpp>
|
#include <solanaceae/util/utils.hpp>
|
||||||
#include <solanaceae/util/time.hpp>
|
#include <solanaceae/util/time.hpp>
|
||||||
@@ -325,6 +326,7 @@ bool renderContactList(
|
|||||||
) {
|
) {
|
||||||
bool selection_changed {false};
|
bool selection_changed {false};
|
||||||
for (const Contact4 cv : view) {
|
for (const Contact4 cv : view) {
|
||||||
|
ImGui::PushID(entt::to_integral(cv));
|
||||||
ContactHandle4 c{cr, cv};
|
ContactHandle4 c{cr, cv};
|
||||||
const bool selected = selected_c == c;
|
const bool selected = selected_c == c;
|
||||||
|
|
||||||
@@ -342,6 +344,36 @@ bool renderContactList(
|
|||||||
selected_c = c;
|
selected_c = c;
|
||||||
selection_changed = true;
|
selection_changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: move to own function
|
||||||
|
if (ImGui::BeginPopupContextItem("contact_context")) {
|
||||||
|
if (c.all_of<Contact::Components::ContactModel>()) {
|
||||||
|
const auto& cm = c.get<Contact::Components::ContactModel>();
|
||||||
|
// TODO: make hookable
|
||||||
|
if (ImGui::BeginMenu("invite to")) {
|
||||||
|
// big?
|
||||||
|
//for (const auto& c : cr.view<Contact::Components::TagBig>()) {
|
||||||
|
// // filter
|
||||||
|
// if (cr.any_of<Contact::Components::RequestIncoming, Contact::Components::TagRequestOutgoing>(c)) {
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
for (auto [tov] : cr.storage<Contact4>().each()) {
|
||||||
|
if (cm->canInvite(c, tov)) {
|
||||||
|
ContactHandle4 to{cr, tov};
|
||||||
|
|
||||||
|
if (renderContactBig(th, contact_tc, to, 1, false, true, false)) {
|
||||||
|
// TODO: error check
|
||||||
|
cm->invite(c, tov);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ImGui::EndMenu();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui::EndPopup();
|
||||||
|
}
|
||||||
|
ImGui::PopID();
|
||||||
}
|
}
|
||||||
return selection_changed;
|
return selection_changed;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user