From 42ed6bfd1281823abe06a0a8a884721998a6b11a Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> Date: Sun, 24 Feb 2019 18:10:54 +1000 Subject: [PATCH] Clementine: add recipe for 1.3.1~git version --- .../additional-files/clementine.rdef.in | 84 +++++ .../clementine/clementine-1.3.1~git.recipe | 166 ++++++++++ .../patches/clementine-1.3.1~git.patchset | 301 ++++++++++++++++++ 3 files changed, 551 insertions(+) create mode 100644 media-sound/clementine/additional-files/clementine.rdef.in create mode 100644 media-sound/clementine/clementine-1.3.1~git.recipe create mode 100644 media-sound/clementine/patches/clementine-1.3.1~git.patchset diff --git a/media-sound/clementine/additional-files/clementine.rdef.in b/media-sound/clementine/additional-files/clementine.rdef.in new file mode 100644 index 000000000..8a52a5cac --- /dev/null +++ b/media-sound/clementine/additional-files/clementine.rdef.in @@ -0,0 +1,84 @@ + +resource app_flags B_MULTIPLE_LAUNCH; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + + variety = B_APPV_FINAL, + internal = 0, + + short_info = "Clementine", + long_info = "@LONG_INFO@" +}; + +resource app_signature "@APP_SIGNATURE@"; + +resource file_types message { + "types" = "application/x-asf", + "types" = "audio" +}; + +resource vector_icon { + $"6E6369660C03FD924703FED9BD03FDA86403FDA86D03FEBD8F03FD924803FD94" + $"4A03FD934903FD944C03FD954D050004007B0A0209B6B5B453B5A0B6C6B8F3B3" + $"D8BBC7B7A1BA8CB61634B767B95BB6EFBA2AB72DBA30B783BB38B93FBADCB848" + $"B9FCB90EB7AC2DB8D3B8A0B891B8F8BA87BA52B9A2B986B90DBA88B613BA94B7" + $"90BA90B768BAC6B9F1BBB3B8E0BABFB8ADBC47B5EABC1DB743BC1DB576B98202" + $"10B4E4B5C0B438B907B566B528B6B5B453B60FB4BBB5A0B6C6B5EABC1DB576B9" + $"82B5EABC1DB5F7BC55B5F7BC55B64ABDC0B749C07BB6BEBF23B755C090B775C0" + $"D0B769C0BBB87EC2FBBC4AC604BA19C4F1BC5FC60EBC9FC631BC8BC625BD7AC6" + $"9FBF4BC739BE5EC6F7BF92C74BC025C768BFDBC759C07DC775C188C79EC12EC7" + $"90C1E1C7ACC294C7C0C23BC7B7C5A4C7C7CBA3C624C8F3C7D7CAF3C715C930C8" + $"9BCA1EC7E9C4A6C918BBA5C6F4BFC1C942B8B6C581B5BABF9CB6C8C2A3B483BC" + $"7E0207B364BE5DB413C1B8B2E1BB7AB4E4B5C0B2CFB810B438B907B5BABF9CB4" + $"83BC7EB6C8C2A3BBA5C6F4B8B6C581BFC1C942C930C89BC4A6C918C75ACA0BC2" + $"B9CA76C4F5CA4BBF00CA7AB81AC764BB15C9C0B56DC5210233B95BB6EFBA30B7" + $"83BA2AB72DBBC7B7A134B767BCA6B8CCBE56BB27BD7DB9F9BDDEBB15BCF2BAF4" + $"BD68BB04BD18BB42BD64BBDDBD3EBB8FBCF0BC18BC0738BC7DBC54BCADBCCABD" + $"F7BD3ABD52BD02BD86BD8ABCA63CBD17BDD9BC9DBE70BC8FBEFDBC95BEB5BD19" + $"BF11BE2CBF3CBDA3BF27BE04BFA4BDB4C075BDDBC00DBE7CC109C061C13FBF6E" + $"C140C095C0DBC0FFC013C0CAC077C136C0ADC1A4C1DEC16CC145C20AC157C2D9" + $"C047C271C0CFC366C059C47FC06BC3F1C066C479C02AC46BBF69C46FBFA9C592" + $"BFE3C7D6C0F4C6BAC05FC7EFC1A0C825C2F3C80AC248C7ACC271C6B6C171C732" + $"C1F1C6C3C26152C441C6D5C352C67DC375C591C1E2C60AC2AAC4E2C2CDC55CC5" + $"07C552C3FEC4D8C46EC3C4C348C452C3D9C37BC43BC3B4C62FC39AC539C328C5" + $"80C1FCC435C297C4D6C1C5C56CC294C7C0C18DC6D5C23BC7B7C188C79EC1E1C7" + $"ACC174C67FC0BEC45BC138C563C021C544C025C768BFD8C654BFDBC759BF4BC7" + $"39BF92C74BBF5FC63DBF34C428BFD8C501BDCFC382BC9FC631BD1AC534BC8BC6" + $"25BC4AC604BC5FC60EBC97C530BD28C385BCE0C45ABC414ABA75C434BB5BC3F7" + $"BB03C3A5BC17C282BB8FC314BB16C211B8EDC233B9FCC229B981C1D1BAA1C105" + $"BA12C16CB9A4C076B775C0D0B886C0AAB769C0BBB749C07BB755C090B841C034" + $"BA1FBF7EB933BFDFB92EBF3DB74DBEB4B83EBEF9B847BE9DB9E2BD90B940BE62" + $"B8DCBC7FB5F7BC55B754BC86B5F7BC55B5EABC1DB5EABC1DB743BC1DB9F1BBB3" + $"B8ADBC47B8E0BABFB613BA94B768BAC6B790BA90BA87BA52B90DBA88B9A2B986" + $"B7AC2DB891B8F8B8D3B8A0BB38B93FB9FCB90EBADCB8480210BCF2BAF4BD18BB" + $"42BD68BB04BE56BB27BDDEBB15BF15BC1EC0DABDD2BFB6BD45C202BE6BC46BBF" + $"69C338BEE8C46FBFA9C47FC06BC479C02AC3F1C066C2D9C047C366C059C271C0" + $"CFC1A4C1DEC20AC157C16CC145C0FFC013C136C0ADC0CAC077C061C13FC095C0" + $"DBBF6EC140BDB4C075BE7CC109BDDBC00DBE2CBF3CBE04BFA4BDA3BF27BC8FBE" + $"FDBD19BF11BC95BEB5BCA63CBC9DBE70BD17BDD9BDF7BD3ABD86BD8ABD52BD02" + $"BC0738BCADBCCABC7DBC54BD64BBDDBCF0BC18BD3EBB8F0205B5F7BC55B64ABD" + $"C0B754BC86B9E2BD90B8DCBC7FB940BE62B74DBEB4B847BE9DB83EBEF9BA1FBF" + $"7EB92EBF3DB933BFDFB749C07BB841C034B6BEBF230207B775C0D0B87EC2FBB8" + $"86C0AABAA1C105B9A4C076BA12C16CB8EDC233B981C1D1B9FCC229BC17C282BB" + $"16C211BB8FC314BA75C434BB03C3A5BB5BC3F7BD28C385BC414ABCE0C45ABC4A" + $"C604BC97C530BA19C4F1020DC7D6C0F4C7EFC1A0C983C1D75FC4ACCB54C2D65F" + $"C4AC5FC5505FC550CBFDC585CBA3C624CBC2C5EEC8F3C7D7C294C7C0C5A4C7C7" + $"C18DC6D5C1FCC435C1C5C56CC297C4D6C3B4C62FC328C580C39AC539C3C4C348" + $"C37BC43BC452C3D9C55CC507C4D8C46EC552C3FEC591C1E2C4E2C2CDC60AC2AA" + $"52C441C67DC375C6D5C352C6B6C171C6C3C261C732C1F1C825C2F3C7ACC271C8" + $"0AC2480203BC9FC631BD7AC69FBD1AC534BF34C428BDCFC382BFD8C501BF4BC7" + $"39BF5FC63DBE5EC6F70203C025C768C07DC775BFD8C654C0BEC45BC021C544C1" + $"38C563C188C79EC174C67FC12EC7900C0A0B06020304070001123F8723000000" + $"0000003F9AF244E7C245FCDF01178422040A0A06020304070001123FA5CE0000" + $"000000003FCE6142E53D3FEEDF01178322040A000100023F8816000000000000" + $"3FAC5543C4F841FB240A010101023F88160000000000003FAC5543C4F841FB24" + $"0A020102023F88160000000000003FAC5543C4F841FB240A030103023F881600" + $"00000000003FAC5543C4F841FB240A040104023F88160000000000003FAC5543" + $"C4F841FB240A050105023F88160000000000003FAC5543C4F841FB240A060106" + $"023F88160000000000003FAC5543C4F841FB240A070107023F88160000000000" + $"003FAC5543C4F841FB240A080108023F88160000000000003FAC5543C4F841FB" + $"240A090109023F88160000000000003FAC5543C4F841FB24" +}; diff --git a/media-sound/clementine/clementine-1.3.1~git.recipe b/media-sound/clementine/clementine-1.3.1~git.recipe new file mode 100644 index 000000000..498884ab5 --- /dev/null +++ b/media-sound/clementine/clementine-1.3.1~git.recipe @@ -0,0 +1,166 @@ +SUMMARY="Modern music player and library organizer based on Amarok 1.4 and Qt5" +DESCRIPTION="Clementine Music Player is a multiplatform music player. It is inspired by Amarok 1.4, \ +focusing on a fast and easy-to-use interface for searching and playing your music. + +Now with Podcast support including integration and synchronization with gpodder.net. \ +Music from Soundcloud and jazzradio.com is available in the Internet tab in the sidebar, \ +as well as any songs you've uploaded to Google Drive. \ +Clementine Music Player will also now show moodbars for the music you play from your local disc. + +Clementine Music Player Features: + +Search and play your local music library. +Listen to internet radio from Spotify, Grooveshark, Last.fm, SomaFM, Magnatune, Jamendo, SKY.fm, Digitally Imported, JAZZRADIO.com, Soundcloud, and Icecast. +Search and play songs you've uploaded to Google Drive. +Create smart playlists and dynamic playlists. +Tabbed playlists, import and export M3U, XSPF, PLS and ASX. +CUE sheet support. +Play audio CDs. +Visualisations from projectM. +Lyrics and artist biographies and photos. +Transcode music into MP3, Ogg Vorbis, Ogg Speex, FLAC or AAC. +Edit tags on MP3 and OGG files, organise your music. +Fetch missing tags from MusicBrainz. +Discover and download Podcasts. +Download missing album cover art from Last.fm and Amazon. +Cross-platform - works on Windows, Mac OS X and Linux. +Native desktop notifications on Linux (libnotify) and Mac OS X (Growl). +Remote control using a Wii Remote, MPRIS or the command-line. +Copy music to your iPod, iPhone, MTP or mass-storage USB player. +Queue manager." +HOMEPAGE="https://www.clementine-player.org/" +COPYRIGHT="2010-2019 David Sansome, John Maguire, Arnaud Bienner" +LICENSE="GNU GPL v3" +REVISION="1" +srcGitRev="36cc5b82f4daf5c2d4e93dc8072665e5a3ca622b" +SOURCE_URI="https://github.com/clementine-player/Clementine/archive/$srcGitRev.tar.gz" +CHECKSUM_SHA256="d7f4ee2564fc045dd446226cff02032ba18b9030ad00ba670e484bc9612e7434" +SOURCE_DIR="Clementine-$srcGitRev" +PATCHES="clementine-$portVersion.patchset" +ADDITIONAL_FILES="clementine.rdef.in" + +ARCHITECTURES="!x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + clementine$secondaryArchSuffix = $portVersion + app:Clementine$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libcdio$secondaryArchSuffix + lib:libchromaprint$secondaryArchSuffix + lib:libfftw3$secondaryArchSuffix + lib:libgio_2.0$secondaryArchSuffix + lib:libglib_2.0$secondaryArchSuffix + lib:libgmodule_2.0$secondaryArchSuffix + lib:libgobject_2.0$secondaryArchSuffix + lib:libgstapp_1.0$secondaryArchSuffix + lib:libgstaudio_1.0$secondaryArchSuffix + lib:libgstbase_1.0$secondaryArchSuffix + lib:libgstpbutils_1.0$secondaryArchSuffix + lib:libgstreamer_1.0$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libmtp$secondaryArchSuffix + lib:libprotobuf$secondaryArchSuffix + lib:libQt5Core$secondaryArchSuffix + lib:libQt5Gui$secondaryArchSuffix + lib:libQt5Widgets$secondaryArchSuffix + lib:libsqlite3$secondaryArchSuffix + lib:libtag$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + sparsehash$secondaryArchSuffix + devel:libboost_atomic$secondaryArchSuffix + devel:libboost_chrono$secondaryArchSuffix + devel:libboost_date_time$secondaryArchSuffix + devel:libboost_filesystem$secondaryArchSuffix + devel:libboost_locale$secondaryArchSuffix + devel:libboost_regex$secondaryArchSuffix + devel:libboost_system$secondaryArchSuffix + devel:libboost_thread$secondaryArchSuffix + devel:libcdio$secondaryArchSuffix >= 18 + devel:libchromaprint$secondaryArchSuffix + devel:libexecinfo$secondaryArchSuffix + devel:libfftw3$secondaryArchSuffix + devel:libgio_2.0$secondaryArchSuffix + devel:libgl$secondaryArchSuffix + devel:libglib_2.0$secondaryArchSuffix + devel:libglu$secondaryArchSuffix + devel:libgstapp_1.0$secondaryArchSuffix + devel:libgstaudio_1.0$secondaryArchSuffix + devel:libgstbadaudio_1.0$secondaryArchSuffix + devel:libgstbase_1.0$secondaryArchSuffix + devel:libgstreamer_1.0$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libintl$secondaryArchSuffix + devel:libmtp$secondaryArchSuffix + devel:libprotobuf$secondaryArchSuffix + devel:libQt5Core$secondaryArchSuffix + devel:libQt5Gui$secondaryArchSuffix + devel:libQt5Widgets$secondaryArchSuffix + devel:libsqlite3$secondaryArchSuffix + devel:libtag$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:gcc$secondaryArchSuffix + cmd:lrelease$secondaryArchSuffix >= 5 + cmd:make + cmd:orcc$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + " + +BUILD() +{ + mkdir -p build + cd build + cmake .. $cmakeDirArgs \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$appsDir/Clementine \ + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5DBus=OFF \ + -DCCACHE_EXECUTABLE=OFF \ + -DENABLE_BREAKPAD=OFF \ + -DENABLE_DEVICEKIT=OFF \ + -DENABLE_DROPBOX=OFF \ + -DENABLE_GIO=ON \ + -DENABLE_GOOGLE_DRIVE=OFF \ + -DENABLE_LIBGPOD=OFF \ + -DENABLE_LIBLASTFM=OFF \ + -DENABLE_SPOTIFY_BLOB=OFF \ + -DENABLE_UDISKS2=OFF \ + -DENABLE_VISUALISATIONS=OFF \ + -DENABLE_WIIMOTEDEV=OFF \ + -DUSE_SYSTEM_PROJECTM=OFF + make $jobArgs +} + +INSTALL() +{ + mkdir -p $appsDir/Clementine + cp build/clementine $appsDir/Clementine/Clementine + cp build/clementine-tagreader $appsDir/Clementine + + local APP_SIGNATURE="application/x-vnd.clementine" + 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 LONG_INFO="$SUMMARY" + sed \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + $portDir/additional-files/clementine.rdef.in > clementine.rdef + + addResourcesToBinaries clementine.rdef $appsDir/Clementine/Clementine + mimeset -f $appsDir/Clementine/Clementine + addAppDeskbarSymlink $appsDir/Clementine/Clementine +} diff --git a/media-sound/clementine/patches/clementine-1.3.1~git.patchset b/media-sound/clementine/patches/clementine-1.3.1~git.patchset new file mode 100644 index 000000000..dd3a432bb --- /dev/null +++ b/media-sound/clementine/patches/clementine-1.3.1~git.patchset @@ -0,0 +1,301 @@ +From 42e2e54e9cfc5dd3f2007256ff679278a97a1847 Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Sun, 24 Feb 2019 14:47:42 +1000 +Subject: Fix build for Haiku + + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index d635aee..e9a0268 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -904,6 +904,14 @@ optional_source(WIN32 + ${CMAKE_SOURCE_DIR}/3rdparty/tinysvcmdns + ) + ++# Platform specific - Haiku ++optional_source(HAIKU ++ SOURCES ++ widgets/osd_win.cpp ++ INCLUDE_DIRECTORIES ++ ${CMAKE_SOURCE_DIR}/3rdparty/tinysvcmdns ++) ++ + # Platform specific - X11 + optional_source(HAVE_X11 SOURCES widgets/osd_x11.cpp) + +@@ -1357,7 +1365,7 @@ if (WIN32) + ) + endif (WIN32) + +-if (UNIX AND NOT APPLE) ++if (UNIX AND NOT APPLE AND NOT HAIKU) + # Hack: the Gold linker pays attention to the order that libraries are + # specified on the link line. -lX11 and -ldl are provided earlier in the link + # command but they're actually used by libraries that appear after them, so +diff --git a/src/core/qxtglobalshortcutbackend.cpp b/src/core/qxtglobalshortcutbackend.cpp +index c04e41d..485a286 100644 +--- a/src/core/qxtglobalshortcutbackend.cpp ++++ b/src/core/qxtglobalshortcutbackend.cpp +@@ -19,7 +19,9 @@ + + #include "globalshortcuts.h" + #include "qxtglobalshortcutbackend.h" ++#ifndef Q_OS_HAIKU + #include "qxtglobalshortcut.h" ++#endif + #include "core/logging.h" + + #include +@@ -29,24 +31,29 @@ QxtGlobalShortcutBackend::QxtGlobalShortcutBackend(GlobalShortcuts* parent) + : GlobalShortcutBackend(parent) {} + + bool QxtGlobalShortcutBackend::DoRegister() { ++#ifndef Q_OS_HAIKU + qLog(Debug) << "registering"; + for (const GlobalShortcuts::Shortcut& shortcut : + manager_->shortcuts().values()) { + AddShortcut(shortcut.action); + } +- ++#endif + return true; + } + + void QxtGlobalShortcutBackend::AddShortcut(QAction* action) { ++#ifndef Q_OS_HAIKU + if (action->shortcut().isEmpty()) return; + QxtGlobalShortcut* shortcut = new QxtGlobalShortcut(action->shortcut(), this); + connect(shortcut, SIGNAL(activated()), action, SLOT(trigger())); + shortcuts_ << shortcut; ++#endif + } + + void QxtGlobalShortcutBackend::DoUnregister() { ++#ifndef Q_OS_HAIKU + qLog(Debug) << "unregistering"; + qDeleteAll(shortcuts_); + shortcuts_.clear(); ++#endif + } +diff --git a/src/main.cpp b/src/main.cpp +index 0ee7a8f..88e6f7c 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -488,5 +488,9 @@ int main(int argc, char* argv[]) { + } + #endif + ++#ifdef Q_OS_HAIKU ++ kill(::getpid(), SIGKILL); ++#endif ++ + return ret; + } +-- +2.19.1 + + +From 207f5027997897cda2b0c1eba92e71f2c9899a87 Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Sun, 24 Feb 2019 15:11:18 +1000 +Subject: Disable qxt and x11 + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 657efdb..abda86b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -46,7 +46,7 @@ find_package(PkgConfig REQUIRED) + find_package(Protobuf REQUIRED) + find_package(FFTW3) + find_package(ALSA) +-if (NOT APPLE) ++if (NOT APPLE AND NOT HAIKU) + find_package(X11) + endif() + if(X11_FOUND) +@@ -395,6 +395,7 @@ if(NOT QTIOCOMPRESSOR_INCLUDE_DIRS OR NOT QTIOCOMPRESSOR_LIBRARIES) + set(QTIOCOMPRESSOR_LIBRARIES qtiocompressor) + endif(NOT QTIOCOMPRESSOR_INCLUDE_DIRS OR NOT QTIOCOMPRESSOR_LIBRARIES) + ++if (NOT HAIKU) + # When/if upstream accepts our or reimplement our patches then these options can be + # used to link to system installed qxt instead. + option(USE_SYSTEM_QXT "Don't set this option unless your system Qxt library has been compiled with the Clementine patches in 3rdparty" OFF) +@@ -412,6 +413,7 @@ else (USE_SYSTEM_QXT) + add_subdirectory(3rdparty/qxt) + endif (NOT APPLE) + endif (USE_SYSTEM_QXT) ++endif (NOT HAIKU) + + # Use system gmock if it's available + # We need to look for both gmock and gtest +-- +2.19.1 + + +From edd7d6fdc02d45a998cafd84a8a0927df1e6d47a Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Sun, 24 Feb 2019 16:01:04 +1000 +Subject: disable backtrace_symbols for haiku + + +diff --git a/ext/libclementine-common/core/logging.cpp b/ext/libclementine-common/core/logging.cpp +index 9aa1319..e148298 100644 +--- a/ext/libclementine-common/core/logging.cpp ++++ b/ext/libclementine-common/core/logging.cpp +@@ -254,7 +254,7 @@ QString DemangleSymbol(const QString& symbol) { + } + + void DumpStackTrace() { +-#ifdef Q_OS_UNIX ++#if defined(Q_OS_UNIX) && !defined(Q_OS_HAIKU) + void* callstack[128]; + int callstack_size = + backtrace(reinterpret_cast(&callstack), sizeof(callstack)); +-- +2.19.1 + + +From 137ec8ac22ca7a7a6c5797fddd4c8a9b36bba95f Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Sun, 24 Feb 2019 16:36:40 +1000 +Subject: Fix settings paths + + +diff --git a/src/core/utilities.cpp b/src/core/utilities.cpp +index fe106e2..58a80b9 100644 +--- a/src/core/utilities.cpp ++++ b/src/core/utilities.cpp +@@ -346,6 +346,9 @@ QString GetConfigPath(ConfigPath config) { + #ifdef Q_OS_DARWIN + return mac::GetApplicationSupportPath() + "/" + + QCoreApplication::organizationName(); ++#elif defined(Q_OS_HAIKU) ++ return QString("%1/config/settings/%2") ++ .arg(QDir::homePath(), QCoreApplication::organizationName()); + #else + return QString("%1/.config/%2") + .arg(QDir::homePath(), QCoreApplication::organizationName()); +@@ -356,7 +359,7 @@ QString GetConfigPath(ConfigPath config) { + if (Application::kIsPortable) { + return GetConfigPath(Path_Root) + "/cache"; + } +-#if defined(Q_OS_UNIX) && !defined(Q_OS_DARWIN) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_DARWIN) && !defined(Q_OS_HAIKU) + char* xdg = getenv("XDG_CACHE_HOME"); + if (!xdg || !*xdg) { + return QString("%1/.cache/%2") +-- +2.19.1 + + +From a5588095c9fc11c4d67606c9817bcaaad1aee6e3 Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Sun, 24 Feb 2019 17:39:21 +1000 +Subject: Tune default settings for Haiku + + +diff --git a/src/library/librarysettingspage.cpp b/src/library/librarysettingspage.cpp +index afb73df..763fb11 100644 +--- a/src/library/librarysettingspage.cpp ++++ b/src/library/librarysettingspage.cpp +@@ -132,7 +132,7 @@ void LibrarySettingsPage::Load() { + + s.beginGroup(LibraryWatcher::kSettingsGroup); + ui_->startup_scan->setChecked(s.value("startup_scan", true).toBool()); +- ui_->monitor->setChecked(s.value("monitor", true).toBool()); ++ ui_->monitor->setChecked(s.value("monitor", false).toBool()); + + QStringList filters = + s.value("cover_art_patterns", QStringList() << "front" +diff --git a/src/ui/appearancesettingspage.cpp b/src/ui/appearancesettingspage.cpp +index 8cffb45..befbbca 100644 +--- a/src/ui/appearancesettingspage.cpp ++++ b/src/ui/appearancesettingspage.cpp +@@ -108,7 +108,11 @@ void AppearanceSettingsPage::Load() { + current_background_color_ = original_background_color_; + + InitColorSelectorsColors(); ++#ifdef Q_OS_HAIKU ++ ui_->b_use_sys_icons->setChecked(s.value("b_use_sys_icons", true).toBool()); ++#else + ui_->b_use_sys_icons->setChecked(s.value("b_use_sys_icons", false).toBool()); ++#endif + ui_->b_hide_filter_toolbar->setChecked(s.value("b_hide_filter_toolbar",false).toBool()); + s.endGroup(); + +diff --git a/src/ui/iconloader.cpp b/src/ui/iconloader.cpp +index f691504..857af19 100644 +--- a/src/ui/iconloader.cpp ++++ b/src/ui/iconloader.cpp +@@ -38,7 +38,11 @@ void IconLoader::Init() { + icon_sub_path_ << "/icons" << "/providers" << "/last.fm" << ""; + QSettings settings; + settings.beginGroup(Appearance::kSettingsGroup); ++#ifdef Q_OS_HAIKU ++ use_sys_icons_ = settings.value("b_use_sys_icons", true).toBool(); ++#else + use_sys_icons_ = settings.value("b_use_sys_icons", false).toBool(); ++#endif + } + + QIcon IconLoader::Load(const QString& name, const IconType& icontype) { +diff --git a/src/ui/notificationssettingspage.cpp b/src/ui/notificationssettingspage.cpp +index a00eede..27d63b9 100644 +--- a/src/ui/notificationssettingspage.cpp ++++ b/src/ui/notificationssettingspage.cpp +@@ -98,7 +98,9 @@ NotificationsSettingsPage::NotificationsSettingsPage(SettingsDialog* dialog) + if (!OSD::SupportsNativeNotifications()) + ui_->notifications_native->setEnabled(false); + if (!OSD::SupportsTrayPopups()) ui_->notifications_tray->setEnabled(false); +- ++#ifdef Q_OS_HAIKU ++ ui_->notifications_pretty->setEnabled(false); ++#endif + connect(ui_->notifications_pretty, SIGNAL(toggled(bool)), + SLOT(UpdatePopupVisible())); + +@@ -126,7 +128,11 @@ void NotificationsSettingsPage::Load() { + + s.beginGroup(OSD::kSettingsGroup); + OSD::Behaviour osd_behaviour = ++#ifdef Q_OS_HAIKU ++ OSD::Behaviour(s.value("Behaviour", OSD::TrayPopup).toInt()); ++#else + OSD::Behaviour(s.value("Behaviour", OSD::Native).toInt()); ++#endif + switch (osd_behaviour) { + case OSD::Native: + if (OSD::SupportsNativeNotifications()) { +@@ -171,6 +177,11 @@ void NotificationsSettingsPage::Load() { + ui_->notifications_pretty->isChecked()); + #endif + ++#ifdef Q_OS_HAIKU ++ ui_->notifications_options->setEnabled( ++ ui_->notifications_tray->isChecked()); ++#endif ++ + // Pretty OSD + pretty_popup_->ReloadSettings(); + ui_->notifications_opacity->setValue(pretty_popup_->background_opacity() * +diff --git a/src/widgets/osd.cpp b/src/widgets/osd.cpp +index 77178a1..f5ec09c 100644 +--- a/src/widgets/osd.cpp ++++ b/src/widgets/osd.cpp +@@ -64,7 +64,11 @@ OSD::~OSD() { delete pretty_popup_; } + void OSD::ReloadSettings() { + QSettings s; + s.beginGroup(kSettingsGroup); ++#ifdef Q_OS_HAIKU ++ behaviour_ = OSD::Behaviour(s.value("Behaviour", TrayPopup).toInt()); ++#else + behaviour_ = OSD::Behaviour(s.value("Behaviour", Native).toInt()); ++#endif + timeout_msec_ = s.value("Timeout", 5000).toInt(); + show_on_volume_change_ = s.value("ShowOnVolumeChange", false).toBool(); + show_art_ = s.value("ShowArt", true).toBool(); +-- +2.19.1 +