mirror of
https://git.outfoxxed.me/quickshell/quickshell.git
synced 2026-04-10 06:11:54 +10:00
Compare commits
3 commits
ad5fd9116e
...
7c5a6c4bd4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7c5a6c4bd4 | ||
|
|
5bf6a412b0 | ||
|
|
13fe9b0d98 |
4 changed files with 51 additions and 11 deletions
|
|
@ -70,6 +70,7 @@ set shell id.
|
|||
- Fixed JsonAdapter crashing and providing bad data on read when using JsonObject.
|
||||
- Fixed JsonAdapter sending unnecessary property changes for primitive values.
|
||||
- Fixed JsonAdapter serialization for lists.
|
||||
- Fixed pipewire crashes after hotplugging devices and changing default outputs.
|
||||
|
||||
## Packaging Changes
|
||||
|
||||
|
|
|
|||
|
|
@ -310,10 +310,15 @@ void LogManager::init(
|
|||
instance->rules->append(parser.rules());
|
||||
}
|
||||
|
||||
qInstallMessageHandler(&LogManager::messageHandler);
|
||||
|
||||
instance->lastCategoryFilter = QLoggingCategory::installFilter(&LogManager::filterCategory);
|
||||
|
||||
if (instance->lastCategoryFilter == &LogManager::filterCategory) {
|
||||
qCFatal(logLogging) << "Quickshell's log filter has been installed twice. This is a bug.";
|
||||
instance->lastCategoryFilter = nullptr;
|
||||
}
|
||||
|
||||
qInstallMessageHandler(&LogManager::messageHandler);
|
||||
|
||||
qCDebug(logLogging) << "Creating offthread logger...";
|
||||
auto* thread = new QThread();
|
||||
instance->threadProxy.moveToThread(thread);
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ QDir* QsPaths::baseRunDir() {
|
|||
if (this->baseRunState == DirState::Unknown) {
|
||||
auto runtimeDir = qEnvironmentVariable("XDG_RUNTIME_DIR");
|
||||
if (runtimeDir.isEmpty()) {
|
||||
runtimeDir = QString("/run/user/$1").arg(getuid());
|
||||
runtimeDir = QString("/run/user/%1").arg(getuid());
|
||||
qCInfo(logPaths) << "XDG_RUNTIME_DIR was not set, defaulting to" << runtimeDir;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -214,13 +214,24 @@ void PwDefaultTracker::setDefaultSink(PwNode* node) {
|
|||
qCInfo(logDefaults) << "Default sink changed to" << node;
|
||||
|
||||
if (this->mDefaultSink != nullptr) {
|
||||
QObject::disconnect(this->mDefaultSink, nullptr, this, nullptr);
|
||||
// Targeted disconnect is used because this can also be the default configured sink.
|
||||
QObject::disconnect(
|
||||
this->mDefaultSink,
|
||||
&PwBindableObject::destroying,
|
||||
this,
|
||||
&PwDefaultTracker::onDefaultSinkDestroyed
|
||||
);
|
||||
}
|
||||
|
||||
this->mDefaultSink = node;
|
||||
|
||||
if (node != nullptr) {
|
||||
QObject::connect(node, &QObject::destroyed, this, &PwDefaultTracker::onDefaultSinkDestroyed);
|
||||
QObject::connect(
|
||||
node,
|
||||
&PwBindableObject::destroying,
|
||||
this,
|
||||
&PwDefaultTracker::onDefaultSinkDestroyed
|
||||
);
|
||||
}
|
||||
|
||||
emit this->defaultSinkChanged();
|
||||
|
|
@ -244,13 +255,24 @@ void PwDefaultTracker::setDefaultSource(PwNode* node) {
|
|||
qCInfo(logDefaults) << "Default source changed to" << node;
|
||||
|
||||
if (this->mDefaultSource != nullptr) {
|
||||
QObject::disconnect(this->mDefaultSource, nullptr, this, nullptr);
|
||||
// Targeted disconnect is used because this can also be the default configured source.
|
||||
QObject::disconnect(
|
||||
this->mDefaultSource,
|
||||
&PwBindableObject::destroying,
|
||||
this,
|
||||
&PwDefaultTracker::onDefaultSourceDestroyed
|
||||
);
|
||||
}
|
||||
|
||||
this->mDefaultSource = node;
|
||||
|
||||
if (node != nullptr) {
|
||||
QObject::connect(node, &QObject::destroyed, this, &PwDefaultTracker::onDefaultSourceDestroyed);
|
||||
QObject::connect(
|
||||
node,
|
||||
&PwBindableObject::destroying,
|
||||
this,
|
||||
&PwDefaultTracker::onDefaultSourceDestroyed
|
||||
);
|
||||
}
|
||||
|
||||
emit this->defaultSourceChanged();
|
||||
|
|
@ -274,7 +296,13 @@ void PwDefaultTracker::setDefaultConfiguredSink(PwNode* node) {
|
|||
qCInfo(logDefaults) << "Default configured sink changed to" << node;
|
||||
|
||||
if (this->mDefaultConfiguredSink != nullptr) {
|
||||
QObject::disconnect(this->mDefaultConfiguredSink, nullptr, this, nullptr);
|
||||
// Targeted disconnect is used because this can also be the default sink.
|
||||
QObject::disconnect(
|
||||
this->mDefaultConfiguredSink,
|
||||
&PwBindableObject::destroying,
|
||||
this,
|
||||
&PwDefaultTracker::onDefaultConfiguredSinkDestroyed
|
||||
);
|
||||
}
|
||||
|
||||
this->mDefaultConfiguredSink = node;
|
||||
|
|
@ -282,7 +310,7 @@ void PwDefaultTracker::setDefaultConfiguredSink(PwNode* node) {
|
|||
if (node != nullptr) {
|
||||
QObject::connect(
|
||||
node,
|
||||
&QObject::destroyed,
|
||||
&PwBindableObject::destroying,
|
||||
this,
|
||||
&PwDefaultTracker::onDefaultConfiguredSinkDestroyed
|
||||
);
|
||||
|
|
@ -309,7 +337,13 @@ void PwDefaultTracker::setDefaultConfiguredSource(PwNode* node) {
|
|||
qCInfo(logDefaults) << "Default configured source changed to" << node;
|
||||
|
||||
if (this->mDefaultConfiguredSource != nullptr) {
|
||||
QObject::disconnect(this->mDefaultConfiguredSource, nullptr, this, nullptr);
|
||||
// Targeted disconnect is used because this can also be the default source.
|
||||
QObject::disconnect(
|
||||
this->mDefaultConfiguredSource,
|
||||
&PwBindableObject::destroying,
|
||||
this,
|
||||
&PwDefaultTracker::onDefaultConfiguredSourceDestroyed
|
||||
);
|
||||
}
|
||||
|
||||
this->mDefaultConfiguredSource = node;
|
||||
|
|
@ -317,7 +351,7 @@ void PwDefaultTracker::setDefaultConfiguredSource(PwNode* node) {
|
|||
if (node != nullptr) {
|
||||
QObject::connect(
|
||||
node,
|
||||
&QObject::destroyed,
|
||||
&PwBindableObject::destroying,
|
||||
this,
|
||||
&PwDefaultTracker::onDefaultConfiguredSourceDestroyed
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue