LeechCraft
0.6.70-18450-gabe19ee3b0
Modular cross-platform feature rich live environment.
Toggle main menu visibility
Loading...
Searching...
No Matches
fancytrayicon.cpp
Go to the documentation of this file.
1
/**********************************************************************
2
* LeechCraft - modular cross-platform feature rich internet client.
3
* Copyright (C) 2006-2014 Georg Rudoy
4
*
5
* Distributed under the Boost Software License, Version 1.0.
6
* (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7
**********************************************************************/
8
9
#include "
fancytrayicon.h
"
10
#include <QMenu>
11
#include <QtDebug>
12
#include "
fancytrayiconfallback.h
"
13
14
#ifdef IS_FREEDESKTOP_PLATFORM
15
#include "
fancytrayiconfreedesktop.h
"
16
#endif
17
18
namespace
LC::Util
19
{
20
FancyTrayIcon::FancyTrayIcon
(
IconInfo
info, QObject *parent)
21
: QObject { parent }
22
, Info_ { std::move (info) }
23
{
24
ReinitImpl ();
25
}
26
27
FancyTrayIcon::~FancyTrayIcon
() =
default
;
28
29
const
FancyTrayIcon::IconInfo
&
FancyTrayIcon::GetInfo
()
const
30
{
31
return
Info_;
32
}
33
34
void
FancyTrayIcon::SetVisible
(
bool
visible)
35
{
36
if
(visible == Visible_)
37
return
;
38
39
Visible_ = visible;
40
if
(!visible)
41
Impl_.reset ();
42
else
43
ReinitImpl ();
44
}
45
46
void
FancyTrayIcon::SetStatus
(
Status
status)
47
{
48
Status_ = status;
49
if
(Impl_)
50
Impl_->UpdateStatus ();
51
}
52
53
FancyTrayIcon::Status
FancyTrayIcon::GetStatus
()
const
54
{
55
return
Status_;
56
}
57
58
void
FancyTrayIcon::SetIcon
(
const
Icon
& icon)
59
{
60
Icon_ = icon;
61
if
(Impl_)
62
Impl_->UpdateIcon ();
63
}
64
65
const
FancyTrayIcon::Icon
&
FancyTrayIcon::GetIcon
()
const
66
{
67
return
Icon_;
68
}
69
70
void
FancyTrayIcon::SetToolTip
(
Tooltip
tooltip)
71
{
72
Tooltip_ = std::move (tooltip);
73
if
(Impl_)
74
Impl_->UpdateTooltip ();
75
}
76
77
const
FancyTrayIcon::Tooltip
&
FancyTrayIcon::GetTooltip
()
const
78
{
79
return
Tooltip_;
80
}
81
82
void
FancyTrayIcon::SetContextMenu
(QMenu *menu)
83
{
84
Menu_ = menu;
85
if
(Impl_)
86
Impl_->UpdateMenu ();
87
}
88
89
QMenu*
FancyTrayIcon::GetContextMenu
()
const
90
{
91
return
Menu_;
92
}
93
94
void
FancyTrayIcon::ReinitImpl ()
95
{
96
try
97
{
98
#ifdef IS_FREEDESKTOP_PLATFORM
99
Impl_ = std::make_unique<FancyTrayIconFreedesktop> (*
this
);
100
#endif
101
}
102
catch
(
const
std::exception& e)
103
{
104
qCritical () <<
"unable to create icon implementation:"
<< e.what ();
105
}
106
107
if
(!Impl_)
108
Impl_ = std::make_unique<FancyTrayIconFallback> (*
this
);
109
}
110
}
LC::Util::FancyTrayIcon::~FancyTrayIcon
~FancyTrayIcon() override
LC::Util::FancyTrayIcon::SetStatus
void SetStatus(Status status)
Definition
fancytrayicon.cpp:46
LC::Util::FancyTrayIcon::GetInfo
const IconInfo & GetInfo() const
Definition
fancytrayicon.cpp:29
LC::Util::FancyTrayIcon::Icon
std::variant< QString, QIcon > Icon
Definition
fancytrayicon.h:47
LC::Util::FancyTrayIcon::SetIcon
void SetIcon(const Icon &icon)
Definition
fancytrayicon.cpp:58
LC::Util::FancyTrayIcon::SetVisible
void SetVisible(bool visible)
Definition
fancytrayicon.cpp:34
LC::Util::FancyTrayIcon::GetTooltip
const Tooltip & GetTooltip() const
Definition
fancytrayicon.cpp:77
LC::Util::FancyTrayIcon::Status
Status
Definition
fancytrayicon.h:41
LC::Util::FancyTrayIcon::GetIcon
const Icon & GetIcon() const
Definition
fancytrayicon.cpp:65
LC::Util::FancyTrayIcon::FancyTrayIcon
FancyTrayIcon(IconInfo info, QObject *parent=nullptr)
Definition
fancytrayicon.cpp:20
LC::Util::FancyTrayIcon::SetContextMenu
void SetContextMenu(QMenu *menu)
Definition
fancytrayicon.cpp:82
LC::Util::FancyTrayIcon::SetToolTip
void SetToolTip(Tooltip tooltip)
Definition
fancytrayicon.cpp:70
LC::Util::FancyTrayIcon::GetStatus
Status GetStatus() const
Definition
fancytrayicon.cpp:53
LC::Util::FancyTrayIcon::GetContextMenu
QMenu * GetContextMenu() const
Definition
fancytrayicon.cpp:89
fancytrayicon.h
fancytrayiconfallback.h
fancytrayiconfreedesktop.h
LC::Util
Definition
icoreproxy.h:34
LC::Util::FancyTrayIcon::IconInfo
Definition
fancytrayicon.h:29
LC::Util::FancyTrayIcon::Tooltip
Definition
fancytrayicon.h:35
src
util
gui
fancytrayicon.cpp
Generated by
1.17.0