File indexing completed on 2025-03-16 08:15:01
0001 /* 0002 KWin - the KDE window manager 0003 This file is part of the KDE project. 0004 0005 SPDX-FileCopyrightText: 2023 Xaver Hugl <xaver.hugl@gmail.com> 0006 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 #pragma once 0010 #include "kwin_export.h" 0011 0012 #include <QByteArray> 0013 #include <QString> 0014 0015 namespace KWin 0016 { 0017 0018 class KWIN_EXPORT Version 0019 { 0020 public: 0021 Version(uint32_t major, uint32_t minor, uint32_t patch = 0); 0022 Version() = default; 0023 0024 // clang-format off 0025 auto operator<=> (const Version &other) const = default; 0026 // clang-format on 0027 bool isValid() const; 0028 uint32_t majorVersion() const; 0029 uint32_t minorVersion() const; 0030 uint32_t patchVersion() const; 0031 0032 QString toString() const; 0033 QByteArray toByteArray() const; 0034 0035 static Version parseString(QByteArrayView versionString); 0036 0037 private: 0038 uint32_t m_major = 0; 0039 uint32_t m_minor = 0; 0040 uint32_t m_patch = 0; 0041 }; 0042 0043 }