0
0
Fork 0

Compare commits

...

1 Commits

Author SHA1 Message Date
Pascal Abresch 79d305af81 Add Nheko port 2021-04-24 09:23:36 +02:00
4 changed files with 313 additions and 0 deletions

Binary file not shown.

View File

@ -0,0 +1,29 @@
resource app_flags B_EXCLUSIVE_LAUNCH;
resource app_version {
major = @MAJOR@,
middle = @MIDDLE@,
minor = @MINOR@,
variety = B_APPV_FINAL,
internal = @INTERNAL@,
short_info = "Nheko",
long_info = "@LONG_INFO@"
};
resource app_signature "@APP_SIGNATURE@";
resource vector_icon {
$"6E63696609040065050102000402B2E2E2E2FFAD9F9F03BEDCF303C7E7FF0200"
$"0402C685A8DCFF5289DA03BED0EA05F602000402C5969696FF897C8B0A080552"
$"3C525A4C5A332E372E0A09322D2E312E3B343E34504A5B4D5B5058503C0A0436"
$"3630333039363C0A043A383E3A3E523A500A083E3A4C414C5948574845424242"
$"543E520804363630333330393308043D3541373E3A3A380A044C413E3A41374F"
$"3E0804425445514544424108044D3D4D554A584A400C0A000100201F1C0A0101"
$"01201F1C0A020102201F1C0A030103201B1A0A050103201F1C0A020104201F1C"
$"0A070105201F1C0A040106201B1A0A060106201F1C0A070107201F1C0A080108"
$"201F1C0A08010920211D"
};

View File

