Guitar
misc.h
Go to the documentation of this file.
1 #ifndef MISC_H
2 #define MISC_H
3 
4 #include <QApplication>
5 #include <QStringList>
6 #include <QDateTime>
7 #include <functional>
8 #include <vector>
9 #include <cstdint>
10 #include <QColor>
11 
12 #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
13 #define _SkipEmptyParts QString::SkipEmptyParts
14 #else
15 #define _SkipEmptyParts Qt::SkipEmptyParts
16 #endif
17 
18 class QContextMenuEvent;
19 
20 class misc {
21 public:
22  static int stricmp(char const *s1, char const *s2)
23  {
24 #ifdef _WIN32
25  return ::stricmp(s1, s2);
26 #else
27  return ::strcasecmp(s1, s2);
28 #endif
29  }
30 
31  static int strnicmp(char const *s1, char const *s2, size_t n)
32  {
33 #ifdef _WIN32
34  return ::strnicmp(s1, s2, n);
35 #else
36  return ::strncasecmp(s1, s2, n);
37 #endif
38  }
39 
40  static QString getApplicationDir();
41  static QStringList splitLines(QByteArray const &ba, std::function<QString(char const *ptr, size_t len)> const &tos);
42  static QStringList splitLines(QString const &text);
43  static void splitLines(char const *begin, char const *end, std::vector<std::string> *out, bool keep_newline);
44  static void splitLines(std::string const &text, std::vector<std::string> *out, bool need_crlf);
45  static QStringList splitWords(QString const &text);
46  static QString getFileName(QString const &path);
47  static QString makeDateTimeString(const QDateTime &dt);
48  static bool starts_with(std::string const &str, std::string const &with);
49  static std::string mid(std::string const &str, int start, int length = -1);
50  static QString normalizePathSeparator(QString const &str);
51  static QString joinWithSlash(QString const &left, QString const &right);
52  static void setFixedSize(QWidget *w);
53  static void drawFrame(QPainter *pr, int x, int y, int w, int h, QColor color_topleft, QColor color_bottomright = QColor());
54  static void dump(const uint8_t *ptr, size_t len);
55  static void dump(QByteArray const *in);
56  static bool isText(QString const &mimetype);
57  static bool isImage(QString const &mimetype);
58  static bool isSVG(QString const &mimetype);
59  static bool isPSD(QString const &mimetype);
60  static QString abbrevBranchName(QString const &name);
61  static std::string makeProxyServerURL(std::string text);
62  static QString makeProxyServerURL(QString text);
63  static QPoint contextMenuPos(QWidget *w, QContextMenuEvent *e);
64  static bool isExecutable(QString const &cmd);
65  static QString complementRemoteURL(QString url, bool toggle);
66 
67  static QString collapseWhitespace(QString const &source);
68  static bool isValidMailAddress(const QString &email);
69  static bool isValidMailAddress(const std::string &email);
70 
71  static std::string_view trimmed(std::string_view const &s);
72  static std::string bin_to_hex_string(const void *begin, const void *end);
73  static std::vector<uint8_t> hex_string_to_bin(std::string_view const &s, const char *sep = nullptr);
74 
75  static int compare(uint8_t const *a, size_t n, uint8_t const *b, size_t m);
76  static int compare(std::vector<uint8_t> const &a, std::vector<uint8_t> const &b);
77 };
78 
80 public:
82  {
83  qApp->setOverrideCursor(Qt::WaitCursor);
84  }
86  {
87  qApp->restoreOverrideCursor();
88  }
89 };
90 #define OverrideWaitCursor OverrideWaitCursor_ waitcursor_; (void)waitcursor_;
91 
92 #endif // MISC_H
misc::drawFrame
static void drawFrame(QPainter *pr, int x, int y, int w, int h, QColor color_topleft, QColor color_bottomright=QColor())
矩形のフレームを描画する。
Definition: misc.cpp:303
misc::makeDateTimeString
static QString makeDateTimeString(const QDateTime &dt)
Definition: misc.cpp:199
misc::splitWords
static QStringList splitWords(QString const &text)
文字列を単語に分割する。
Definition: misc.cpp:162
misc::getApplicationDir
static QString getApplicationDir()
Definition: misc.cpp:12
misc
Definition: misc.h:20
joinpath
std::string joinpath(char const *left, char const *right)
Definition: joinpath.cpp:61
OverrideWaitCursor_::~OverrideWaitCursor_
~OverrideWaitCursor_()
Definition: misc.h:85
misc::abbrevBranchName
static QString abbrevBranchName(QString const &name)
ブランチ名を短縮形に変換する。
Definition: misc.cpp:421
misc::compare
static int compare(uint8_t const *a, size_t n, uint8_t const *b, size_t m)
Definition: misc.cpp:629
misc::trimmed
static std::string_view trimmed(std::string_view const &s)
文字列の両端から空白文字を取り除く
Definition: misc.cpp:567
misc::joinWithSlash
static QString joinWithSlash(QString const &left, QString const &right)
Definition: misc.cpp:272
misc.h
misc::complementRemoteURL
static QString complementRemoteURL(QString url, bool toggle)
リモートURLの形式を補完または変換する。
Definition: misc.cpp:488
misc::contextMenuPos
static QPoint contextMenuPos(QWidget *w, QContextMenuEvent *e)
Definition: misc.cpp:461
misc::mid
static std::string mid(std::string const &str, int start, int length=-1)
Definition: misc.cpp:230
misc::starts_with
static bool starts_with(std::string const &str, std::string const &with)
Definition: misc.cpp:225
joinpath.h
misc::splitLines
static QStringList splitLines(QByteArray const &ba, std::function< QString(char const *ptr, size_t len)> const &tos)
QByteArrayの文字列を行に分割する。
Definition: misc.cpp:33
misc::hex_string_to_bin
static std::vector< uint8_t > hex_string_to_bin(std::string_view const &s, const char *sep=nullptr)
16進数文字列をバイナリデータに変換する
Definition: misc.cpp:604
misc::getFileName
static QString getFileName(QString const &path)
Definition: misc.cpp:188
misc::collapseWhitespace
static QString collapseWhitespace(QString const &source)
文字列内の連続する空白文字を1つのスペースにまとめる。
Definition: misc.cpp:515
misc::strnicmp
static int strnicmp(char const *s1, char const *s2, size_t n)
Definition: misc.h:31
misc::stricmp
static int stricmp(char const *s1, char const *s2)
Definition: misc.h:22
misc::isValidMailAddress
static bool isValidMailAddress(const QString &email)
文字列が有効なメールアドレスか判定する
Definition: misc.cpp:546
misc::isPSD
static bool isPSD(QString const &mimetype)
Definition: misc.cpp:387
OverrideWaitCursor_::OverrideWaitCursor_
OverrideWaitCursor_()
Definition: misc.h:81
misc::normalizePathSeparator
static QString normalizePathSeparator(QString const &str)
Definition: misc.cpp:266
misc::makeProxyServerURL
static std::string makeProxyServerURL(std::string text)
Definition: misc.cpp:439
misc::isImage
static bool isImage(QString const &mimetype)
Definition: misc.cpp:393
OverrideWaitCursor_
Definition: misc.h:79
misc::isText
static bool isText(QString const &mimetype)
Definition: misc.cpp:375
misc::isExecutable
static bool isExecutable(QString const &cmd)
Definition: misc.cpp:469
misc::isSVG
static bool isSVG(QString const &mimetype)
Definition: misc.cpp:380
misc::setFixedSize
static void setFixedSize(QWidget *w)
Definition: misc.cpp:280
misc::bin_to_hex_string
static std::string bin_to_hex_string(const void *begin, const void *end)
バイナリデータを16進数文字列に変換する
Definition: misc.cpp:582
misc::dump
static void dump(const uint8_t *ptr, size_t len)
メモリダンプを16進数で表示する。
Definition: misc.cpp:328