Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package tail-tray for openSUSE:Factory 
checked in at 2025-11-08 16:36:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tail-tray (Old)
 and      /work/SRC/openSUSE:Factory/.tail-tray.new.1980 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "tail-tray"

Sat Nov  8 16:36:30 2025 rev:20 rq:1316468 version:0.2.27

Changes:
--------
--- /work/SRC/openSUSE:Factory/tail-tray/tail-tray.changes      2025-11-04 
18:41:21.886920719 +0100
+++ /work/SRC/openSUSE:Factory/.tail-tray.new.1980/tail-tray.changes    
2025-11-08 16:36:48.185918169 +0100
@@ -1,0 +2,13 @@
+Fri Nov 07 15:48:29 UTC 2025 - Johannes Kastl 
<[email protected]>
+
+- Update to version 0.2.27:
+  This release finalizes the tail net notifications for when a new
+  device is added and when a device is removed. It als contains
+  some more minor fixes in general.
+  * Bump version to 0.2.27
+  * Minor correctness fixes
+  * KDE Notification integrations for issue #90
+  * And more CMake
+  * Minor fix for CMake file
+
+-------------------------------------------------------------------

Old:
----
  tail-tray-0.2.26.obscpio

New:
----
  tail-tray-0.2.27.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ tail-tray.spec ++++++
--- /var/tmp/diff_new_pack.cXUCAn/_old  2025-11-08 16:36:48.981951496 +0100
+++ /var/tmp/diff_new_pack.cXUCAn/_new  2025-11-08 16:36:48.981951496 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           tail-tray
-Version:        0.2.26
+Version:        0.2.27
 Release:        0
 Summary:        Tailscale tray menu and UI for the KDE Plasma Desktop
 License:        GPL-3.0-only

++++++ _service ++++++
--- /var/tmp/diff_new_pack.cXUCAn/_old  2025-11-08 16:36:49.049954344 +0100
+++ /var/tmp/diff_new_pack.cXUCAn/_new  2025-11-08 16:36:49.053954511 +0100
@@ -2,8 +2,8 @@
   <service name="obs_scm" mode="manual">
     <param name="url">https://github.com/SneWs/tail-tray</param>
     <param name="scm">git</param>
-    <param name="revision">refs/tags/v0.2.26</param>
-    <param name="match-tag">v0.2.26</param>
+    <param name="revision">refs/tags/v0.2.27</param>
+    <param name="match-tag">v0.2.27</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.cXUCAn/_old  2025-11-08 16:36:49.093956186 +0100
+++ /var/tmp/diff_new_pack.cXUCAn/_new  2025-11-08 16:36:49.101956521 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/SneWs/tail-tray</param>
-              <param 
name="changesrevision">767e2ab02dc1ed0b2e306c577daa6d235323b4bd</param></service></servicedata>
+              <param 
name="changesrevision">451ec3d969ca76eb473ebcc6e82e413b0ae8f712</param></service></servicedata>
 (No newline at EOF)
 

++++++ tail-tray-0.2.26.obscpio -> tail-tray-0.2.27.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tail-tray-0.2.26/.vscode/settings.json 
new/tail-tray-0.2.27/.vscode/settings.json
--- old/tail-tray-0.2.26/.vscode/settings.json  2025-11-03 07:21:00.000000000 
+0100
+++ new/tail-tray-0.2.27/.vscode/settings.json  2025-11-07 15:34:16.000000000 
+0100
@@ -3,6 +3,11 @@
         "*.nginx": "NGINX",
         "filesystem": "cpp",
         "xstring": "cpp",
-        "qjsonobject": "cpp"
-    }
+        "qjsonobject": "cpp",
+        "system_error": "cpp"
+    },
+    "cmake.configureArgs": [
+        "-DKNOTIFICATIONS_ENABLED=ON",
+        "-DDAVFS_ENABLED=OFF"
+    ]
 }
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tail-tray-0.2.26/CMakeLists.txt 
new/tail-tray-0.2.27/CMakeLists.txt
--- old/tail-tray-0.2.26/CMakeLists.txt 2025-11-03 07:21:00.000000000 +0100
+++ new/tail-tray-0.2.27/CMakeLists.txt 2025-11-07 15:34:16.000000000 +0100
@@ -1,6 +1,6 @@
 cmake_minimum_required(VERSION 3.21)
 
