forked from quickshell/quickshell
		
	feat: rename project to quickshell
This commit is contained in:
		
							parent
							
								
									ae5363a351
								
							
						
					
					
						commit
						5de0ae095b
					
				
					 10 changed files with 54 additions and 55 deletions
				
			
		| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
cmake_minimum_required(VERSION 3.20)
 | 
			
		||||
project(qtshell VERSION "0.0.1")
 | 
			
		||||
project(quickshell VERSION "0.0.1")
 | 
			
		||||
 | 
			
		||||
set(QT_MIN_VERSION "6.6.0")
 | 
			
		||||
set(CMAKE_CXX_STANDARD 20)
 | 
			
		||||
| 
						 | 
				
			
			@ -27,7 +27,7 @@ endif()
 | 
			
		|||
 | 
			
		||||
qt_standard_project_setup(REQUIRES 6.6)
 | 
			
		||||
 | 
			
		||||
qt_add_executable(qtshell
 | 
			
		||||
qt_add_executable(quickshell
 | 
			
		||||
	src/cpp/main.cpp
 | 
			
		||||
	src/cpp/shell.cpp
 | 
			
		||||
	src/cpp/variants.cpp
 | 
			
		||||
| 
						 | 
				
			
			@ -40,16 +40,16 @@ qt_add_executable(qtshell
 | 
			
		|||
	src/cpp/watcher.cpp
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
qt_add_qml_module(qtshell URI QtShell)
 | 
			
		||||
qt_add_qml_module(quickshell URI QuickShell)
 | 
			
		||||
 | 
			
		||||
# qml type registration requires this
 | 
			
		||||
target_include_directories(qtshell PRIVATE src/cpp)
 | 
			
		||||
target_include_directories(quickshell PRIVATE src/cpp)
 | 
			
		||||
 | 
			
		||||
target_link_libraries(qtshell PRIVATE Qt6::Gui Qt6::Qml Qt6::Quick Qt6::QuickControls2)
 | 
			
		||||
target_link_libraries(quickshell PRIVATE Qt6::Gui Qt6::Qml Qt6::Quick Qt6::QuickControls2)
 | 
			
		||||
 | 
			
		||||
if (LAYERSHELL)
 | 
			
		||||
	target_link_libraries(qtshell PRIVATE LayerShellQtInterface)
 | 
			
		||||
	target_compile_definitions(qtshell PRIVATE CONF_LAYERSHELL)
 | 
			
		||||
	target_link_libraries(quickshell PRIVATE LayerShellQtInterface)
 | 
			
		||||
	target_compile_definitions(quickshell PRIVATE CONF_LAYERSHELL)
 | 
			
		||||
 | 
			
		||||
	target_sources(qtshell PRIVATE src/cpp/layershell.cpp)
 | 
			
		||||
	target_sources(quickshell PRIVATE src/cpp/layershell.cpp)
 | 
			
		||||
endif()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								Justfile
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								Justfile
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -30,4 +30,4 @@ clean:
 | 
			
		|||
	rm -rf {{builddir}}
 | 
			
		||||
 | 
			
		||||
run *ARGS='': build
 | 
			
		||||
	{{builddir}}/qtshell {{ARGS}}
 | 
			
		||||
	{{builddir}}/quickshell {{ARGS}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -92,12 +92,12 @@ qint32 ProxyShellWindow::height() {
 | 
			
		|||
	return this->complete ? this->ProxyWindowBase::height() : this->requestedHeight;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ProxyShellWindow::setScreen(QtShellScreenInfo* screen) {
 | 
			
		||||
void ProxyShellWindow::setScreen(QuickShellScreenInfo* screen) {
 | 
			
		||||
	this->window->setScreen(screen->screen);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QtShellScreenInfo* ProxyShellWindow::screen() const {
 | 
			
		||||
	return new QtShellScreenInfo(
 | 
			
		||||
QuickShellScreenInfo* ProxyShellWindow::screen() const {
 | 
			
		||||
	return new QuickShellScreenInfo(
 | 
			
		||||
	    const_cast<ProxyShellWindow*>(this), // NOLINT
 | 
			
		||||
	    this->window->screen()
 | 
			
		||||
	);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -84,7 +84,7 @@ Q_ENUM_NS(Enum);
 | 
			
		|||
class ProxyShellWindow: public ProxyWindowBase {
 | 
			
		||||
	// clang-format off
 | 
			
		||||
	Q_OBJECT;
 | 
			
		||||
	Q_PROPERTY(QtShellScreenInfo* screen READ screen WRITE setScreen NOTIFY screenChanged);
 | 
			
		||||
	Q_PROPERTY(QuickShellScreenInfo* screen READ screen WRITE setScreen NOTIFY screenChanged);
 | 
			
		||||
	Q_PROPERTY(Anchors anchors READ anchors WRITE setAnchors NOTIFY anchorsChanged);
 | 
			
		||||
	Q_PROPERTY(qint32 exclusionZone READ exclusiveZone WRITE setExclusiveZone NOTIFY exclusionZoneChanged)
 | 
			
		||||
	Q_PROPERTY(Margins margins READ margins WRITE setMargins NOTIFY marginsChanged)
 | 
			
		||||
| 
						 | 
				
			
			@ -115,8 +115,8 @@ public:
 | 
			
		|||
	void setHeight(qint32 height) override;
 | 
			
		||||
	qint32 height() override;
 | 
			
		||||
 | 
			
		||||
	void setScreen(QtShellScreenInfo* screen);
 | 
			
		||||
	[[nodiscard]] QtShellScreenInfo* screen() const;
 | 
			
		||||
	void setScreen(QuickShellScreenInfo* screen);
 | 
			
		||||
	[[nodiscard]] QuickShellScreenInfo* screen() const;
 | 
			
		||||
 | 
			
		||||
	void setAnchors(Anchors anchors);
 | 
			
		||||
	[[nodiscard]] Anchors anchors() const;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,11 +16,10 @@
 | 
			
		|||
 | 
			
		||||
int main(int argc, char** argv) {
 | 
			
		||||
	const auto app = QGuiApplication(argc, argv);
 | 
			
		||||
	QGuiApplication::setApplicationName("qtshell");
 | 
			
		||||
	QGuiApplication::setApplicationName("quickshell");
 | 
			
		||||
	QGuiApplication::setApplicationVersion("0.0.1");
 | 
			
		||||
 | 
			
		||||
	QCommandLineParser parser;
 | 
			
		||||
	parser.setApplicationDescription("Qt based desktop shell");
 | 
			
		||||
	parser.addHelpOption();
 | 
			
		||||
	parser.addVersionOption();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -33,7 +32,7 @@ int main(int argc, char** argv) {
 | 
			
		|||
		configPath = parser.value(configOption);
 | 
			
		||||
	} else {
 | 
			
		||||
		configPath = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation);
 | 
			
		||||
		configPath = QDir(QDir(configPath).filePath("qtshell")).filePath("config.qml");
 | 
			
		||||
		configPath = QDir(QDir(configPath).filePath("quickshell")).filePath("shell.qml");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	qInfo() << "config file path:" << configPath;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,39 +14,39 @@
 | 
			
		|||
#include "qmlscreen.hpp"
 | 
			
		||||
#include "rootwrapper.hpp"
 | 
			
		||||
 | 
			
		||||
QtShellGlobal::QtShellGlobal(QObject* parent): QObject(parent) {
 | 
			
		||||
QuickShellGlobal::QuickShellGlobal(QObject* parent): QObject(parent) {
 | 
			
		||||
	auto* app = QCoreApplication::instance();
 | 
			
		||||
	auto* guiApp = qobject_cast<QGuiApplication*>(app);
 | 
			
		||||
 | 
			
		||||
	if (guiApp != nullptr) {
 | 
			
		||||
		// clang-format off
 | 
			
		||||
		QObject::connect(guiApp, &QGuiApplication::primaryScreenChanged, this, &QtShellGlobal::updateScreens);
 | 
			
		||||
		QObject::connect(guiApp, &QGuiApplication::screenAdded, this, &QtShellGlobal::updateScreens);
 | 
			
		||||
		QObject::connect(guiApp, &QGuiApplication::screenRemoved, this, &QtShellGlobal::updateScreens);
 | 
			
		||||
		QObject::connect(guiApp, &QGuiApplication::primaryScreenChanged, this, &QuickShellGlobal::updateScreens);
 | 
			
		||||
		QObject::connect(guiApp, &QGuiApplication::screenAdded, this, &QuickShellGlobal::updateScreens);
 | 
			
		||||
		QObject::connect(guiApp, &QGuiApplication::screenRemoved, this, &QuickShellGlobal::updateScreens);
 | 
			
		||||
		// clang-format on
 | 
			
		||||
 | 
			
		||||
		this->updateScreens();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
qsizetype QtShellGlobal::screensCount(QQmlListProperty<QtShellScreenInfo>* prop) {
 | 
			
		||||
	return static_cast<QtShellGlobal*>(prop->object)->mScreens.size(); // NOLINT
 | 
			
		||||
qsizetype QuickShellGlobal::screensCount(QQmlListProperty<QuickShellScreenInfo>* prop) {
 | 
			
		||||
	return static_cast<QuickShellGlobal*>(prop->object)->mScreens.size(); // NOLINT
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QtShellScreenInfo* QtShellGlobal::screenAt(QQmlListProperty<QtShellScreenInfo>* prop, qsizetype i) {
 | 
			
		||||
	return static_cast<QtShellGlobal*>(prop->object)->mScreens.at(i); // NOLINT
 | 
			
		||||
QuickShellScreenInfo* QuickShellGlobal::screenAt(QQmlListProperty<QuickShellScreenInfo>* prop, qsizetype i) {
 | 
			
		||||
	return static_cast<QuickShellGlobal*>(prop->object)->mScreens.at(i); // NOLINT
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QQmlListProperty<QtShellScreenInfo> QtShellGlobal::screens() {
 | 
			
		||||
	return QQmlListProperty<QtShellScreenInfo>(
 | 
			
		||||
QQmlListProperty<QuickShellScreenInfo> QuickShellGlobal::screens() {
 | 
			
		||||
	return QQmlListProperty<QuickShellScreenInfo>(
 | 
			
		||||
	    this,
 | 
			
		||||
	    nullptr,
 | 
			
		||||
	    &QtShellGlobal::screensCount,
 | 
			
		||||
	    &QtShellGlobal::screenAt
 | 
			
		||||
	    &QuickShellGlobal::screensCount,
 | 
			
		||||
	    &QuickShellGlobal::screenAt
 | 
			
		||||
	);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QtShellGlobal::reload(bool hard) {
 | 
			
		||||
void QuickShellGlobal::reload(bool hard) {
 | 
			
		||||
	auto* rootobj = QQmlEngine::contextForObject(this)->engine()->parent();
 | 
			
		||||
	auto* root = qobject_cast<RootWrapper*>(rootobj);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -58,7 +58,7 @@ void QtShellGlobal::reload(bool hard) {
 | 
			
		|||
	root->reloadGraph(hard);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QtShellGlobal::updateScreens() {
 | 
			
		||||
void QuickShellGlobal::updateScreens() {
 | 
			
		||||
	auto screens = QGuiApplication::screens();
 | 
			
		||||
	this->mScreens.resize(screens.size());
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -68,7 +68,7 @@ void QtShellGlobal::updateScreens() {
 | 
			
		|||
			this->mScreens[i]->setParent(nullptr); // delete if not owned by the js engine
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		this->mScreens[i] = new QtShellScreenInfo(this, screens[i]);
 | 
			
		||||
		this->mScreens[i] = new QuickShellScreenInfo(this, screens[i]);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	emit this->screensChanged();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,16 +9,16 @@
 | 
			
		|||
 | 
			
		||||
#include "qmlscreen.hpp"
 | 
			
		||||
 | 
			
		||||
class QtShellGlobal: public QObject {
 | 
			
		||||
class QuickShellGlobal: public QObject {
 | 
			
		||||
	Q_OBJECT;
 | 
			
		||||
	Q_PROPERTY(QQmlListProperty<QtShellScreenInfo> screens READ screens NOTIFY screensChanged);
 | 
			
		||||
	Q_PROPERTY(QQmlListProperty<QuickShellScreenInfo> screens READ screens NOTIFY screensChanged);
 | 
			
		||||
	QML_SINGLETON;
 | 
			
		||||
	QML_NAMED_ELEMENT(QtShell);
 | 
			
		||||
	QML_NAMED_ELEMENT(QuickShell);
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	QtShellGlobal(QObject* parent = nullptr);
 | 
			
		||||
	QuickShellGlobal(QObject* parent = nullptr);
 | 
			
		||||
 | 
			
		||||
	QQmlListProperty<QtShellScreenInfo> screens();
 | 
			
		||||
	QQmlListProperty<QuickShellScreenInfo> screens();
 | 
			
		||||
 | 
			
		||||
signals:
 | 
			
		||||
	void screensChanged();
 | 
			
		||||
| 
						 | 
				
			
			@ -28,8 +28,8 @@ public slots:
 | 
			
		|||
	void updateScreens();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	static qsizetype screensCount(QQmlListProperty<QtShellScreenInfo>* prop);
 | 
			
		||||
	static QtShellScreenInfo* screenAt(QQmlListProperty<QtShellScreenInfo>* prop, qsizetype i);
 | 
			
		||||
	static qsizetype screensCount(QQmlListProperty<QuickShellScreenInfo>* prop);
 | 
			
		||||
	static QuickShellScreenInfo* screenAt(QQmlListProperty<QuickShellScreenInfo>* prop, qsizetype i);
 | 
			
		||||
 | 
			
		||||
	QVector<QtShellScreenInfo*> mScreens;
 | 
			
		||||
	QVector<QuickShellScreenInfo*> mScreens;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,13 +5,13 @@
 | 
			
		|||
#include <qnamespace.h>
 | 
			
		||||
#include <qtypes.h>
 | 
			
		||||
 | 
			
		||||
bool QtShellScreenInfo::operator==(QtShellScreenInfo& other) const {
 | 
			
		||||
bool QuickShellScreenInfo::operator==(QuickShellScreenInfo& other) const {
 | 
			
		||||
	return this->screen == other.screen;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void warnNull() { qWarning() << "attempted to use dangling screen object"; }
 | 
			
		||||
 | 
			
		||||
QString QtShellScreenInfo::name() const {
 | 
			
		||||
QString QuickShellScreenInfo::name() const {
 | 
			
		||||
	if (this->screen == nullptr) {
 | 
			
		||||
		warnNull();
 | 
			
		||||
		return "{ DANGLING SCREEN POINTER }";
 | 
			
		||||
| 
						 | 
				
			
			@ -20,7 +20,7 @@ QString QtShellScreenInfo::name() const {
 | 
			
		|||
	return this->screen->name();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
qint32 QtShellScreenInfo::width() const {
 | 
			
		||||
qint32 QuickShellScreenInfo::width() const {
 | 
			
		||||
	if (this->screen == nullptr) {
 | 
			
		||||
		warnNull();
 | 
			
		||||
		return 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -29,7 +29,7 @@ qint32 QtShellScreenInfo::width() const {
 | 
			
		|||
	return this->screen->size().width();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
qint32 QtShellScreenInfo::height() const {
 | 
			
		||||
qint32 QuickShellScreenInfo::height() const {
 | 
			
		||||
	if (this->screen == nullptr) {
 | 
			
		||||
		warnNull();
 | 
			
		||||
		return 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -38,7 +38,7 @@ qint32 QtShellScreenInfo::height() const {
 | 
			
		|||
	return this->screen->size().height();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
qreal QtShellScreenInfo::pixelDensity() const {
 | 
			
		||||
qreal QuickShellScreenInfo::pixelDensity() const {
 | 
			
		||||
	if (this->screen == nullptr) {
 | 
			
		||||
		warnNull();
 | 
			
		||||
		return 0.0;
 | 
			
		||||
| 
						 | 
				
			
			@ -47,7 +47,7 @@ qreal QtShellScreenInfo::pixelDensity() const {
 | 
			
		|||
	return this->screen->physicalDotsPerInch() / 25.4;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
qreal QtShellScreenInfo::logicalPixelDensity() const {
 | 
			
		||||
qreal QuickShellScreenInfo::logicalPixelDensity() const {
 | 
			
		||||
	if (this->screen == nullptr) {
 | 
			
		||||
		warnNull();
 | 
			
		||||
		return 0.0;
 | 
			
		||||
| 
						 | 
				
			
			@ -56,7 +56,7 @@ qreal QtShellScreenInfo::logicalPixelDensity() const {
 | 
			
		|||
	return this->screen->logicalDotsPerInch() / 25.4;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
qreal QtShellScreenInfo::devicePixelRatio() const {
 | 
			
		||||
qreal QuickShellScreenInfo::devicePixelRatio() const {
 | 
			
		||||
	if (this->screen == nullptr) {
 | 
			
		||||
		warnNull();
 | 
			
		||||
		return 0.0;
 | 
			
		||||
| 
						 | 
				
			
			@ -65,7 +65,7 @@ qreal QtShellScreenInfo::devicePixelRatio() const {
 | 
			
		|||
	return this->screen->devicePixelRatio();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Qt::ScreenOrientation QtShellScreenInfo::orientation() const {
 | 
			
		||||
Qt::ScreenOrientation QuickShellScreenInfo::orientation() const {
 | 
			
		||||
	if (this->screen == nullptr) {
 | 
			
		||||
		warnNull();
 | 
			
		||||
		return Qt::PrimaryOrientation;
 | 
			
		||||
| 
						 | 
				
			
			@ -74,7 +74,7 @@ Qt::ScreenOrientation QtShellScreenInfo::orientation() const {
 | 
			
		|||
	return this->screen->orientation();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Qt::ScreenOrientation QtShellScreenInfo::primaryOrientation() const {
 | 
			
		||||
Qt::ScreenOrientation QuickShellScreenInfo::primaryOrientation() const {
 | 
			
		||||
	if (this->screen == nullptr) {
 | 
			
		||||
		warnNull();
 | 
			
		||||
		return Qt::PrimaryOrientation;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,10 +8,10 @@
 | 
			
		|||
#include <qtypes.h>
 | 
			
		||||
 | 
			
		||||
// unfortunately QQuickScreenInfo is private.
 | 
			
		||||
class QtShellScreenInfo: public QObject {
 | 
			
		||||
class QuickShellScreenInfo: public QObject {
 | 
			
		||||
	Q_OBJECT;
 | 
			
		||||
	QML_ELEMENT;
 | 
			
		||||
	QML_UNCREATABLE("QtShellScreenInfo can only be obtained via QtShell.screens");
 | 
			
		||||
	QML_UNCREATABLE("QuickShellScreenInfo can only be obtained via QuickShell.screens");
 | 
			
		||||
	// clang-format off
 | 
			
		||||
	Q_PROPERTY(QString name READ name NOTIFY nameChanged);
 | 
			
		||||
	Q_PROPERTY(qint32 width READ width NOTIFY widthChanged);
 | 
			
		||||
| 
						 | 
				
			
			@ -24,9 +24,9 @@ class QtShellScreenInfo: public QObject {
 | 
			
		|||
	// clang-format on
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	QtShellScreenInfo(QObject* parent, QScreen* screen): QObject(parent), screen(screen) {}
 | 
			
		||||
	QuickShellScreenInfo(QObject* parent, QScreen* screen): QObject(parent), screen(screen) {}
 | 
			
		||||
 | 
			
		||||
	bool operator==(QtShellScreenInfo& other) const;
 | 
			
		||||
	bool operator==(QuickShellScreenInfo& other) const;
 | 
			
		||||
 | 
			
		||||
	[[nodiscard]] QString name() const;
 | 
			
		||||
	[[nodiscard]] qint32 width() const;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,7 +44,7 @@ void RootWrapper::reloadGraph(bool hard) {
 | 
			
		|||
 | 
			
		||||
	auto* newRoot = qobject_cast<ShellRoot*>(obj);
 | 
			
		||||
	if (newRoot == nullptr) {
 | 
			
		||||
		qWarning() << "root component was not a QtShell";
 | 
			
		||||
		qWarning() << "root component was not a QuickShell.ShellRoot";
 | 
			
		||||
		delete obj;
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue