Browse Source

Добавлен обработчик переключения режимов виртуального рабочего стола

master
Тим 10 months ago
parent
commit
6a5c1689b3
2 changed files with 34 additions and 1 deletions
  1. 33
    1
      ui/WBFace.cpp
  2. 1
    0
      ui/WBFace.h

+ 33
- 1
ui/WBFace.cpp View File

@@ -1,4 +1,5 @@
#include "WBFace.h"
#include <QProcess>

WBFace::WBFace(QWidget *parent) : WBUiBase (parent, "WBFace")
{
@@ -47,8 +48,31 @@ WBFace::WBFace(QWidget *parent) : WBUiBase (parent, "WBFace")
}

if (rb_desktop_disable){

QObject::connect(rb_desktop_disable, &QRadioButton::toggled, this, &WBFace::desktopSizeToggle);
desktopSizeToggle(rb_desktop_disable->isChecked());
}
if (rb_desktop_xephyr){
rb_desktop_xephyr->setVisible(false);
for (auto &env : QProcess::systemEnvironment()){
if (env.indexOf("PATH=") == 0){
env.remove(0, 5);
auto pathes = env.split(":");
for (auto &path : pathes){
if (path.isEmpty())
path = "/";
if (path.back() != '/')
path.push_back('/');
if (QFile::exists(path + "Xephyr")){
rb_desktop_xephyr->setVisible(true);
break;
}
}
break;
}
}
} // TODO: Запилить для Nine аналогичную телегу с /usr/lib/d3d/d3dadapter9.so
// LD_LIBRARY_PATH, /etc/ld.so.conf, /etc/ld.so.conf.d/* и стандартные пути
// Nine и CSMT дополнительно отключать в зависимости от бутылки
}

void WBFace::advancedToggle(const bool toggle)
@@ -66,3 +90,11 @@ void WBFace::directxToggle(const bool toggle)
element(rb_directx_csmt)->setDisabled(toggle);
element(rb_directx_nine)->setDisabled(toggle);
}

void WBFace::desktopSizeToggle(const bool toggle)
{
element(spin_desktop_width)->setHidden(toggle);
element(spin_desktop_height)->setHidden(toggle);
element(label_desktop_width)->setHidden(toggle);
element(label_desktop_height)->setHidden(toggle);
}

+ 1
- 0
ui/WBFace.h View File

@@ -55,6 +55,7 @@ protected:
private slots:
void advancedToggle(const bool toggle);
void directxToggle(const bool toggle);
void desktopSizeToggle(const bool toggle);
};

#endif // WBFACE_H

Loading…
Cancel
Save