-project(tail-tray VERSION 0.2.26 LANGUAGES CXX)
+project(tail-tray VERSION 0.2.27 LANGUAGES CXX)
 
 set(CMAKE_AUTOUIC ON)
 set(CMAKE_AUTOMOC ON)
@@ -32,11 +32,11 @@
 find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Network 
LinguistTools)
 
 option(BUILD_TESTS "Build tests" ON)
+option(KNOTIFICATIONS_ENABLED "Enable KNotifications" OFF)
 
 if (UNIX AND NOT APPLE)
-    # Use KNotifications
-    option(KNOTIFICATIONS_ENABLED "Enable KNotifications" OFF)
     if (KNOTIFICATIONS_ENABLED)
+        # Use KNotifications
         message("KNotifications has been enabled! This requires Plasma 6")
 
         find_package(ECM REQUIRED NO_MODULE)
@@ -49,7 +49,7 @@
     else ()
         message("KNotifications has not been enabled!")
     endif (KNOTIFICATIONS_ENABLED)
-endif (!WIN32)
+endif (UNIX AND NOT APPLE)
 
 set(PROJECT_SOURCES
     src/main.cpp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tail-tray-0.2.26/debian/changelog 
new/tail-tray-0.2.27/debian/changelog
--- old/tail-tray-0.2.26/debian/changelog       2025-11-03 07:21:00.000000000 
+0100
+++ new/tail-tray-0.2.27/debian/changelog       2025-11-07 15:34:16.000000000 
+0100
@@ -1,5 +1,5 @@
-tail-tray (0.2.26) UNRELEASED; urgency=medium
+tail-tray (0.2.27) UNRELEASED; urgency=medium
 
   * New upstream release.
 
- -- Marcus Grenängen <[email protected]>  Mon, 3 Nov 2025 07:20:00 +0100
+ -- Marcus Grenängen <[email protected]>  Mon, 7 Nov 2025 15:29:00 +0100
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tail-tray-0.2.26/src/MainWindow.cpp 
new/tail-tray-0.2.27/src/MainWindow.cpp
--- old/tail-tray-0.2.26/src/MainWindow.cpp     2025-11-03 07:21:00.000000000 
+0100
+++ new/tail-tray-0.2.27/src/MainWindow.cpp     2025-11-07 15:34:16.000000000 
+0100
@@ -396,15 +396,11 @@
 }
 
 void MainWindow::onNewPeerDiscovered(const TailDeviceInfo& peer) const {
-    pNotificationsManager->showNotification(tr("Tailnet Devices"),
-    tr("A new device have been discovered on your tailnet!\n\nDevice: %1 (%2)")
-        .arg(peer.getShortDnsName(), peer.os));
+    
pNotificationsManager->showNodeConnectedNotification(peer.getShortDnsName(), 
peer.tailscaleIPs.join(", "), peer.os);
 }
 
 void MainWindow::onPeerRemoved(const TailDeviceInfo& peer) const {
-    pNotificationsManager->showNotification(tr("Tailnet Devices"),
-    tr("A device have been removed from your tailnet!\n\nDevice: %1 (%2)")
-        .arg(peer.getShortDnsName(), peer.os));
+    
pNotificationsManager->showNodeDisconnectedNotification(peer.getShortDnsName(), 
peer.tailscaleIPs.join(", "), peer.os);
 }
 
 #if defined(DAVFS_ENABLED)
@@ -772,7 +768,9 @@
     }
 
     accountsTabUi->onTailStatusChanged(pTailStatus);
+#if defined(DAVFS_ENABLED)
     pTailDriveUiManager->stateChangedTo(eCurrentState, pTailStatus);
