mirror of
https://github.com/hyprwm/hyprlock.git
synced 2024-12-22 21:39:47 +01:00
core: move to hyprutils for utils
This commit is contained in:
parent
972c1c27e6
commit
38845775fc
4 changed files with 4 additions and 120 deletions
|
@ -39,7 +39,7 @@ message(STATUS "Checking deps...")
|
||||||
find_package(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
find_package(PkgConfig REQUIRED)
|
find_package(PkgConfig REQUIRED)
|
||||||
find_package(OpenGL REQUIRED)
|
find_package(OpenGL REQUIRED)
|
||||||
pkg_check_modules(deps REQUIRED IMPORTED_TARGET wayland-client wayland-protocols wayland-egl hyprlang>=0.4.0 egl opengl xkbcommon libjpeg libwebp libmagic cairo pangocairo libdrm gbm)
|
pkg_check_modules(deps REQUIRED IMPORTED_TARGET wayland-client wayland-protocols wayland-egl hyprlang>=0.4.0 egl opengl xkbcommon libjpeg libwebp libmagic cairo pangocairo libdrm gbm hyprutils>=0.1.1)
|
||||||
|
|
||||||
file(GLOB_RECURSE SRCFILES CONFIGURE_DEPENDS "src/*.cpp")
|
file(GLOB_RECURSE SRCFILES CONFIGURE_DEPENDS "src/*.cpp")
|
||||||
add_executable(hyprlock ${SRCFILES})
|
add_executable(hyprlock ${SRCFILES})
|
||||||
|
|
|
@ -1,55 +0,0 @@
|
||||||
#include "VarList.hpp"
|
|
||||||
#include <ranges>
|
|
||||||
#include <algorithm>
|
|
||||||
|
|
||||||
static std::string removeBeginEndSpacesTabs(std::string str) {
|
|
||||||
if (str.empty())
|
|
||||||
return str;
|
|
||||||
|
|
||||||
int countBefore = 0;
|
|
||||||
while (str[countBefore] == ' ' || str[countBefore] == '\t') {
|
|
||||||
countBefore++;
|
|
||||||
}
|
|
||||||
|
|
||||||
int countAfter = 0;
|
|
||||||
while ((int)str.length() - countAfter - 1 >= 0 && (str[str.length() - countAfter - 1] == ' ' || str[str.length() - 1 - countAfter] == '\t')) {
|
|
||||||
countAfter++;
|
|
||||||
}
|
|
||||||
|
|
||||||
str = str.substr(countBefore, str.length() - countBefore - countAfter);
|
|
||||||
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
CVarList::CVarList(const std::string& in, const size_t lastArgNo, const char delim, const bool removeEmpty) {
|
|
||||||
if (in.empty())
|
|
||||||
m_vArgs.emplace_back("");
|
|
||||||
|
|
||||||
std::string args{in};
|
|
||||||
size_t idx = 0;
|
|
||||||
size_t pos = 0;
|
|
||||||
std::ranges::replace_if(
|
|
||||||
args, [&](const char& c) { return delim == 's' ? std::isspace(c) : c == delim; }, 0);
|
|
||||||
|
|
||||||
for (const auto& s : args | std::views::split(0)) {
|
|
||||||
if (removeEmpty && s.empty())
|
|
||||||
continue;
|
|
||||||
if (++idx == lastArgNo) {
|
|
||||||
m_vArgs.emplace_back(removeBeginEndSpacesTabs(in.substr(pos)));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
pos += s.size() + 1;
|
|
||||||
m_vArgs.emplace_back(removeBeginEndSpacesTabs(std::string_view{s}.data()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string CVarList::join(const std::string& joiner, size_t from, size_t to) const {
|
|
||||||
size_t last = to == 0 ? size() : to;
|
|
||||||
|
|
||||||
std::string rolling;
|
|
||||||
for (size_t i = from; i < last; ++i) {
|
|
||||||
rolling += m_vArgs[i] + (i + 1 < last ? joiner : "");
|
|
||||||
}
|
|
||||||
|
|
||||||
return rolling;
|
|
||||||
}
|
|
|
@ -1,63 +0,0 @@
|
||||||
#pragma once
|
|
||||||
#include <functional>
|
|
||||||
#include <vector>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
class CVarList {
|
|
||||||
public:
|
|
||||||
/** Split string into arg list
|
|
||||||
@param lastArgNo stop splitting after argv reaches maximum size, last arg will contain rest of unsplit args
|
|
||||||
@param delim if delimiter is 's', use std::isspace
|
|
||||||
@param removeEmpty remove empty args from argv
|
|
||||||
*/
|
|
||||||
CVarList(const std::string& in, const size_t maxSize = 0, const char delim = ',', const bool removeEmpty = false);
|
|
||||||
|
|
||||||
~CVarList() = default;
|
|
||||||
|
|
||||||
size_t size() const {
|
|
||||||
return m_vArgs.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string join(const std::string& joiner, size_t from = 0, size_t to = 0) const;
|
|
||||||
|
|
||||||
void map(std::function<void(std::string&)> func) {
|
|
||||||
for (auto& s : m_vArgs)
|
|
||||||
func(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
void append(const std::string arg) {
|
|
||||||
m_vArgs.emplace_back(arg);
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string operator[](const size_t& idx) const {
|
|
||||||
if (idx >= m_vArgs.size())
|
|
||||||
return "";
|
|
||||||
return m_vArgs[idx];
|
|
||||||
}
|
|
||||||
|
|
||||||
// for range-based loops
|
|
||||||
std::vector<std::string>::iterator begin() {
|
|
||||||
return m_vArgs.begin();
|
|
||||||
}
|
|
||||||
std::vector<std::string>::const_iterator begin() const {
|
|
||||||
return m_vArgs.begin();
|
|
||||||
}
|
|
||||||
std::vector<std::string>::iterator end() {
|
|
||||||
return m_vArgs.end();
|
|
||||||
}
|
|
||||||
std::vector<std::string>::const_iterator end() const {
|
|
||||||
return m_vArgs.end();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool contains(const std::string& el) {
|
|
||||||
for (auto& a : m_vArgs) {
|
|
||||||
if (a == el)
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
std::vector<std::string> m_vArgs;
|
|
||||||
};
|
|
|
@ -1,10 +1,12 @@
|
||||||
#include "IWidget.hpp"
|
#include "IWidget.hpp"
|
||||||
#include "../../helpers/Log.hpp"
|
#include "../../helpers/Log.hpp"
|
||||||
#include "../../helpers/VarList.hpp"
|
|
||||||
#include "../../core/hyprlock.hpp"
|
#include "../../core/hyprlock.hpp"
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
|
#include <hyprutils/string/VarList.hpp>
|
||||||
|
|
||||||
|
using namespace Hyprutils::String;
|
||||||
|
|
||||||
#if defined(_LIBCPP_VERSION) && _LIBCPP_VERSION < 190100
|
#if defined(_LIBCPP_VERSION) && _LIBCPP_VERSION < 190100
|
||||||
#pragma comment(lib, "date-tz")
|
#pragma comment(lib, "date-tz")
|
||||||
|
|
Loading…
Reference in a new issue