mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-28 07:54:49 +03:00
Merge branch 'master' of https://github.com/nextcloud/desktop
This commit is contained in:
commit
4cb45d5d6a
15 changed files with 143 additions and 88 deletions
|
@ -1,43 +1,3 @@
|
||||||
--- nextcloud-client-2.4.0.orig/src/gui/wizard/owncloudoauthcredspage.cpp
|
|
||||||
+++ nextcloud-client-2.4.0/src/gui/wizard/owncloudoauthcredspage.cpp
|
|
||||||
@@ -53,10 +53,8 @@ OwncloudOAuthCredsPage::OwncloudOAuthCredsPage()
|
|
||||||
_ui.openLinkButton->setContextMenuPolicy(Qt::CustomContextMenu);
|
|
||||||
QObject::connect(_ui.openLinkButton, &QWidget::customContextMenuRequested, [this](const QPoint &pos) {
|
|
||||||
auto menu = new QMenu(_ui.openLinkButton);
|
|
||||||
- menu->addAction(tr("Copy link to clipboard"), this, [this] {
|
|
||||||
- if (_asyncAuth)
|
|
||||||
- QApplication::clipboard()->setText(_asyncAuth->authorisationLink().toString(QUrl::FullyEncoded));
|
|
||||||
- });
|
|
||||||
+ auto action = menu->addAction(tr("Copy link to clipboard"));
|
|
||||||
+ connect(action, &QAction::triggered, this, &OwncloudOAuthCredsPage::copyLinkToClipboard);
|
|
||||||
menu->setAttribute(Qt::WA_DeleteOnClose);
|
|
||||||
menu->popup(_ui.openLinkButton->mapToGlobal(pos));
|
|
||||||
});
|
|
||||||
@@ -131,4 +129,11 @@ bool OwncloudOAuthCredsPage::isComplete() const
|
|
||||||
return false; /* We can never go forward manually */
|
|
||||||
}
|
|
||||||
|
|
||||||
+void OwncloudOAuthCredsPage::copyLinkToClipboard()
|
|
||||||
+{
|
|
||||||
+ if (_asyncAuth)
|
|
||||||
+ QApplication::clipboard()->setText(_asyncAuth->authorisationLink().toString(QUrl::FullyEncoded));
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
} // namespace OCC
|
|
||||||
--- nextcloud-client-2.4.0.orig/src/gui/wizard/owncloudoauthcredspage.h
|
|
||||||
+++ nextcloud-client-2.4.0/src/gui/wizard/owncloudoauthcredspage.h
|
|
||||||
@@ -57,6 +57,10 @@ public:
|
|
||||||
QString _refreshToken;
|
|
||||||
QScopedPointer<OAuth> _asyncAuth;
|
|
||||||
Ui_OwncloudOAuthCredsPage _ui;
|
|
||||||
+
|
|
||||||
+protected slots:
|
|
||||||
+ void copyLinkToClipboard();
|
|
||||||
+
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace OCC
|
|
||||||
--- nextcloud-client-2.5.3.orig/src/3rdparty/kmessagewidget/kmessagewidget.cpp 2019-07-26 18:40:34.949349387 +0000
|
--- nextcloud-client-2.5.3.orig/src/3rdparty/kmessagewidget/kmessagewidget.cpp 2019-07-26 18:40:34.949349387 +0000
|
||||||
+++ nextcloud-client-2.5.3/src/3rdparty/kmessagewidget/kmessagewidget.cpp 2019-07-26 18:41:39.866478051 +0000
|
+++ nextcloud-client-2.5.3/src/3rdparty/kmessagewidget/kmessagewidget.cpp 2019-07-26 18:41:39.866478051 +0000
|
||||||
@@ -105,6 +105,9 @@
|
@@ -105,6 +105,9 @@
|
||||||
|
|
|
@ -87,9 +87,36 @@ void setLaunchOnStartup_private(const QString &appName, const QString &guiName,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Right now only detection on toggle/startup, not when windows theme is switched while nextcloud is running
|
||||||
static inline bool hasDarkSystray_private()
|
static inline bool hasDarkSystray_private()
|
||||||
{
|
{
|
||||||
return true;
|
bool hasDarkSystray = true;
|
||||||
|
// Open registry key first, continue only on success (may be legitimately absent in earlier windows versions)
|
||||||
|
HKEY hKey;
|
||||||
|
LONG lRes = RegOpenKeyExW(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", 0, KEY_READ, &hKey);
|
||||||
|
|
||||||
|
// classical windows function - preserve buff size for DWORD, call ExW version, store regkey value in nResult
|
||||||
|
if (lRes == ERROR_SUCCESS) {
|
||||||
|
DWORD dwBufferSize(sizeof(DWORD));
|
||||||
|
DWORD nResult(0);
|
||||||
|
|
||||||
|
// https://docs.microsoft.com/en-us/windows/win32/api/winreg/nf-winreg-regqueryvalueexw
|
||||||
|
LONG nError = ::RegQueryValueExW(hKey,
|
||||||
|
L"SystemUsesLightTheme",
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
reinterpret_cast<LPBYTE>(&nResult),
|
||||||
|
&dwBufferSize);
|
||||||
|
|
||||||
|
// if RegQuery returned no error and light theme was found, change systray return value
|
||||||
|
if (nError == ERROR_SUCCESS && nResult == 1)
|
||||||
|
hasDarkSystray = false;
|
||||||
|
|
||||||
|
return hasDarkSystray;
|
||||||
|
} else {
|
||||||
|
// fallback to true if regkey could not be determined
|
||||||
|
return hasDarkSystray;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant Utility::registryGetKeyValue(HKEY hRootKey, const QString &subKey, const QString &valueName)
|
QVariant Utility::registryGetKeyValue(HKEY hRootKey, const QString &subKey, const QString &valueName)
|
||||||
|
|
|
@ -273,6 +273,9 @@ if(NOT BUILD_OWNCLOUD_OSX_BUNDLE)
|
||||||
endforeach(_file)
|
endforeach(_file)
|
||||||
install(FILES ${client_I18N} DESTINATION ${SHAREDIR}/${APPLICATION_EXECUTABLE}/i18n)
|
install(FILES ${client_I18N} DESTINATION ${SHAREDIR}/${APPLICATION_EXECUTABLE}/i18n)
|
||||||
else()
|
else()
|
||||||
|
file(GLOB_RECURSE VISUAL_ELEMENTS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-w10startmenu*")
|
||||||
|
install(FILES ${VISUAL_ELEMENTS} DESTINATION bin/visualelements)
|
||||||
|
install(FILES "${theme_dir}/${APPLICATION_EXECUTABLE}.VisualElementsManifest.xml" DESTINATION bin)
|
||||||
install(FILES ${client_I18N} DESTINATION i18n)
|
install(FILES ${client_I18N} DESTINATION i18n)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -46,21 +46,8 @@ Flow2AuthCredsPage::Flow2AuthCredsPage()
|
||||||
setTitle(WizardCommon::titleTemplate().arg(tr("Connect to %1").arg(Theme::instance()->appNameGUI())));
|
setTitle(WizardCommon::titleTemplate().arg(tr("Connect to %1").arg(Theme::instance()->appNameGUI())));
|
||||||
setSubTitle(WizardCommon::subTitleTemplate().arg(tr("Login in your browser (Login Flow v2)")));
|
setSubTitle(WizardCommon::subTitleTemplate().arg(tr("Login in your browser (Login Flow v2)")));
|
||||||
|
|
||||||
connect(_ui.openLinkButton, &QCommandLinkButton::clicked, [this] {
|
connect(_ui.openLinkButton, &QCommandLinkButton::clicked, this, &Flow2AuthCredsPage::slotOpenBrowser);
|
||||||
_ui.errorLabel->hide();
|
connect(_ui.copyLinkButton, &QCommandLinkButton::clicked, this, &Flow2AuthCredsPage::slotCopyLinkToClipboard);
|
||||||
if (_asyncAuth)
|
|
||||||
_asyncAuth->openBrowser();
|
|
||||||
});
|
|
||||||
_ui.openLinkButton->setContextMenuPolicy(Qt::CustomContextMenu);
|
|
||||||
QObject::connect(_ui.openLinkButton, &QWidget::customContextMenuRequested, [this](const QPoint &pos) {
|
|
||||||
auto menu = new QMenu(_ui.openLinkButton);
|
|
||||||
menu->addAction(tr("Copy link to clipboard"), this, [this] {
|
|
||||||
if (_asyncAuth)
|
|
||||||
QApplication::clipboard()->setText(_asyncAuth->authorisationLink().toString(QUrl::FullyEncoded));
|
|
||||||
});
|
|
||||||
menu->setAttribute(Qt::WA_DeleteOnClose);
|
|
||||||
menu->popup(_ui.openLinkButton->mapToGlobal(pos));
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Flow2AuthCredsPage::initializePage()
|
void Flow2AuthCredsPage::initializePage()
|
||||||
|
@ -146,4 +133,19 @@ bool Flow2AuthCredsPage::isComplete() const
|
||||||
return false; /* We can never go forward manually */
|
return false; /* We can never go forward manually */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Flow2AuthCredsPage::slotOpenBrowser()
|
||||||
|
{
|
||||||
|
if (_ui.errorLabel)
|
||||||
|
_ui.errorLabel->hide();
|
||||||
|
|
||||||
|
if (_asyncAuth)
|
||||||
|
_asyncAuth->openBrowser();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Flow2AuthCredsPage::slotCopyLinkToClipboard()
|
||||||
|
{
|
||||||
|
if (_asyncAuth)
|
||||||
|
QApplication::clipboard()->setText(_asyncAuth->authorisationLink().toString(QUrl::FullyEncoded));
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace OCC
|
} // namespace OCC
|
||||||
|
|
|
@ -56,6 +56,10 @@ public:
|
||||||
QString _appPassword;
|
QString _appPassword;
|
||||||
QScopedPointer<Flow2Auth> _asyncAuth;
|
QScopedPointer<Flow2Auth> _asyncAuth;
|
||||||
Ui_Flow2AuthCredsPage _ui;
|
Ui_Flow2AuthCredsPage _ui;
|
||||||
|
|
||||||
|
protected slots:
|
||||||
|
void slotOpenBrowser();
|
||||||
|
void slotCopyLinkToClipboard();
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace OCC
|
} // namespace OCC
|
||||||
|
|
|
@ -53,7 +53,20 @@
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCommandLinkButton" name="openLinkButton">
|
<widget class="QCommandLinkButton" name="openLinkButton">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Re-open Browser (or right-click to copy link)</string>
|
<string>Re-open Browser</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCommandLinkButton" name="copyLinkButton">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>50</weight>
|
||||||
|
<bold>false</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Copy link</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
|
@ -50,21 +50,8 @@ Flow2AuthWidget::Flow2AuthWidget(Account *account, QWidget *parent)
|
||||||
|
|
||||||
WizardCommon::initErrorLabel(_ui.errorLabel);
|
WizardCommon::initErrorLabel(_ui.errorLabel);
|
||||||
|
|
||||||
connect(_ui.openLinkButton, &QCommandLinkButton::clicked, [this] {
|
connect(_ui.openLinkButton, &QCommandLinkButton::clicked, this, &Flow2AuthWidget::slotOpenBrowser);
|
||||||
_ui.errorLabel->hide();
|
connect(_ui.copyLinkButton, &QCommandLinkButton::clicked, this, &Flow2AuthWidget::slotCopyLinkToClipboard);
|
||||||
if (_asyncAuth)
|
|
||||||
_asyncAuth->openBrowser();
|
|
||||||
});
|
|
||||||
_ui.openLinkButton->setContextMenuPolicy(Qt::CustomContextMenu);
|
|
||||||
QObject::connect(_ui.openLinkButton, &QWidget::customContextMenuRequested, [this](const QPoint &pos) {
|
|
||||||
auto menu = new QMenu(_ui.openLinkButton);
|
|
||||||
menu->addAction(tr("Copy link to clipboard"), this, [this] {
|
|
||||||
if (_asyncAuth)
|
|
||||||
QApplication::clipboard()->setText(_asyncAuth->authorisationLink().toString(QUrl::FullyEncoded));
|
|
||||||
});
|
|
||||||
menu->setAttribute(Qt::WA_DeleteOnClose);
|
|
||||||
menu->popup(_ui.openLinkButton->mapToGlobal(pos));
|
|
||||||
});
|
|
||||||
|
|
||||||
_asyncAuth.reset(new Flow2Auth(_account, this));
|
_asyncAuth.reset(new Flow2Auth(_account, this));
|
||||||
connect(_asyncAuth.data(), &Flow2Auth::result, this, &Flow2AuthWidget::asyncAuthResult, Qt::QueuedConnection);
|
connect(_asyncAuth.data(), &Flow2Auth::result, this, &Flow2AuthWidget::asyncAuthResult, Qt::QueuedConnection);
|
||||||
|
@ -110,4 +97,19 @@ Flow2AuthWidget::~Flow2AuthWidget() {
|
||||||
_user.clear();
|
_user.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Flow2AuthWidget::slotOpenBrowser()
|
||||||
|
{
|
||||||
|
if (_ui.errorLabel)
|
||||||
|
_ui.errorLabel->hide();
|
||||||
|
|
||||||
|
if (_asyncAuth)
|
||||||
|
_asyncAuth->openBrowser();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Flow2AuthWidget::slotCopyLinkToClipboard()
|
||||||
|
{
|
||||||
|
if (_asyncAuth)
|
||||||
|
QApplication::clipboard()->setText(_asyncAuth->authorisationLink().toString(QUrl::FullyEncoded));
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace OCC
|
||||||
|
|
|
@ -45,6 +45,10 @@ private:
|
||||||
QString _appPassword;
|
QString _appPassword;
|
||||||
QScopedPointer<Flow2Auth> _asyncAuth;
|
QScopedPointer<Flow2Auth> _asyncAuth;
|
||||||
Ui_Flow2AuthWidget _ui;
|
Ui_Flow2AuthWidget _ui;
|
||||||
|
|
||||||
|
protected slots:
|
||||||
|
void slotOpenBrowser();
|
||||||
|
void slotCopyLinkToClipboard();
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,7 +65,20 @@
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCommandLinkButton" name="openLinkButton">
|
<widget class="QCommandLinkButton" name="openLinkButton">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Re-open Browser (or right-click to copy link)</string>
|
<string>Re-open Browser</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCommandLinkButton" name="copyLinkButton">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>50</weight>
|
||||||
|
<bold>false</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Copy link</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
|
@ -45,21 +45,8 @@ OwncloudOAuthCredsPage::OwncloudOAuthCredsPage()
|
||||||
setTitle(WizardCommon::titleTemplate().arg(tr("Connect to %1").arg(Theme::instance()->appNameGUI())));
|
setTitle(WizardCommon::titleTemplate().arg(tr("Connect to %1").arg(Theme::instance()->appNameGUI())));
|
||||||
setSubTitle(WizardCommon::subTitleTemplate().arg(tr("Login in your browser")));
|
setSubTitle(WizardCommon::subTitleTemplate().arg(tr("Login in your browser")));
|
||||||
|
|
||||||
connect(_ui.openLinkButton, &QCommandLinkButton::clicked, [this] {
|
connect(_ui.openLinkButton, &QCommandLinkButton::clicked, this, &OwncloudOAuthCredsPage::slotOpenBrowser);
|
||||||
_ui.errorLabel->hide();
|
connect(_ui.copyLinkButton, &QCommandLinkButton::clicked, this, &OwncloudOAuthCredsPage::slotCopyLinkToClipboard);
|
||||||
if (_asyncAuth)
|
|
||||||
_asyncAuth->openBrowser();
|
|
||||||
});
|
|
||||||
_ui.openLinkButton->setContextMenuPolicy(Qt::CustomContextMenu);
|
|
||||||
QObject::connect(_ui.openLinkButton, &QWidget::customContextMenuRequested, [this](const QPoint &pos) {
|
|
||||||
auto menu = new QMenu(_ui.openLinkButton);
|
|
||||||
menu->addAction(tr("Copy link to clipboard"), this, [this] {
|
|
||||||
if (_asyncAuth)
|
|
||||||
QApplication::clipboard()->setText(_asyncAuth->authorisationLink().toString(QUrl::FullyEncoded));
|
|
||||||
});
|
|
||||||
menu->setAttribute(Qt::WA_DeleteOnClose);
|
|
||||||
menu->popup(_ui.openLinkButton->mapToGlobal(pos));
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OwncloudOAuthCredsPage::initializePage()
|
void OwncloudOAuthCredsPage::initializePage()
|
||||||
|
@ -133,4 +120,19 @@ bool OwncloudOAuthCredsPage::isComplete() const
|
||||||
return false; /* We can never go forward manually */
|
return false; /* We can never go forward manually */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OwncloudOAuthCredsPage::slotOpenBrowser()
|
||||||
|
{
|
||||||
|
if (_ui.errorLabel)
|
||||||
|
_ui.errorLabel->hide();
|
||||||
|
|
||||||
|
if (_asyncAuth)
|
||||||
|
_asyncAuth->openBrowser();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OwncloudOAuthCredsPage::slotCopyLinkToClipboard()
|
||||||
|
{
|
||||||
|
if (_asyncAuth)
|
||||||
|
QApplication::clipboard()->setText(_asyncAuth->authorisationLink().toString(QUrl::FullyEncoded));
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace OCC
|
} // namespace OCC
|
||||||
|
|
|
@ -57,6 +57,10 @@ public:
|
||||||
QString _refreshToken;
|
QString _refreshToken;
|
||||||
QScopedPointer<OAuth> _asyncAuth;
|
QScopedPointer<OAuth> _asyncAuth;
|
||||||
Ui_OwncloudOAuthCredsPage _ui;
|
Ui_OwncloudOAuthCredsPage _ui;
|
||||||
|
|
||||||
|
protected slots:
|
||||||
|
void slotOpenBrowser();
|
||||||
|
void slotCopyLinkToClipboard();
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace OCC
|
} // namespace OCC
|
||||||
|
|
|
@ -57,6 +57,19 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCommandLinkButton" name="copyLinkButton">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>50</weight>
|
||||||
|
<bold>false</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Copy link</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<spacer name="verticalSpacer">
|
<spacer name="verticalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
|
|
BIN
theme/colored/150-Nextcloud-w10startmenu.png
Normal file
BIN
theme/colored/150-Nextcloud-w10startmenu.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.9 KiB |
BIN
theme/colored/70-Nextcloud-w10startmenu.png
Normal file
BIN
theme/colored/70-Nextcloud-w10startmenu.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4 KiB |
8
theme/nextcloud.VisualElementsManifest.xml
Normal file
8
theme/nextcloud.VisualElementsManifest.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<Application xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
|
||||||
|
<VisualElements
|
||||||
|
BackgroundColor="#151e3d"
|
||||||
|
ForegroundText="light"
|
||||||
|
ShowNameOnSquare150x150Logo="on"
|
||||||
|
Square150x150Logo="visualelements\150-Nextcloud-w10startmenu.png"
|
||||||
|
Square70x70Logo="visualelements\70-Nextcloud-w10startmenu.png"/>
|
||||||
|
</Application>
|
Loading…
Reference in a new issue