+#endif
 }
 
 bool MainWindow::shallowCheckForNetworkAvailable() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tail-tray-0.2.26/src/MainWindow.ui 
new/tail-tray-0.2.27/src/MainWindow.ui
--- old/tail-tray-0.2.26/src/MainWindow.ui      2025-11-03 07:21:00.000000000 
+0100
+++ new/tail-tray-0.2.27/src/MainWindow.ui      2025-11-07 15:34:16.000000000 
+0100
@@ -3,14 +3,14 @@
  <class>MainWindow</class>
  <widget class="QMainWindow" name="MainWindow">
   <property name="windowModality">
-   <enum>Qt::NonModal</enum>
+   <enum>Qt::WindowModality::NonModal</enum>
   </property>
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>588</width>
-    <height>710</height>
+    <height>729</height>
    </rect>
   </property>
   <property name="sizePolicy">
@@ -55,10 +55,10 @@
        </size>
       </property>
       <property name="tabPosition">
-       <enum>QTabWidget::North</enum>
+       <enum>QTabWidget::TabPosition::North</enum>
       </property>
       <property name="currentIndex">
-       <number>0</number>
+       <number>1</number>
       </property>
       <property name="iconSize">
        <size>
@@ -67,7 +67,7 @@
        </size>
       </property>
       <property name="elideMode">
-       <enum>Qt::ElideLeft</enum>
+       <enum>Qt::TextElideMode::ElideLeft</enum>
       </property>
       <property name="usesScrollButtons">
        <bool>false</bool>
@@ -127,10 +127,10 @@
               <item>
                <spacer name="horizontalSpacer">
                 <property name="orientation">
-                 <enum>Qt::Horizontal</enum>
+                 <enum>Qt::Orientation::Horizontal</enum>
                 </property>
                 <property name="sizeType">
-                 <enum>QSizePolicy::Expanding</enum>
+                 <enum>QSizePolicy::Policy::Expanding</enum>
                 </property>
                 <property name="sizeHint" stdset="0">
                  <size>
@@ -154,7 +154,7 @@
               <item>
                <spacer name="horizontalSpacer_11">
                 <property name="orientation">
-                 <enum>Qt::Horizontal</enum>
+                 <enum>Qt::Orientation::Horizontal</enum>
                 </property>
                 <property name="sizeHint" stdset="0">
                  <size>
@@ -198,7 +198,7 @@
               <item>
                <spacer name="horizontalSpacer_12">
                 <property name="orientation">
-                 <enum>Qt::Horizontal</enum>
+                 <enum>Qt::Orientation::Horizontal</enum>
                 </property>
                 <property name="sizeHint" stdset="0">
                  <size>
@@ -368,7 +368,7 @@
               <item>
                <spacer name="horizontalSpacer_7">
                 <property name="orientation">
-                 <enum>Qt::Horizontal</enum>
+                 <enum>Qt::Orientation::Horizontal</enum>
                 </property>
                 <property name="sizeHint" stdset="0">
                  <size>
@@ -407,7 +407,7 @@
               <item>
                <spacer name="horizontalSpacer_8">
                 <property name="orientation">
-                 <enum>Qt::Horizontal</enum>
+                 <enum>Qt::Orientation::Horizontal</enum>
                 </property>
                 <property name="sizeHint" stdset="0">
                  <size>
@@ -470,7 +470,7 @@
               <item>
                <spacer name="horizontalSpacer_9">
                 <property name="orientation">
-                 <enum>Qt::Horizontal</enum>
+                 <enum>Qt::Orientation::Horizontal</enum>
                 </property>
                 <property name="sizeHint" stdset="0">
                  <size>
@@ -496,7 +496,7 @@
               <item>
                <spacer name="horizontalSpacer_10">
                 <property name="orientation">
-                 <enum>Qt::Horizontal</enum>
+                 <enum>Qt::Orientation::Horizontal</enum>
                 </property>
                 <property name="sizeHint" stdset="0">
                  <size>