@ -0,0 +1,110 @@
SUMMARY="A Qt5-based IM client for Matrix"
DESCRIPTION="Nheko client for matrix"
HOMEPAGE="https://nheko.im/nheko-reborn/nheko"
COPYRIGHT="2017-2021 Nheko Authors"
LICENSE="GNU GPL v3"
REVISION="1"
SOURCE_URI="https://github.com/Nheko-Reborn/nheko/archive/v${portVersion}.tar.gz"
CHECKSUM_SHA256="df4575c47daab47d418637a4637b599e3848dd749132ca1e92f981d9212eabb2"
SOURCE_FILENAME="nheko-${portVersion}.tar.gz"
SOURCE_DIR="nheko-${portVersion}"
PATCHES="nheko-${portVersion}.patchset"
ADDITIONAL_FILES="nheko.rdef.in"
ARCHITECTURES="!x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
nheko$secondaryArchSuffix = $portVersion
app:Nheko$secondaryArchSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
mtxclient$secondaryArchSuffix >= 0.5.1
qtkeychain$secondaryArchSuffix
olm$secondaryArchSuffix
spdlog$secondaryArchSuffix
lib:libQT5Gui$secondaryArchSuffix
lib:libz$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5Concurrent$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5Concurrent$secondaryArchSuffix
lib:libQt5QuickWidgets$secondaryArchSuffix
lib:liblmdb$secondaryArchSuffix
lib:libQt5QuickControls2$secondaryArchSuffix
lib:libcmark$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libQt5Quick$secondaryArchSuffix
lib:libQt5DBus$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
lib:libfmt$secondaryArchSuffix
lib:libQt5Svg$secondaryArchSuffix
lib:libcrypto$secondaryArchSuffix
lib:libQt5Multimedia$secondaryArchSuffix
lib:libQt5Qml$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
"
BUILD_REQUIRES="
boost170${secondaryArchSuffix}_devel
haiku${secondaryArchSuffix}_devel
lmdb_devel$secondaryArchSuffix
mtxclient_devel$secondaryArchSuffix >= 0.5.1
qtkeychain_devel$secondaryArchSuffix
pkgconfig$secondaryArchSuffix
olm_devel$secondaryArchSuffix
lmdbxx$secondaryArchSuffix
nlohmann_json$secondaryArchSuffix
spdlog_devel$secondaryArchSuffix
tweeny$secondaryArchSuffix
openssl_devel$secondaryArchSuffix
cmark_devel$secondaryArchSuffix
devel:libQt5Core$secondaryArchSuffix
devel:libQt5Gui$secondaryArchSuffix
devel:libQt5Widgets$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:g++$secondaryArchSuffix
cmd:cmake
cmd:lrelease$secondaryArchSuffix >= 5
cmd:make
"
BUILD()
{
mkdir -p build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$appsDir/Nheko \
-DCMAKE_EXE_LINKER_FLAGS="-lnetwork -lz"
make $jobArgs
}
INSTALL()
{
cd build
make install
local APP_SIGNATURE="application/x-vnd.nheko"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3 | cut -d~ -f1`"
local INTERNAL="4"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@INTERNAL@|$INTERNAL|" \
-e "s|@LONG_INFO@|$SUMMARY|" \
$portDir/additional-files/nheko.rdef.in > nheko.rdef
mv $appsDir/Nheko/bin/nheko $appsDir/nheko
rm -rf $appsDir/Nheko
mv $appsDir/nheko $appsDir/Nheko
addResourcesToBinaries nheko.rdef $appsDir/Nheko
addAppDeskbarSymlink $appsDir/Nheko
}

View File

@ -0,0 +1,174 @@
From 05cb74c094d285a568103a413c0d3e4ca95b8d21 Mon Sep 17 00:00:00 2001
From: Pascal Abresch <nep@packageloss.eu>
Date: Sat, 24 Apr 2021 07:46:12 +0200
Subject: HACK: disable rounding effect for avatars Having this enabled
produces empty avatars for some reason
diff --git a/resources/qml/Avatar.qml b/resources/qml/Avatar.qml
index 108bb76..75971a3 100644
--- a/resources/qml/Avatar.qml
+++ b/resources/qml/Avatar.qml
@@ -60,18 +60,6 @@ Rectangle {
}
- layer.effect: OpacityMask {
- cached: true
-
- maskSource: Rectangle {
- anchors.fill: parent
- width: avatar.width
- height: avatar.height
- radius: Settings.avatarCircles ? height / 2 : 3
- }
-
- }
-
}
Rectangle {
--
2.30.0
From 0aa02aa568eaa2ff46e52192d25f7149c9430fee Mon Sep 17 00:00:00 2001
From: Pascal Abresch <nep@packageloss.eu>
Date: Sat, 24 Apr 2021 07:51:50 +0200
Subject: Haiku: decrease single pane threshold
diff --git a/src/Splitter.cpp b/src/Splitter.cpp
index 15e3f5c..aaf67e1 100644
--- a/src/Splitter.cpp
+++ b/src/Splitter.cpp
@@ -160,7 +160,7 @@ splitter::calculateSidebarSizes(const QFont &f)
sz.small = std::ceil(3.8 * height);
sz.normal = std::ceil(16 * height);
sz.groups = std::ceil(3 * height);
- sz.collapsePoint = 2 * sz.normal;
+ sz.collapsePoint = 1.4 * sz.normal;
return sz;
}
--
2.30.0
From 919142c89739e63a18b286d14bba4deb7fb07e4a Mon Sep 17 00:00:00 2001
From: Pascal Abresch <nep@packageloss.eu>
Date: Sat, 24 Apr 2021 07:40:14 +0200
Subject: Haiku: disable singleapplication
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 468480d..2d8bcb3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -461,9 +461,11 @@ else()
add_feature_info(voip OFF "GStreamer could not be found on your system. As a consequence call support has been disabled. If you don't want that, make sure gstreamer-sdp-1.0>=1.18 gstreamer-webrtc-1.0>=1.18 can be found via pkgconfig.")
endif()
+if(NOT HAIKU)
# single instance functionality
set(QAPPLICATION_CLASS QApplication CACHE STRING "Inheritance class for SingleApplication")
add_subdirectory(third_party/SingleApplication-3.2.0-dc8042b/)
+endif()
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
@@ -633,8 +635,12 @@ target_link_libraries(nheko PRIVATE
qt5keychain
nlohmann_json::nlohmann_json
lmdbxx::lmdbxx
- liblmdb::lmdb
+ liblmdb::lmdb)
+
+if (NOT HAIKU)
+target_link_libraries(nheko PRIVATE
SingleApplication::SingleApplication)
+endif()
if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0")
target_precompile_headers(nheko
diff --git a/src/main.cpp b/src/main.cpp
index fe1a9ee..446e165 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -29,7 +29,10 @@
#include "MatrixClient.h"
#include "Utils.h"
#include "config/nheko.h"
+
+#if !defined(Q_OS_HAIKU)
#include "singleapplication.h"
+#endif
#if defined(Q_OS_MAC)
#include "emoji/MacHelper.h"
@@ -136,6 +139,7 @@ main(int argc, char *argv[])
}
}
+#if !defined(Q_OS_HAIKU)
SingleApplication app(argc,
argv,
true,
@@ -145,12 +149,17 @@ main(int argc, char *argv[])
SingleApplication::Mode::SecondaryNotification,
100,
userdata);
+#else
+ QApplication app(argc, argv, true);
+#endif
+#if !defined(Q_OS_HAIKU)
if (app.isSecondary()) {
// open uri in main instance
app.sendMessage(matrixUri.toUtf8());
return 0;
}
+#endif
QCommandLineParser parser;
parser.addHelpOption();
@@ -170,9 +179,11 @@ main(int argc, char *argv[])
QCoreApplication::tr("profile name"));
parser.addOption(configName);
+#if !defined(Q_OS_HAIKU)
parser.process(app);
app.setWindowIcon(QIcon::fromTheme("nheko", QIcon{":/logos/nheko.png"}));
+#endif
http::init();
@@ -236,6 +247,8 @@ main(int argc, char *argv[])
nhlog::net()->debug("bye");
}
});
+
+#if !defined(Q_OS_HAIKU)
QObject::connect(&app, &SingleApplication::instanceStarted, &w, [&w]() {
w.show();
w.raise();
@@ -247,9 +260,14 @@ main(int argc, char *argv[])
&SingleApplication::receivedMessage,
ChatPage::instance(),
[&](quint32, QByteArray message) { ChatPage::instance()->handleMatrixUri(message); });
-
+#endif
QMetaObject::Connection uriConnection;
+
+#if !defined(Q_OS_HAIKU)
if (app.isPrimary() && !matrixUri.isEmpty()) {
+#else
+ if (!matrixUri.isEmpty()) {
+#elseif
uriConnection = QObject::connect(ChatPage::instance(),
&ChatPage::contentLoaded,
ChatPage::instance(),
--
2.30.0