Skip to content

Commit

Permalink
last current step
Browse files Browse the repository at this point in the history
beware this is messy

Signed-off-by: Matthieu Gallien <[email protected]>
  • Loading branch information
mgallien committed Oct 7, 2022
1 parent e3670b7 commit 75efa15
Show file tree
Hide file tree
Showing 49 changed files with 486 additions and 456 deletions.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ project(client)
include(FeatureSummary)

set(BIN_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
set(QT_QML_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/qml)

include(${CMAKE_SOURCE_DIR}/NEXTCLOUD.cmake)

Expand Down
2 changes: 1 addition & 1 deletion resources.qrc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<RCC>
<qresource prefix="/qml">
<qresource prefix="/qmlold">
<file>src/gui/UserStatusSelector.qml</file>
<file>src/gui/UserStatusSelectorPage.qml</file>
<file>src/gui/EmojiPicker.qml</file>
Expand Down
12 changes: 12 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,18 @@ set_package_properties(Qt${QT_VERSION_MAJOR}Concurrent PROPERTIES
TYPE REQUIRED
)

find_package(Qt${QT_VERSION_MAJOR}WebSockets ${REQUIRED_QT_VERSION} CONFIG QUIET)
set_package_properties(Qt${QT_VERSION_MAJOR}WebSockets PROPERTIES
DESCRIPTION "Qt${QT_VERSION_MAJOR} WebSockets component."
TYPE REQUIRED
)

find_package(Qt${QT_VERSION_MAJOR}Core5Compat ${REQUIRED_QT_VERSION} CONFIG QUIET)
set_package_properties(Qt${QT_VERSION_MAJOR}Core5Compat PROPERTIES
DESCRIPTION "Qt${QT_VERSION_MAJOR} Core5Compat component."
TYPE REQUIRED
)

find_package(Qt${QT_VERSION_MAJOR}WebEngineWidgets ${REQUIRED_QT_VERSION} CONFIG QUIET)
if(APPLE)
set_package_properties(Qt${QT_VERSION_MAJOR}WebEngineWidgets PROPERTIES
Expand Down
3 changes: 0 additions & 3 deletions src/cmd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,6 @@ target_link_libraries(cmdCore
Qt::Network
)

# Need tokenizer for netrc parser
target_include_directories(cmdCore PRIVATE ${CMAKE_SOURCE_DIR}/src/3rdparty/qtokenizer)

if(UNIX AND NOT APPLE)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE")
Expand Down
20 changes: 9 additions & 11 deletions src/cmd/netrcparser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@
#include <QDir>
#include <QFile>
#include <QTextStream>

#include <qtokenizer.h>
#include <QStringTokenizer>

#include <QDebug>

Expand Down Expand Up @@ -59,33 +58,32 @@ bool NetrcParser::parse()
}
QString content = netrc.readAll();

QStringTokenizer tokenizer(content, " \n\t");
tokenizer.setQuoteCharacters("\"'");
auto tokenizer = QStringTokenizer{content, u" \n\t"};

LoginPair pair;
QString machine;
bool isDefault = false;
while (tokenizer.hasNext()) {
QString key = tokenizer.next();
for(auto itToken = tokenizer.cbegin(); itToken != tokenizer.cend(); ++itToken) {
const auto key = *itToken;
if (key == defaultKeyword) {
tryAddEntryAndClear(machine, pair, isDefault);
isDefault = true;
continue; // don't read a value
}

if (!tokenizer.hasNext()) {
if (itToken != tokenizer.cend()) {
qDebug() << "error fetching value for" << key;
return false;
}
QString value = tokenizer.next();
auto value = *(++itToken);

if (key == machineKeyword) {
tryAddEntryAndClear(machine, pair, isDefault);
machine = value;
machine = value.toString();
} else if (key == loginKeyword) {
pair.first = value;
pair.first = value.toString();
} else if (key == passwordKeyword) {
pair.second = value;
pair.second = value.toString();
} // ignore unsupported tokens
}
tryAddEntryAndClear(machine, pair, isDefault);
Expand Down
2 changes: 1 addition & 1 deletion src/common/filesystembase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ bool FileSystem::fileExists(const QString &filename, const QFileInfo &fileInfo)
#ifdef Q_OS_WIN
QString FileSystem::fileSystemForPath(const QString &path)
{
// See also QStorageInfo (Qt >=5.4) and GetVolumeInformationByHandleW (>= Vista)
// See also QStorageInfo (Qt${QT_VERSION_MAJOR} >=5.4) and GetVolumeInformationByHandleW (>= Vista)
QString drive = path.left(2);
if (!drive.endsWith(QLatin1Char(':')))
return QString();
Expand Down
2 changes: 1 addition & 1 deletion src/common/utility.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ qint64 Utility::freeDiskSpace(const QString &path)
QString Utility::compactFormatDouble(double value, int prec, const QString &unit)
{
QLocale locale = QLocale::system();
QChar decPoint = locale.decimalPoint();
auto decPoint = locale.decimalPoint();
QString str = locale.toString(value, 'f', prec);
while (str.endsWith(QLatin1Char('0')) || str.endsWith(decPoint)) {
if (str.endsWith(decPoint)) {
Expand Down
1 change: 0 additions & 1 deletion src/common/utility_unix.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,6 @@ void setLaunchOnStartup_private(const QString &appName, const QString &guiName,
const QString executablePath = runningInsideAppImage ? appImagePath : QCoreApplication::applicationFilePath();

QTextStream ts(&iniFile);
ts.setCodec("UTF-8");
ts << QLatin1String("[Desktop Entry]\n")
<< QLatin1String("Name=") << guiName << QLatin1Char('\n')
<< QLatin1String("GenericName=") << QLatin1String("File Synchronizer\n")
Expand Down
3 changes: 1 addition & 2 deletions src/gui/BasicComboBox.qml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,9 @@
*/

import QtQuick 2.15
import QtQuick.Dialogs 1.3
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15
import QtGraphicalEffects 1.0
import Qt5Compat.GraphicalEffects

import Style 1.0

Expand Down
73 changes: 67 additions & 6 deletions src/gui/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
project(gui)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Svg Qml Quick QuickControls2 Xml Network)
find_package(KF5Archive REQUIRED)

set(QT_QML_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/qml)

if(QUICK_COMPILER)
if (${QT_VERSION_MAJOR} STREQUAL "6")
Expand Down Expand Up @@ -357,10 +358,6 @@ set( final_src
${3rdparty_MOC}
)

if(Qt5Keychain_FOUND)
list(APPEND libsync_LINK_TARGETS qt5keychain)
endif()

# add executable icon on windows and osx
include(GenerateIconsUtils)

Expand Down Expand Up @@ -519,7 +516,6 @@ target_link_libraries(nextcloudCore
Qt::Qml
Qt::Quick
Qt::QuickControls2
KF5::Archive
)

add_subdirectory(socketapi)
Expand All @@ -534,6 +530,71 @@ set_target_properties(nextcloudCore
AUTOMOC ON
)

qt_add_library(desktopclientQmlStyle STATIC)
set_target_properties(desktopclientQmlStyle
PROPERTIES
AUTOUIC ON
AUTOMOC ON
)
target_link_libraries(nextcloudCore PUBLIC desktopclientQmlStyle)
qt_add_qml_module(desktopclientQmlStyle
URI Style
OUTPUT_DIRECTORY Style
VERSION 1.0
QML_FILES
../../theme/Style/Style.qml
)

qt_add_library(desktopclientQml STATIC)
set_target_properties(desktopclientQml
PROPERTIES
AUTOUIC ON
AUTOMOC ON
)
target_link_libraries(nextcloudCore PUBLIC desktopclientQml)
qt_add_qml_module(desktopclientQml
URI com.nextcloud.desktopclient
OUTPUT_DIRECTORY com/nextcloud/desktopclient
VERSION 1.0
QML_FILES
UserStatusSelector.qml
UserStatusSelectorPage.qml
EmojiPicker.qml
UserStatusSelectorButton.qml
PredefinedStatusButton.qml
BasicComboBox.qml
ErrorBox.qml
tray/Window.qml
tray/UserLine.qml
tray/HeaderButton.qml
tray/SyncStatus.qml
tray/ActivityActionButton.qml
tray/ActivityItem.qml
tray/AutoSizingMenu.qml
tray/ActivityList.qml
tray/FileActivityDialog.qml
tray/UnifiedSearchInputContainer.qml
tray/UnifiedSearchResultFetchMoreTrigger.qml
tray/UnifiedSearchResultItem.qml
tray/UnifiedSearchResultItemSkeleton.qml
tray/UnifiedSearchResultItemSkeletonContainer.qml
tray/UnifiedSearchResultItemSkeletonGradientRectangle.qml
tray/UnifiedSearchResultListItem.qml
tray/UnifiedSearchResultNothingFound.qml
tray/UnifiedSearchResultSectionItem.qml
tray/CustomButton.qml
tray/NCButtonContents.qml
tray/NCButtonBackground.qml
tray/TextButtonContents.qml
tray/ActivityItemContextMenu.qml
tray/ActivityItemActions.qml
tray/ActivityItemContent.qml
tray/TalkReplyTextField.qml
tray/CallNotificationDialog.qml
tray/NCBusyIndicator.qml
tray/NCToolTip.qml
)

target_include_directories(nextcloudCore
PUBLIC
${CMAKE_SOURCE_DIR}/src/3rdparty/QProgressIndicator
Expand Down
1 change: 0 additions & 1 deletion src/gui/PredefinedStatusButton.qml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
*/

import QtQuick 2.15
import QtQuick.Dialogs 1.3
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15

Expand Down
4 changes: 2 additions & 2 deletions src/gui/UserStatusSelector.qml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
* for more details.
*/

import QtQuick 2.6
import QtQuick.Dialogs 1.3
import QtQml
import QtQuick
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15
import QtQuick.Window 2.15
Expand Down
1 change: 0 additions & 1 deletion src/gui/UserStatusSelectorButton.qml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
*/

import QtQuick 2.6
import QtQuick.Dialogs 1.3
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15

Expand Down
2 changes: 1 addition & 1 deletion src/gui/accountsettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent)
addAction(syncNowAction);

auto *syncNowWithRemoteDiscovery = new QAction(this);
syncNowWithRemoteDiscovery->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_F6));
syncNowWithRemoteDiscovery->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_F6));
connect(syncNowWithRemoteDiscovery, &QAction::triggered, this, &AccountSettings::slotScheduleCurrentFolderForceRemoteDiscovery);
addAction(syncNowWithRemoteDiscovery);

Expand Down
11 changes: 6 additions & 5 deletions src/gui/application.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ Application::Application(int &argc, char **argv)
{
_startedAt.start();

QRandomGenerator::global()->seed(std::random_device()());
// QRandomGenerator::global()->seed(std::random_device()());

#ifdef Q_OS_WIN
// Ensure OpenSSL config file is only loaded from app directory
Expand All @@ -219,7 +219,7 @@ Application::Application(int &argc, char **argv)
setOrganizationDomain(QLatin1String(APPLICATION_REV_DOMAIN));

// setDesktopFilename to provide wayland compatibility (in general: conformance with naming standards)
// but only on Qt >= 5.7, where setDesktopFilename was introduced
// but only on Qt${QT_VERSION_MAJOR} >= 5.7, where setDesktopFilename was introduced
#if (QT_VERSION >= 0x050700)
QString desktopFileName = QString(QLatin1String(LINUX_APPLICATION_ID)
+ QLatin1String(".desktop"));
Expand Down Expand Up @@ -382,7 +382,7 @@ Application::Application(int &argc, char **argv)
QTimer::singleShot(0, this, &Application::slotCheckConnection);

// Can't use onlineStateChanged because it is always true on modern systems because of many interfaces
connect(&_networkConfigurationManager, &QNetworkConfigurationManager::configurationChanged,
connect(QNetworkInformation::instance(), &QNetworkInformation::reachabilityChanged,
this, &Application::slotSystemOnlineConfigurationChanged);

#if defined(BUILD_UPDATER)
Expand Down Expand Up @@ -468,9 +468,10 @@ void Application::slotCleanup()
// FIXME: This is not ideal yet since a ConnectionValidator might already be running and is in
// progress of timing out in some seconds.
// Maybe we need 2 validators, one triggered by timer, one by network configuration changes?
void Application::slotSystemOnlineConfigurationChanged(QNetworkConfiguration cnf)
void Application::slotSystemOnlineConfigurationChanged()
{
if (cnf.state() & QNetworkConfiguration::Active) {
if (QNetworkInformation::instance()->reachability() == QNetworkInformation::Reachability::Site ||
QNetworkInformation::instance()->reachability() == QNetworkInformation::Reachability::Online) {
const auto list = AccountManager::instance()->accounts();
for (const auto &accountState : list) {
accountState->systemOnlineConfigurationChanged();
Expand Down
5 changes: 2 additions & 3 deletions src/gui/application.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include <QQueue>
#include <QTimer>
#include <QElapsedTimer>
#include <QNetworkConfigurationManager>
#include <QNetworkInformation>

#include "qtsingleapplication.h"

Expand Down Expand Up @@ -106,7 +106,7 @@ protected slots:
void slotCleanup();
void slotAccountStateAdded(AccountState *accountState);
void slotAccountStateRemoved(AccountState *accountState);
void slotSystemOnlineConfigurationChanged(QNetworkConfiguration);
void slotSystemOnlineConfigurationChanged();
void slotGuiIsShowingSettings();

private:
Expand Down Expand Up @@ -144,7 +144,6 @@ protected slots:

ClientProxy _proxy;

QNetworkConfigurationManager _networkConfigurationManager;
QTimer _checkConnectionTimer;

#if defined(WITH_CRASHREPORTER)
Expand Down
2 changes: 1 addition & 1 deletion src/gui/folderstatusdelegate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem &
pBarOpt.minimum = 0;
pBarOpt.maximum = 100;
pBarOpt.progress = overallPercent;
pBarOpt.orientation = Qt::Horizontal;
// pBarOpt.orientation = Qt::Horizontal;
pBarOpt.rect = QStyle::visualRect(option.direction, option.rect, pBRect);
QApplication::style()->drawControl(QStyle::CE_ProgressBar, &pBarOpt, painter, option.widget);

Expand Down
1 change: 1 addition & 0 deletions src/gui/folderwizard.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
#include <QEvent>
#include <QCheckBox>
#include <QMessageBox>
#include <QStandardPaths>

#include <cstdlib>

Expand Down
Loading

0 comments on commit 75efa15

Please sign in to comment.