@@ -511,7 +511,7 @@
             <item>
              <spacer name="verticalSpacer_4">
               <property name="orientation">
-               <enum>Qt::Vertical</enum>
+               <enum>Qt::Orientation::Vertical</enum>
               </property>
               <property name="sizeHint" stdset="0">
                <size>
@@ -538,7 +538,7 @@
         <item>
          <layout class="QHBoxLayout" name="horizontalLayout_2">
           <property name="sizeConstraint">
-           <enum>QLayout::SetNoConstraint</enum>
+           <enum>QLayout::SizeConstraint::SetNoConstraint</enum>
           </property>
           <item>
            <layout class="QVBoxLayout" name="verticalLayout_3">
@@ -571,7 +571,7 @@
                <string>General</string>
               </property>
               <property name="textFormat">
-               <enum>Qt::PlainText</enum>
+               <enum>Qt::TextFormat::PlainText</enum>
               </property>
              </widget>
             </item>
@@ -580,7 +580,7 @@
           <item>
            <widget class="QWidget" name="generalGroup" native="true">
             <property name="sizePolicy">
-             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
               <horstretch>0</horstretch>
               <verstretch>1</verstretch>
              </sizepolicy>
@@ -615,41 +615,76 @@
               </widget>
              </item>
              <item>
-              <layout class="QHBoxLayout" name="horizontalLayout">
-               <item>
-                <widget class="QCheckBox" name="chkUseTailscaleDns">
-                 <property name="text">
-                  <string>Use Tailscale DNS settings</string>
-                 </property>
-                 <property name="checked">
-                  <bool>true</bool>
-                 </property>
-                </widget>
-               </item>
-               <item>
-                <spacer name="horizontalSpacer_5">
-                 <property name="orientation">
-                  <enum>Qt::Horizontal</enum>
-                 </property>
-                 <property name="sizeHint" stdset="0">
-                  <size>
-                   <width>40</width>
-                   <height>20</height>
-                  </size>
-                 </property>
-                </spacer>
-               </item>
-               <item>
-                <widget class="QPushButton" name="btnTailscaleDnsSettings">
-                 <property name="enabled">
-                  <bool>true</bool>
-                 </property>
-                 <property name="text">
-                  <string>Manage...</string>
-                 </property>
-                </widget>
-               </item>
-              </layout>
+              <widget class="QWidget" name="dnsSettingsLayout" native="true">
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
+                 <horstretch>1</horstretch>
+                 <verstretch>1</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="minimumSize">
+                <size>
+                 <width>0</width>
+                 <height>32</height>
+                </size>
+               </property>
+               <layout class="QHBoxLayout" name="horizontalLayout">
+                <property name="spacing">
+                 <number>2</number>
+                </property>
+                <property name="leftMargin">
+                 <number>0</number>
+                </property>
+                <property name="topMargin">
+                 <number>0</number>
+                </property>
+                <property name="rightMargin">
+                 <number>0</number>
+                </property>
+                <property name="bottomMargin">
+                 <number>6</number>
+                </property>
+                <item>
+                 <widget class="QCheckBox" name="chkUseTailscaleDns">
+                  <property name="text">
+                   <string>Use Tailscale DNS settings</string>
+                  </property>
+                  <property name="checked">
+                   <bool>true</bool>
+                  </property>
+                 </widget>
+                </item>
+                <item>
+                 <spacer name="horizontalSpacer_5">
+                  <property name="orientation">
+                   <enum>Qt::Orientation::Horizontal</enum>
+                  </property>
+                  <property name="sizeHint" stdset="0">
+                   <size>
+                    <width>40</width>
+                    <height>20</height>
+                   </size>
+                  </property>
+                 </spacer>
+                </item>
+                <item>
+                 <widget class="QPushButton" name="btnTailscaleDnsSettings">
+                  <property name="enabled">
+                   <bool>true</bool>
+                  </property>
+                  <property name="sizePolicy">
+                   <sizepolicy hsizetype="Minimum" 
vsizetype="MinimumExpanding">
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                   </sizepolicy>
+                  </property>
+                  <property name="text">
+                   <string>Manage...</string>
+                  </property>
+                 </widget>
+                </item>
+               </layout>
+              </widget>
              </item>
              <item>
               <widget class="QCheckBox" name="chkAcceptRoutes">
@@ -740,7 +775,7 @@
               <item>
                <spacer name="horizontalSpacer_2">
                 <property name="orientation">
-                 <enum>Qt::Horizontal</enum>
+                 <enum>Qt::Orientation::Horizontal</enum>
                 </property>
                 <property name="sizeHint" stdset="0">
                  <size>
@@ -824,7 +859,7 @@
               <item>
                <spacer name="horizontalSpacer_15">
                 <property name="orientation">
-                 <enum>Qt::Horizontal</enum>
+                 <enum>Qt::Orientation::Horizontal</enum>
                 </property>
                 <property name="sizeHint" stdset="0">
                  <size>
@@ -906,7 +941,7 @@
                 <item>
                  <spacer name="horizontalSpacer_3">
                   <property name="orientation">
-                   <enum>Qt::Horizontal</enum>
+                   <enum>Qt::Orientation::Horizontal</enum>
                   </property>
                   <property name="sizeHint" stdset="0">
                    <size>
@@ -1004,7 +1039,7 @@
               <item>
                <spacer name="horizontalSpacer_4">
                 <property name="orientation">
-                 <enum>Qt::Horizontal</enum>
+                 <enum>Qt::Orientation::Horizontal</enum>
                 </property>
                 <property name="sizeHint" stdset="0">
                  <size>
@@ -1096,7 +1131,7 @@
                 <item>
                  <spacer name="horizontalSpacer_23">
                   <property name="orientation">
-                   <enum>Qt::Horizontal</enum>
+                   <enum>Qt::Orientation::Horizontal</enum>
                   </property>
                   <property name="sizeHint" stdset="0">
                    <size>
@@ -1280,10 +1315,10 @@
         <item>
          <spacer name="verticalSpacer">
           <property name="orientation">
-           <enum>Qt::Vertical</enum>
+           <enum>Qt::Orientation::Vertical</enum>
           </property>
           <property name="sizeType">
-           <enum>QSizePolicy::MinimumExpanding</enum>
+           <enum>QSizePolicy::Policy::MinimumExpanding</enum>
           </property>
           <property name="sizeHint" stdset="0">
            <size>
@@ -1355,10 +1390,10 @@
            <bool>false</bool>
           </property>
           <property name="selectionMode">
-           <enum>QAbstractItemView::NoSelection</enum>
+           <enum>QAbstractItemView::SelectionMode::NoSelection</enum>
           </property>
           <property name="selectionBehavior">
-           <enum>QAbstractItemView::SelectItems</enum>
+           <enum>QAbstractItemView::SelectionBehavior::SelectItems</enum>
           </property>
           <property name="iconSize">
            <size>
@@ -1370,7 +1405,7 @@
            <bool>false</bool>
           </property>
           <property name="gridStyle">
-           <enum>Qt::NoPen</enum>
+           <enum>Qt::PenStyle::NoPen</enum>
           </property>
           <property name="wordWrap">
            <bool>false</bool>
@@ -1400,7 +1435,7 @@
           <item>
            <spacer name="horizontalSpacer_24">
             <property name="orientation">
-             <enum>Qt::Horizontal</enum>
+             <enum>Qt::Orientation::Horizontal</enum>
             </property>
             <property name="sizeHint" stdset="0">
              <size>
@@ -1490,7 +1525,7 @@
            <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span 
