mirror of
https://github.com/vicr123/theshell.git
synced 2025-01-22 20:01:49 -05:00
New power options
This commit is contained in:
parent
9654a83ca4
commit
cf565b3c14
86 changed files with 14892 additions and 12589 deletions
|
@ -10,3 +10,7 @@ Plugin::Plugin(QObject *parent) :
|
|||
QList<StatusCenterPaneObject*> Plugin::availablePanes() {
|
||||
return panes;
|
||||
}
|
||||
|
||||
void Plugin::loadLanguage(QString language) {
|
||||
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ class Plugin : public QObject, public StatusCenterPane
|
|||
explicit Plugin(QObject *parent = 0);
|
||||
|
||||
QList<StatusCenterPaneObject*> availablePanes();
|
||||
void loadLanguage(QString language);
|
||||
private:
|
||||
QList<StatusCenterPaneObject*> panes;
|
||||
};
|
||||
|
|
|
@ -391,6 +391,7 @@ InfoPaneDropdown::InfoPaneDropdown(WId MainWindowId, QWidget *parent) :
|
|||
ui->EmphasiseAppSwitch->setChecked(settings.value("notifications/emphasiseApp", true).toBool());
|
||||
ui->CompactBarSwitch->setChecked(settings.value("bar/compact", false).toBool());
|
||||
ui->LocationMasterSwitch->setChecked(locationSettings->value("master/master", true).toBool());
|
||||
ui->powerButtonPressed->setCurrentIndex(settings.value("power/onPowerButtonPressed", 0).toInt());
|
||||
updateAccentColourBox();
|
||||
updateRedshiftTime();
|
||||
on_StatusBarSwitch_toggled(ui->StatusBarSwitch->isChecked());
|
||||
|
@ -416,6 +417,18 @@ InfoPaneDropdown::InfoPaneDropdown(WId MainWindowId, QWidget *parent) :
|
|||
ui->systemGTK3Font->setCurrentFont(QFont(gtk3FontFamily, gtk3FontSize.toInt()));
|
||||
ui->systemGTK3FontSize->setValue(gtk3FontSize.toInt());
|
||||
|
||||
switch (settings.value("power/suspendMode", 0).toInt()) {
|
||||
case 0:
|
||||
ui->powerSuspendNormally->setChecked(true);
|
||||
break;
|
||||
case 1:
|
||||
ui->powerSuspendTurnOffScreen->setChecked(true);
|
||||
break;
|
||||
case 2:
|
||||
ui->powerSuspendHibernate->setChecked(true);
|
||||
break;
|
||||
}
|
||||
|
||||
eventTimer = new QTimer(this);
|
||||
eventTimer->setInterval(1000);
|
||||
connect(eventTimer, SIGNAL(timeout()), this, SLOT(processTimer()));
|
||||
|
@ -704,6 +717,7 @@ InfoPaneDropdown::InfoPaneDropdown(WId MainWindowId, QWidget *parent) :
|
|||
} else {
|
||||
StatusCenterPane* p = qobject_cast<StatusCenterPane*>(plugin);
|
||||
if (p) {
|
||||
//p->loadLanguage(QLocale().name());
|
||||
for (StatusCenterPaneObject* pane : p->availablePanes()) {
|
||||
//Only load the pane once
|
||||
if (!loadedPanes.contains(pane->name())) {
|
||||
|
@ -3789,6 +3803,10 @@ void InfoPaneDropdown::on_resetDeviceButton_clicked()
|
|||
void InfoPaneDropdown::changeEvent(QEvent *event) {
|
||||
if (event->type() == QEvent::LanguageChange) {
|
||||
ui->retranslateUi(this);
|
||||
|
||||
for (StatusCenterPaneObject* pane : pluginObjects.values()) {
|
||||
pane->message("retranslate");
|
||||
}
|
||||
}
|
||||
QDialog::changeEvent(event);
|
||||
}
|
||||
|
@ -4558,3 +4576,29 @@ void InfoPaneDropdown::on_quietModeCriticalOnly_clicked()
|
|||
AudioMan->setQuietMode(AudioManager::critical);
|
||||
ui->quietModeCriticalOnly->setChecked(true);
|
||||
}
|
||||
|
||||
void InfoPaneDropdown::on_powerSuspendNormally_toggled(bool checked)
|
||||
{
|
||||
if (checked) {
|
||||
settings.setValue("power/suspendMode", 0);
|
||||
}
|
||||
}
|
||||
|
||||
void InfoPaneDropdown::on_powerSuspendTurnOffScreen_toggled(bool checked)
|
||||
{
|
||||
if (checked) {
|
||||
settings.setValue("power/suspendMode", 1);
|
||||
}
|
||||
}
|
||||
|
||||
void InfoPaneDropdown::on_powerSuspendHibernate_toggled(bool checked)
|
||||
{
|
||||
if (checked) {
|
||||
settings.setValue("power/suspendMode", 2);
|
||||
}
|
||||
}
|
||||
|
||||
void InfoPaneDropdown::on_powerButtonPressed_currentIndexChanged(int index)
|
||||
{
|
||||
settings.setValue("power/onPowerButtonPressed", index);
|
||||
}
|
||||
|
|
|
@ -509,6 +509,14 @@ class InfoPaneDropdown : public QDialog
|
|||
|
||||
void on_quietModeCriticalOnly_clicked();
|
||||
|
||||
void on_powerSuspendNormally_toggled(bool checked);
|
||||
|
||||
void on_powerSuspendTurnOffScreen_toggled(bool checked);
|
||||
|
||||
void on_powerSuspendHibernate_toggled(bool checked);
|
||||
|
||||
void on_powerButtonPressed_currentIndexChanged(int index);
|
||||
|
||||
public slots:
|
||||
void getNetworks();
|
||||
|
||||
|
|
|
@ -381,7 +381,7 @@
|
|||
<item>
|
||||
<widget class="AnimatedStackedWidget" name="pageStack">
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
<number>5</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="clockFrame">
|
||||
<property name="autoFillBackground">
|
||||
|
@ -699,14 +699,14 @@
|
|||
<second>0</second>
|
||||
<year>1969</year>
|
||||
<month>8</month>
|
||||
<day>6</day>
|
||||
<day>5</day>
|
||||
</datetime>
|
||||
</property>
|
||||
<property name="date">
|
||||
<date>
|
||||
<year>1969</year>
|
||||
<month>8</month>
|
||||
<day>6</day>
|
||||
<day>5</day>
|
||||
</date>
|
||||
</property>
|
||||
<property name="displayFormat">
|
||||
|
@ -2200,7 +2200,7 @@
|
|||
</sizepolicy>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>7</number>
|
||||
<number>8</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="StartupSettings">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_9">
|
||||
|
@ -2859,8 +2859,8 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>299</width>
|
||||
<height>462</height>
|
||||
<width>683</width>
|
||||
<height>687</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_54">
|
||||
|
@ -4739,6 +4739,12 @@
|
|||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line_7">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>1</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
|
@ -4839,6 +4845,12 @@
|
|||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line_9">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>1</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
|
@ -4871,7 +4883,13 @@
|
|||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="powerButtonPressed">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
|
@ -4936,6 +4954,14 @@
|
|||
<normaloff>.</normaloff>.</iconset>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Hibernate</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset theme="system-suspend-hibernate"/>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
|
@ -4947,6 +4973,111 @@
|
|||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line_54">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>1</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout_25">
|
||||
<property name="leftMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_112">
|
||||
<property name="text">
|
||||
<string>When suspending this device</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QWidget" name="widget_2" native="true">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_59">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="powerSuspendNormally">
|
||||
<property name="text">
|
||||
<string>Suspend nor&mally</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_113">
|
||||
<property name="text">
|
||||
<string>This will save power, but stop everything that you're doing until you wake your device. Recommended for most users</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="powerSuspendTurnOffScreen">
|
||||
<property name="text">
|
||||
<string>&Just turn off the screen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_114">
|
||||
<property name="text">
|
||||
<string>This will save a little power but continue to run any tasks you were doing. For example, music will continue playing. When you wake this device, it will wake immediately. Not recommended if you don't have a solid state drive as the drive will not be turned off while you're moving it around. Recommended for tablets and tablet PCs.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="powerSuspendHibernate">
|
||||
<property name="text">
|
||||
<string>Hibernate instead</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_115">
|
||||
<property name="text">
|
||||
<string>This will save a lot of power but will take a while to wake up again. Everything stops while your device is hibernating.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_9">
|
||||
<property name="orientation">
|
||||
|
|
|
@ -452,12 +452,29 @@ void EndSession(EndSessionWait::shutdownType type) {
|
|||
break;
|
||||
}
|
||||
case EndSessionWait::suspend: {
|
||||
QList<QVariant> arguments;
|
||||
arguments.append(true);
|
||||
//Depending on the suspend mode, do different things
|
||||
QSettings settings;
|
||||
switch (settings.value("power/suspendMode", 0).toInt()) {
|
||||
case 0: { //Suspend Normally
|
||||
QList<QVariant> arguments;
|
||||
arguments.append(true);
|
||||
|
||||
QDBusMessage message = QDBusMessage::createMethodCall("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", "Suspend");
|
||||
message.setArguments(arguments);
|
||||
QDBusConnection::systemBus().send(message);
|
||||
break;
|
||||
}
|
||||
case 1: { //Turn off the screen
|
||||
DBusEvents->LockScreen();
|
||||
EndSession(EndSessionWait::screenOff);
|
||||
break;
|
||||
}
|
||||
case 2: { //Hibernate
|
||||
EndSession(EndSessionWait::hibernate);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
QDBusMessage message = QDBusMessage::createMethodCall("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", "Suspend");
|
||||
message.setArguments(arguments);
|
||||
QDBusConnection::systemBus().send(message);
|
||||
break;
|
||||
}
|
||||
case EndSessionWait::hibernate: {
|
||||
|
@ -470,7 +487,17 @@ void EndSession(EndSessionWait::shutdownType type) {
|
|||
break;
|
||||
}
|
||||
case EndSessionWait::screenOff: {
|
||||
DPMSForceLevel(QX11Info::display(), DPMSModeOff);
|
||||
CARD16 mode;
|
||||
BOOL isDpmsOn;
|
||||
DPMSInfo(QX11Info::display(), &mode, &isDpmsOn);
|
||||
|
||||
if (isDpmsOn) {
|
||||
if (mode == DPMSModeOff) {
|
||||
DPMSForceLevel(QX11Info::display(), DPMSModeOn);
|
||||
} else {
|
||||
DPMSForceLevel(QX11Info::display(), DPMSModeOff);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,6 +33,74 @@ NativeEventFilter::NativeEventFilter(QObject* parent) : QObject(parent)
|
|||
Hotkeys->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
|
||||
Hotkeys->setAttribute(Qt::WA_ShowWithoutActivating, true);
|
||||
|
||||
powerButtonTimer = new QTimer();
|
||||
powerButtonTimer->setInterval(500);
|
||||
connect(powerButtonTimer, &QTimer::timeout, [=] {
|
||||
powerButtonTimer->stop();
|
||||
qDebug() << powerButtonCounter;
|
||||
if (!isEndSessionBoxShowing && powerButtonCounter == 1 && !powerPressed) {
|
||||
//Perform an action depending on what the user wants
|
||||
switch (settings.value("power/onPowerButtonPressed", 0).toInt()) {
|
||||
case 0: { //Ask what to do
|
||||
isEndSessionBoxShowing = true;
|
||||
|
||||
EndSessionWait* endSession;
|
||||
if (settings.value("input/touch", false).toBool()) {
|
||||
endSession = new EndSessionWait(EndSessionWait::slideOff);
|
||||
} else {
|
||||
endSession = new EndSessionWait(EndSessionWait::ask);
|
||||
}
|
||||
endSession->showFullScreen();
|
||||
endSession->exec();
|
||||
|
||||
isEndSessionBoxShowing = false;
|
||||
break;
|
||||
}
|
||||
case 1: { //Power Off
|
||||
EndSession(EndSessionWait::powerOff);
|
||||
break;
|
||||
}
|
||||
case 2: { //Reboot
|
||||
EndSession(EndSessionWait::reboot);
|
||||
break;
|
||||
}
|
||||
case 3: { //Log Out
|
||||
EndSession(EndSessionWait::logout);
|
||||
break;
|
||||
}
|
||||
case 4: { //Suspend
|
||||
EndSession(EndSessionWait::suspend);
|
||||
break;
|
||||
}
|
||||
case 5: { //Lock
|
||||
DBusEvents->LockScreen();
|
||||
break;
|
||||
}
|
||||
case 6: { //Turn off screen
|
||||
EndSession(EndSessionWait::screenOff);
|
||||
break;
|
||||
}
|
||||
case 7: { //Hibernate
|
||||
EndSession(EndSessionWait::hibernate);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
isEndSessionBoxShowing = true;
|
||||
|
||||
EndSessionWait* endSession;
|
||||
if (settings.value("input/touch", false).toBool()) {
|
||||
endSession = new EndSessionWait(EndSessionWait::slideOff);
|
||||
} else {
|
||||
endSession = new EndSessionWait(EndSessionWait::ask);
|
||||
}
|
||||
endSession->showFullScreen();
|
||||
endSession->exec();
|
||||
|
||||
isEndSessionBoxShowing = false;
|
||||
}
|
||||
});
|
||||
|
||||
//Capture required keys
|
||||
XGrabKey(QX11Info::display(), XKeysymToKeycode(QX11Info::display(), XF86XK_MonBrightnessUp), AnyModifier, RootWindow(QX11Info::display(), 0), true, GrabModeAsync, GrabModeAsync);
|
||||
XGrabKey(QX11Info::display(), XKeysymToKeycode(QX11Info::display(), XF86XK_MonBrightnessDown), AnyModifier, RootWindow(QX11Info::display(), 0), true, GrabModeAsync, GrabModeAsync);
|
||||
|
@ -254,6 +322,13 @@ bool NativeEventFilter::nativeEventFilter(const QByteArray &eventType, void *mes
|
|||
keyboardInterface.call("SetBrightness", kbdBrightness);
|
||||
|
||||
Hotkeys->show(QIcon::fromTheme("keyboard-brightness"), tr("Keyboard Brightness"), ((float) kbdBrightness / (float) maxKbdBrightness) * 100);
|
||||
} else if ((button->detail == XKeysymToKeycode(QX11Info::display(), XF86XK_PowerOff))) {
|
||||
powerPressed = true;
|
||||
powerButtonCounter++;
|
||||
if (!powerButtonTimer->isActive()) {
|
||||
powerButtonCounter = 1;
|
||||
powerButtonTimer->start();
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (event->response_type == XCB_KEY_RELEASE) {
|
||||
|
@ -289,10 +364,12 @@ bool NativeEventFilter::nativeEventFilter(const QByteArray &eventType, void *mes
|
|||
screenRecorder->start();
|
||||
}
|
||||
ignoreSuper = true;
|
||||
} else if ((button->detail == XKeysymToKeycode(QX11Info::display(), XF86XK_PowerOff)) ||
|
||||
(button->detail == XKeysymToKeycode(QX11Info::display(), XK_Delete) && (button->state == (ControlMask | Mod1Mask)))) { //Power Off
|
||||
} else if (button->detail == XKeysymToKeycode(QX11Info::display(), XF86XK_PowerOff)) { //Power Off
|
||||
powerPressed = false;
|
||||
} else if (button->detail == XKeysymToKeycode(QX11Info::display(), XK_Delete) && (button->state == (ControlMask | Mod1Mask))) {
|
||||
if (!isEndSessionBoxShowing) {
|
||||
isEndSessionBoxShowing = true;
|
||||
|
||||
EndSessionWait* endSession;
|
||||
if (settings.value("input/touch", false).toBool()) {
|
||||
endSession = new EndSessionWait(EndSessionWait::slideOff);
|
||||
|
@ -301,6 +378,7 @@ bool NativeEventFilter::nativeEventFilter(const QByteArray &eventType, void *mes
|
|||
}
|
||||
endSession->showFullScreen();
|
||||
endSession->exec();
|
||||
|
||||
isEndSessionBoxShowing = false;
|
||||
}
|
||||
} else if (button->detail == XKeysymToKeycode(QX11Info::display(), XF86XK_Sleep)) { //Suspend
|
||||
|
|
|
@ -74,6 +74,10 @@ private:
|
|||
|
||||
QSettings settings;
|
||||
QSettings* themeSettings = new QSettings("theSuite", "ts-qtplatform");
|
||||
|
||||
QTimer* powerButtonTimer = nullptr;
|
||||
int powerButtonCounter = 0;
|
||||
bool powerPressed = false;
|
||||
};
|
||||
|
||||
#endif // NATIVEEVENTFILTER_H
|
||||
|
|
|
@ -214,10 +214,18 @@ TRANSLATIONS += translations/vi_VN.ts \
|
|||
translations/cy_GB.ts \
|
||||
translations/fr_FR.ts
|
||||
|
||||
qtPrepareTool(LUPDATE, lupdate)
|
||||
genlang.commands = "$$LUPDATE -no-obsolete -source-language en_US $$_PRO_FILE_"
|
||||
|
||||
qtPrepareTool(LRELEASE, lrelease)
|
||||
rellang.commands = "$$LRELEASE -removeidentical $$_PRO_FILE_"
|
||||
QMAKE_EXTRA_TARGETS = genlang rellang
|
||||
PRE_TARGETDEPS = genlang rellang
|
||||
|
||||
unix {
|
||||
target.path = /usr/bin/
|
||||
|
||||
translations.files = translations/*
|
||||
translations.files = translations/*.qm
|
||||
xsession.path = /usr/share/xsessions
|
||||
|
||||
headers.files = statuscenter/statuscenterpane.h statuscenter/statuscenterpaneobject.h
|
||||
|
|
|
@ -9,6 +9,7 @@ class StatusCenterPane {
|
|||
virtual ~StatusCenterPane() {}
|
||||
|
||||
virtual QList<StatusCenterPaneObject*> availablePanes() = 0;
|
||||
virtual void loadLanguage(QString language) = 0;
|
||||
};
|
||||
|
||||
#define STATUS_CENTER_PANE_IID "org.thesuite.theshell.statuscenterpane"
|
||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
BIN
shell/translations/fr_FR.qm
Normal file
BIN
shell/translations/fr_FR.qm
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load diff
1
shell/translations/id_ID.qm
Normal file
1
shell/translations/id_ID.qm
Normal file
|
@ -0,0 +1 @@
|
|||
<クdハ<>箆!ソ`。スン
|
File diff suppressed because it is too large
Load diff
BIN
shell/translations/it_IT.qm
Normal file
BIN
shell/translations/it_IT.qm
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
BIN
shell/translations/nb_NO.qm
Normal file
BIN
shell/translations/nb_NO.qm
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
BIN
shell/translations/no_NO.qm
Normal file
BIN
shell/translations/no_NO.qm
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
BIN
shell/translations/ro_RO.qm
Normal file
BIN
shell/translations/ro_RO.qm
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
|
@ -29,7 +29,7 @@
|
|||
<item>
|
||||
<widget class="QStackedWidget" name="stackedWidget">
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="page_3">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
|
|
|
@ -107,6 +107,7 @@ int main(int argc, char *argv[])
|
|||
QCoreApplication::exit(0);
|
||||
} else {
|
||||
//Restart theShell
|
||||
theShellStdOut.append(tsProcess->readAllStandardError());
|
||||
|
||||
monitor->HideSplash();
|
||||
errorCount++;
|
||||
|
|
|
@ -23,6 +23,14 @@ DEFINES += QT_DEPRECATED_WARNINGS
|
|||
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||
|
||||
blueprint {
|
||||
DEFINES += "BLUEPRINT"
|
||||
|
||||
DEFINES += "SHAREDIR=\\\"/usr/share/theshellb/bluetoothpane/\\\""
|
||||
} else {
|
||||
DEFINES += "SHAREDIR=\\\"/usr/share/theshell/bluetoothpane/\\\""
|
||||
}
|
||||
|
||||
SOURCES += \
|
||||
plugin.cpp \
|
||||
bluetoothmanagement.cpp \
|
||||
|
@ -40,13 +48,48 @@ HEADERS += \
|
|||
transferslistmodel.h
|
||||
DISTFILES += BluetoothPane.json
|
||||
|
||||
TRANSLATIONS += translations/vi_VN.ts \
|
||||
translations/da_DK.ts \
|
||||
translations/es_ES.ts \
|
||||
translations/lt_LT.ts \
|
||||
translations/nl_NL.ts \
|
||||
translations/pl_PL.ts \
|
||||
translations/pt_BR.ts \
|
||||
translations/ru_RU.ts \
|
||||
translations/sv_SE.ts \
|
||||
translations/en_AU.ts \
|
||||
translations/en_US.ts \
|
||||
translations/en_GB.ts \
|
||||
translations/en_NZ.ts \
|
||||
translations/de_DE.ts \
|
||||
translations/id_ID.ts \
|
||||
translations/au_AU.ts \
|
||||
translations/it_IT.ts \
|
||||
translations/nb_NO.ts \
|
||||
translations/no_NO.ts \
|
||||
translations/ro_RO.ts \
|
||||
translations/cy_GB.ts \
|
||||
translations/fr_FR.ts
|
||||
|
||||
qtPrepareTool(LUPDATE, lupdate)
|
||||
genlang.commands = "$$LUPDATE -no-obsolete -source-language en_US $$_PRO_FILE_"
|
||||
|
||||
qtPrepareTool(LRELEASE, lrelease)
|
||||
rellang.commands = "$$LRELEASE -removeidentical $$_PRO_FILE_"
|
||||
QMAKE_EXTRA_TARGETS = genlang rellang
|
||||
PRE_TARGETDEPS = genlang rellang
|
||||
|
||||
unix {
|
||||
translations.files = translations/*.qm
|
||||
|
||||
blueprint {
|
||||
target.path = /usr/lib/theshellb/panes/
|
||||
translations.path = /usr/share/theshellb/bluetoothpane/translations
|
||||
} else {
|
||||
target.path = /usr/lib/theshell/panes/
|
||||
translations.path = /usr/share/theshell/bluetoothpane/translations
|
||||
}
|
||||
INSTALLS += target
|
||||
INSTALLS += target translations
|
||||
}
|
||||
|
||||
FORMS += \
|
||||
|
|
|
@ -87,7 +87,10 @@ int BluetoothManagement::position() {
|
|||
}
|
||||
|
||||
void BluetoothManagement::message(QString name, QVariantList args) {
|
||||
|
||||
if (name == "retranslate") {
|
||||
qDebug() << "Retranslating";
|
||||
ui->retranslateUi(this);
|
||||
}
|
||||
}
|
||||
|
||||
void BluetoothManagement::updateAdapters() {
|
||||
|
@ -393,3 +396,4 @@ void BluetoothManagement::on_cancelTransferButton_clicked()
|
|||
{
|
||||
currentTransfer.data()->cancel();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,11 +1,25 @@
|
|||
#include "plugin.h"
|
||||
|
||||
#include <QTranslator>
|
||||
#include <QLocale>
|
||||
|
||||
Plugin::Plugin(QObject *parent) :
|
||||
QObject(parent)
|
||||
{
|
||||
translator = new QTranslator;
|
||||
|
||||
panes.append(new BluetoothManagement());
|
||||
}
|
||||
|
||||
QList<StatusCenterPaneObject*> Plugin::availablePanes() {
|
||||
return panes;
|
||||
}
|
||||
|
||||
void Plugin::loadLanguage(QString language) {
|
||||
translator->load(language, QString(SHAREDIR) + "translations");
|
||||
QApplication::instance()->installTranslator(translator);
|
||||
|
||||
for (StatusCenterPaneObject* pane : panes) {
|
||||
pane->message("retranslate");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,8 +14,11 @@ class Plugin : public QObject, public StatusCenterPane
|
|||
explicit Plugin(QObject *parent = 0);
|
||||
|
||||
QList<StatusCenterPaneObject*> availablePanes();
|
||||
void loadLanguage(QString language);
|
||||
private:
|
||||
QList<StatusCenterPaneObject*> panes;
|
||||
|
||||
QTranslator* translator;
|
||||
};
|
||||
|
||||
#endif // PLUGIN_H
|
||||
|
|
1
statuscenter/BluetoothPane/translations/au_AU.qm
Normal file
1
statuscenter/BluetoothPane/translations/au_AU.qm
Normal file
|
@ -0,0 +1 @@
|
|||
<クdハ<>箆!ソ`。スン
|
1
statuscenter/BluetoothPane/translations/cy_GB.qm
Normal file
1
statuscenter/BluetoothPane/translations/cy_GB.qm
Normal file
|
@ -0,0 +1 @@
|
|||
<クdハ<>箆!ソ`。スン
|
1
statuscenter/BluetoothPane/translations/da_DK.qm
Normal file
1
statuscenter/BluetoothPane/translations/da_DK.qm
Normal file
|
@ -0,0 +1 @@
|
|||
<クdハ<>箆!ソ`。スン
|
BIN
statuscenter/BluetoothPane/translations/de_DE.qm
Normal file
BIN
statuscenter/BluetoothPane/translations/de_DE.qm
Normal file
Binary file not shown.
1
statuscenter/BluetoothPane/translations/en_AU.qm
Normal file
1
statuscenter/BluetoothPane/translations/en_AU.qm
Normal file
|
@ -0,0 +1 @@
|
|||
<クdハ<>箆!ソ`。スン
|
1
statuscenter/BluetoothPane/translations/en_GB.qm
Normal file
1
statuscenter/BluetoothPane/translations/en_GB.qm
Normal file
|
@ -0,0 +1 @@
|
|||
<クdハ<>箆!ソ`。スン
|
1
statuscenter/BluetoothPane/translations/en_NZ.qm
Normal file
1
statuscenter/BluetoothPane/translations/en_NZ.qm
Normal file
|
@ -0,0 +1 @@
|
|||
<クdハ<>箆!ソ`。スン
|
1
statuscenter/BluetoothPane/translations/en_US.qm
Normal file
1
statuscenter/BluetoothPane/translations/en_US.qm
Normal file
|
@ -0,0 +1 @@
|
|||
<クdハ<>箆!ソ`。スン
|
BIN
statuscenter/BluetoothPane/translations/es_ES.qm
Normal file
BIN
statuscenter/BluetoothPane/translations/es_ES.qm
Normal file
Binary file not shown.
BIN
statuscenter/BluetoothPane/translations/fr_FR.qm
Normal file
BIN
statuscenter/BluetoothPane/translations/fr_FR.qm
Normal file
Binary file not shown.
1
statuscenter/BluetoothPane/translations/id_ID.qm
Normal file
1
statuscenter/BluetoothPane/translations/id_ID.qm
Normal file
|
@ -0,0 +1 @@
|
|||
<クdハ<>箆!ソ`。スン
|
BIN
statuscenter/BluetoothPane/translations/it_IT.qm
Normal file
BIN
statuscenter/BluetoothPane/translations/it_IT.qm
Normal file
Binary file not shown.
BIN
statuscenter/BluetoothPane/translations/lt_LT.qm
Normal file
BIN
statuscenter/BluetoothPane/translations/lt_LT.qm
Normal file
Binary file not shown.
BIN
statuscenter/BluetoothPane/translations/nb_NO.qm
Normal file
BIN
statuscenter/BluetoothPane/translations/nb_NO.qm
Normal file
Binary file not shown.
BIN
statuscenter/BluetoothPane/translations/nl_NL.qm
Normal file
BIN
statuscenter/BluetoothPane/translations/nl_NL.qm
Normal file
Binary file not shown.
BIN
statuscenter/BluetoothPane/translations/no_NO.qm
Normal file
BIN
statuscenter/BluetoothPane/translations/no_NO.qm
Normal file
Binary file not shown.
BIN
statuscenter/BluetoothPane/translations/pt_BR.qm
Normal file
BIN
statuscenter/BluetoothPane/translations/pt_BR.qm
Normal file
Binary file not shown.
BIN
statuscenter/BluetoothPane/translations/ro_RO.qm
Normal file
BIN
statuscenter/BluetoothPane/translations/ro_RO.qm
Normal file
Binary file not shown.
BIN
statuscenter/BluetoothPane/translations/ru_RU.qm
Normal file
BIN
statuscenter/BluetoothPane/translations/ru_RU.qm
Normal file
Binary file not shown.
BIN
statuscenter/BluetoothPane/translations/sv_SE.qm
Normal file
BIN
statuscenter/BluetoothPane/translations/sv_SE.qm
Normal file
Binary file not shown.
BIN
statuscenter/BluetoothPane/translations/vi_VN.qm
Normal file
BIN
statuscenter/BluetoothPane/translations/vi_VN.qm
Normal file
Binary file not shown.
|
@ -10,3 +10,7 @@ Plugin::Plugin(QObject *parent) :
|
|||
QList<StatusCenterPaneObject*> Plugin::availablePanes() {
|
||||
return panes;
|
||||
}
|
||||
|
||||
void Plugin::loadLanguage(QString language) {
|
||||
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ class Plugin : public QObject, public StatusCenterPane
|
|||
explicit Plugin(QObject *parent = 0);
|
||||
|
||||
QList<StatusCenterPaneObject*> availablePanes();
|
||||
void loadLanguage(QString language);
|
||||
private:
|
||||
QList<StatusCenterPaneObject*> panes;
|
||||
};
|
||||
|
|
|
@ -9,3 +9,7 @@ Plugin::Plugin(QObject* parent) : QObject(parent)
|
|||
QList<StatusCenterPaneObject*> Plugin::availablePanes() {
|
||||
return panes;
|
||||
}
|
||||
|
||||
void Plugin::loadLanguage(QString language) {
|
||||
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ class Plugin : public QObject, public StatusCenterPane
|
|||
explicit Plugin(QObject* parent = nullptr);
|
||||
|
||||
QList<StatusCenterPaneObject*> availablePanes();
|
||||
void loadLanguage(QString language);
|
||||
private:
|
||||
QList<StatusCenterPaneObject*> panes;
|
||||
};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 4.7.0, 2018-09-01T10:11:00. -->
|
||||
<!-- Written by QtCreator 4.7.0, 2018-09-10T21:29:12. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
|
|
Loading…
Reference in a new issue