Chatterino
Common.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QString>
4 #include <QWidget>
5 #include <boost/optional.hpp>
6 #include <boost/preprocessor.hpp>
7 #include <memory>
8 #include <string>
9 
10 #include "common/Aliases.hpp"
11 #include "common/Outcome.hpp"
12 #include "common/ProviderId.hpp"
13 
14 namespace chatterino {
15 
16 enum class HighlightState {
17  None,
19  NewMessage,
20 };
21 
22 inline QString qS(const std::string &string)
23 {
24  return QString::fromStdString(string);
25 }
26 
27 const Qt::KeyboardModifiers showSplitOverlayModifiers =
28  Qt::ControlModifier | Qt::AltModifier;
29 const Qt::KeyboardModifiers showAddSplitRegions =
30  Qt::ControlModifier | Qt::AltModifier;
31 const Qt::KeyboardModifiers showResizeHandlesModifiers = Qt::ControlModifier;
32 
33 #ifndef ATTR_UNUSED
34 # ifdef Q_OS_WIN
35 # define ATTR_UNUSED
36 # else
37 # define ATTR_UNUSED __attribute__((unused))
38 # endif
39 #endif
40 
41 static const char *ANONYMOUS_USERNAME_LABEL ATTR_UNUSED = " - anonymous - ";
42 
43 template <typename T>
44 std::weak_ptr<T> weakOf(T *element)
45 {
46  return element->shared_from_this();
47 }
48 
49 struct Message;
50 using MessagePtr = std::shared_ptr<const Message>;
51 
52 enum class CopyMode {
53  Everything,
56 };
57 
58 struct DeleteLater {
59  void operator()(QObject *obj)
60  {
61  obj->deleteLater();
62  }
63 };
64 
65 template <typename T>
66 using QObjectPtr = std::unique_ptr<T, DeleteLater>;
67 
68 } // namespace chatterino
void operator()(QObject *obj)
Definition: Common.hpp:59
Definition: Common.hpp:58
Definition: Application.cpp:48
HighlightState
Definition: Common.hpp:16
#define ATTR_UNUSED
Definition: Common.hpp:37
CopyMode
Definition: Common.hpp:52
const Qt::KeyboardModifiers showAddSplitRegions
Definition: Common.hpp:29
std::shared_ptr< const Message > MessagePtr
Definition: Channel.hpp:18
Definition: Message.hpp:54
QString qS(const std::string &string)
Definition: Common.hpp:22
std::unique_ptr< T, DeleteLater > QObjectPtr
Definition: Common.hpp:66
const Qt::KeyboardModifiers showSplitOverlayModifiers
Definition: Common.hpp:27
const Qt::KeyboardModifiers showResizeHandlesModifiers
Definition: Common.hpp:31
std::weak_ptr< T > weakOf(T *element)
Definition: Common.hpp:44