style=&quot; font-weight:700;&quot;&gt;Important 
information&lt;br/&gt;&lt;/span&gt;On Linux, to be able to mount shares from 
other machines you will need to do some setup first:&lt;/p&gt;&lt;p&gt;Make 
sure to add http://100.100.100.100:8080 to your ~/.davfs2/secrets 
file&lt;/p&gt;&lt;p&gt;The file itself contains documentation on how to define 
this. For username you can enter Guest and leave password empty. Read more over 
at &lt;a href=&quot;https://wiki.archlinux.org/title/Davfs2&quot;&gt;&lt;span 
style=&quot; text-decoration: underline; 
color:#7636dd;&quot;&gt;https://wiki.archlinux.org/title/Davfs2&lt;/span&gt;&lt;/a&gt;
 and at Tailscale &lt;a 
href=&quot;https://tailscale.com/kb/1369/taildrive?tab=linux&quot;&gt;&lt;span 
style=&quot; text-decoration: underline; 
color:#7636dd;&quot;&gt;https://tailscale.com/kb/1369/taildrive?tab=linux&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
           </property>
           <property name="textFormat">
-           <enum>Qt::PlainText</enum>
+           <enum>Qt::TextFormat::PlainText</enum>
           </property>
           <property name="wordWrap">
            <bool>true</bool>
@@ -1505,7 +1540,7 @@
           <item>
            <spacer name="horizontalSpacer_25">
             <property name="orientation">
-             <enum>Qt::Horizontal</enum>
+             <enum>Qt::Orientation::Horizontal</enum>
             </property>
             <property name="sizeHint" stdset="0">
              <size>
@@ -1537,7 +1572,7 @@
         <item>
          <widget class="QTableWidget" name="twNetworkStatus">
           <property name="editTriggers">
-           <set>QAbstractItemView::NoEditTriggers</set>
+           <set>QAbstractItemView::EditTrigger::NoEditTriggers</set>
           </property>
           <property name="showDropIndicator" stdset="0">
            <bool>false</bool>
@@ -1546,10 +1581,10 @@
            <bool>true</bool>
           </property>
           <property name="selectionMode">
-           <enum>QAbstractItemView::NoSelection</enum>
+           <enum>QAbstractItemView::SelectionMode::NoSelection</enum>
           </property>
           <property name="selectionBehavior">
-           <enum>QAbstractItemView::SelectItems</enum>
+           <enum>QAbstractItemView::SelectionBehavior::SelectItems</enum>
           </property>
           <property name="rowCount">
            <number>0</number>
@@ -1588,7 +1623,7 @@
             <item>
              <spacer name="horizontalSpacer_13">
               <property name="orientation">
-               <enum>Qt::Horizontal</enum>
+               <enum>Qt::Orientation::Horizontal</enum>
               </property>
               <property name="sizeHint" stdset="0">
                <size>
@@ -1636,10 +1671,10 @@
             <item>
              <spacer name="verticalSpacer_12">
               <property name="orientation">
-               <enum>Qt::Vertical</enum>
+               <enum>Qt::Orientation::Vertical</enum>
               </property>
               <property name="sizeType">
-               <enum>QSizePolicy::Fixed</enum>
+               <enum>QSizePolicy::Policy::Fixed</enum>
               </property>
               <property name="sizeHint" stdset="0">
                <size>
@@ -1671,10 +1706,10 @@
             <item>
              <spacer name="verticalSpacer_13">
               <property name="orientation">
-               <enum>Qt::Vertical</enum>
+               <enum>Qt::Orientation::Vertical</enum>
               </property>
               <property name="sizeType">
-               <enum>QSizePolicy::Fixed</enum>
+               <enum>QSizePolicy::Policy::Fixed</enum>
               </property>
               <property name="sizeHint" stdset="0">
                <size>
@@ -1689,7 +1724,7 @@
           <item>
            <spacer name="horizontalSpacer_14">
             <property name="orientation">
-             <enum>Qt::Horizontal</enum>
+             <enum>Qt::Orientation::Horizontal</enum>
             </property>
             <property name="sizeHint" stdset="0">
              <size>
@@ -1796,7 +1831,7 @@
         <item>
          <spacer name="verticalSpacer_14">
           <property name="orientation">
-           <enum>Qt::Vertical</enum>
+           <enum>Qt::Orientation::Vertical</enum>
           </property>
           <property name="sizeHint" stdset="0">
            <size>
@@ -1815,7 +1850,7 @@
       <item>
        <spacer name="horizontalSpacer_6">
         <property name="orientation">
-         <enum>Qt::Horizontal</enum>
+         <enum>Qt::Orientation::Horizontal</enum>
         </property>
         <property name="sizeHint" stdset="0">
          <size>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tail-tray-0.2.26/src/NotificationsManager.cpp 
new/tail-tray-0.2.27/src/NotificationsManager.cpp
--- old/tail-tray-0.2.26/src/NotificationsManager.cpp   2025-11-03 
07:21:00.000000000 +0100
+++ new/tail-tray-0.2.27/src/NotificationsManager.cpp   2025-11-07 
15:34:16.000000000 +0100
@@ -34,7 +34,7 @@
     const QString& iconName) {
 
 #if defined(KNOTIFICATIONS_ENABLED)
-    auto* notification = new KNotification("FileTransfer", 
KNotification::NotificationFlag::CloseOnTimeout, this);
+    auto* notification = new KNotification("FileTransfer", 
KNotification::NotificationFlag::Persistent, this);
     notification->setTitle(title);
     notification->setText(message);
 
@@ -96,3 +96,36 @@
     m_pTrayMgr->trayIcon()->showMessage(title, message, 
QSystemTrayIcon::Critical, 5000);
 #endif
 }
+
+void NotificationsManager::showNodeConnectedNotification(const QString& 
nodeName, const QString& ipAddress, const QString& os)
+{
+#if defined(KNOTIFICATIONS_ENABLED)
+    auto* notification = new KNotification("NodeConnected", 
KNotification::NotificationFlag::Persistent, this);
+    notification->setTitle(tr("Tailnet Devices"));
+    notification->setText(tr("A new device have been discovered on your 
tailnet!\n\nDevice: %1 (%2) - %3")
+        .arg(nodeName, ipAddress, os));
+
+    notification->setIconName("online");
+    notification->sendEvent();
+#else
+    m_pTrayMgr->trayIcon()->showMessage(tr("Tailnet Devices"),
+    tr("A new device have been discovered on your tailnet!\n\nDevice: %1 (%2) 
- %3")
+        .arg(nodeName, ipAddress, os), QSystemTrayIcon::Information, 8000);
+#endif
+}
+void NotificationsManager::showNodeDisconnectedNotification(const QString& 
nodeName, const QString& ipAddress, const QString& os)
+{
+#if defined(KNOTIFICATIONS_ENABLED)
+    auto* notification = new KNotification("NodeDisconnected", 
KNotification::NotificationFlag::Persistent, this);
+    notification->setTitle(tr("Tailnet Devices"));
+    notification->setText(tr("A device have been removed from your 
tailnet!\n\nDevice: %1 (%2) - %3")
+        .arg(nodeName, ipAddress, os));
+
+    notification->setIconName("offline");
+    notification->sendEvent();
+#else
+    m_pTrayMgr->trayIcon()->showMessage(tr("Tailnet Devices"),
+    tr("A device have been removed from your tailnet!\n\nDevice: %1 (%2) - %3")
+        .arg(nodeName, ipAddress, os), QSystemTrayIcon::Information, 8000);
+#endif
+}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tail-tray-0.2.26/src/NotificationsManager.h 
new/tail-tray-0.2.27/src/NotificationsManager.h
--- old/tail-tray-0.2.26/src/NotificationsManager.h     2025-11-03 
07:21:00.000000000 +0100
+++ new/tail-tray-0.2.27/src/NotificationsManager.h     2025-11-07 
15:34:16.000000000 +0100
@@ -23,6 +23,9 @@
     void showWarningNotification(const QString& title, const QString& message, 
const QString& iconName = QString("dialog-warning"));
     void showErrorNotification(const QString& title, const QString& message, 
const QString& iconName = QString("dialog-error"));
 
+    void showNodeConnectedNotification(const QString& nodeName, const QString& 
ipAddress, const QString& os);
+    void showNodeDisconnectedNotification(const QString& nodeName, const 
QString& ipAddress, const QString& os);
+
 private:
     TrayMenuManager const* m_pTrayMgr;
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tail-tray-0.2.26/tail-tray.notifyrc 
new/tail-tray-0.2.27/tail-tray.notifyrc
--- old/tail-tray-0.2.26/tail-tray.notifyrc     2025-11-03 07:21:00.000000000 
+0100
+++ new/tail-tray-0.2.27/tail-tray.notifyrc     2025-11-07 15:34:16.000000000 
+0100
@@ -14,4 +14,16 @@
     Name=FileTransfer
     Comment=A file have been sent or received on this machine over 
Tailscale/Wireguard
     Action=Sound|Popup
-    Urgency=Normal
\ No newline at end of file
+    Urgency=Normal
+
+[Event/NodeConnected]
+    Name=NodeConnected
+    Comment=A new node has been detected on the tailscale network
+    Action=Sound|Popup
+    Urgency=Normal
+
+[Event/NodeDisconnected]
+    Name=NodeDisconnected
+    Comment=A node has been removed from the tailscale network
+    Action=Sound|Popup
+    Urgency=Normal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tail-tray-0.2.26/tests/src/test-tail-status.cpp 
new/tail-tray-0.2.27/tests/src/test-tail-status.cpp
--- old/tail-tray-0.2.26/tests/src/test-tail-status.cpp 2025-11-03 
07:21:00.000000000 +0100
+++ new/tail-tray-0.2.27/tests/src/test-tail-status.cpp 2025-11-07 
15:34:16.000000000 +0100
@@ -16,7 +16,9 @@
 private slots:
     void testParsingSucceeds() {
         QFile file("./data/tail-status-mullvad.json");
-        file.open(QIODevice::ReadOnly);
+        auto success = file.open(QIODevice::ReadOnly);
+        QVERIFY(success);
+
         auto json = QJsonDocument::fromJson(file.readAll());
         file.close();
 
@@ -28,7 +30,9 @@
 
     void testParsingMullvadExtras() {
         QFile file("./data/tail-status-mullvad.json");
-        file.open(QIODevice::ReadOnly);
+        auto success = file.open(QIODevice::ReadOnly);
+        QVERIFY(success);
+
         auto json = QJsonDocument::fromJson(file.readAll());
         file.close();
 
@@ -45,7 +49,9 @@
 
     void testSortingMullvadPeersByCountry() {
         QFile file("./data/tail-status-mullvad.json");
-        file.open(QIODevice::ReadOnly);
+        auto success = file.open(QIODevice::ReadOnly);
+        QVERIFY(success);
+
         auto json = QJsonDocument::fromJson(file.readAll());
         file.close();
 
@@ -77,7 +83,9 @@
 
     void testSortingMullvadPeersByDnsName() {
         QFile file("./data/tail-status-mullvad.json");
-        file.open(QIODevice::ReadOnly);
+        auto success = file.open(QIODevice::ReadOnly);
+        QVERIFY(success);
+
         auto json = QJsonDocument::fromJson(file.readAll());
         file.close();
 

++++++ tail-tray.obsinfo ++++++
--- /var/tmp/diff_new_pack.cXUCAn/_old  2025-11-08 16:36:49.493972934 +0100
+++ /var/tmp/diff_new_pack.cXUCAn/_new  2025-11-08 16:36:49.497973102 +0100
@@ -1,5 +1,5 @@
 name: tail-tray
-version: 0.2.26
-mtime: 1762150860
-commit: 767e2ab02dc1ed0b2e306c577daa6d235323b4bd
+version: 0.2.27
+mtime: 1762526056
+commit: 451ec3d969ca76eb473ebcc6e82e413b0ae8f712
 

Reply via email to