mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
Merge branch 'master' of gitorious.org:owncloud/mirall
This commit is contained in:
commit
0112bb1e05
@ -72,7 +72,6 @@ Application::Application(int &argc, char **argv) :
|
||||
_networkMgr(new QNetworkConfigurationManager(this)),
|
||||
#endif
|
||||
_contextMenu(0),
|
||||
_ocInfo(0),
|
||||
_updateDetector(0),
|
||||
_helpOnly(false)
|
||||
{
|
||||
@ -91,12 +90,12 @@ Application::Application(int &argc, char **argv) :
|
||||
setupLogBrowser();
|
||||
processEvents();
|
||||
|
||||
QTranslator *qtTranslator = new QTranslator;
|
||||
QTranslator *qtTranslator = new QTranslator(this);
|
||||
qtTranslator->load("qt_" + QLocale::system().name(),
|
||||
QLibraryInfo::location(QLibraryInfo::TranslationsPath));
|
||||
installTranslator(qtTranslator);
|
||||
|
||||
QTranslator *mirallTranslator = new QTranslator;
|
||||
QTranslator *mirallTranslator = new QTranslator(this);
|
||||
#ifdef Q_OS_LINUX
|
||||
// FIXME - proper path!
|
||||
mirallTranslator->load("mirall_" + QLocale::system().name(), QLatin1String("/usr/share/mirall/i18n/"));
|
||||
@ -124,17 +123,16 @@ Application::Application(int &argc, char **argv) :
|
||||
|
||||
_folderWizard = new FolderWizard( 0, _theme );
|
||||
|
||||
_ocInfo = new ownCloudInfo( QString(), this );
|
||||
connect( _ocInfo,SIGNAL(ownCloudInfoFound(QString,QString,QString,QString)),
|
||||
connect( ownCloudInfo::instance(),SIGNAL(ownCloudInfoFound(QString,QString,QString,QString)),
|
||||
SLOT(slotOwnCloudFound(QString,QString,QString,QString)));
|
||||
|
||||
connect( _ocInfo,SIGNAL(noOwncloudFound(QNetworkReply*)),
|
||||
connect( ownCloudInfo::instance(),SIGNAL(noOwncloudFound(QNetworkReply*)),
|
||||
SLOT(slotNoOwnCloudFound(QNetworkReply*)));
|
||||
|
||||
connect( _ocInfo,SIGNAL(ownCloudDirExists(QString,QNetworkReply*)),
|
||||
connect( ownCloudInfo::instance(),SIGNAL(ownCloudDirExists(QString,QNetworkReply*)),
|
||||
this,SLOT(slotAuthCheck(QString,QNetworkReply*)));
|
||||
|
||||
_owncloudSetupWizard = new OwncloudSetupWizard( _folderMan, _theme );
|
||||
_owncloudSetupWizard = new OwncloudSetupWizard( _folderMan, _theme, this );
|
||||
connect( _owncloudSetupWizard, SIGNAL(ownCloudWizardDone(int)), SLOT(slotStartFolderSetup(int)));
|
||||
|
||||
_statusDialog = new StatusDialog( _theme );
|
||||
@ -187,7 +185,6 @@ Application::~Application()
|
||||
delete _networkMgr;
|
||||
#endif
|
||||
delete _folderMan;
|
||||
delete _ocInfo;
|
||||
delete _tray;
|
||||
}
|
||||
|
||||
@ -201,8 +198,8 @@ void Application::slotStartUpdateDetector()
|
||||
void Application::slotStartFolderSetup( int result )
|
||||
{
|
||||
if( result == QDialog::Accepted ) {
|
||||
if( _ocInfo->isConfigured() ) {
|
||||
_ocInfo->checkInstallation();
|
||||
if( ownCloudInfo::instance()->isConfigured() ) {
|
||||
ownCloudInfo::instance()->checkInstallation();
|
||||
} else {
|
||||
QMessageBox::warning(0, tr("No ownCloud Configuration"),
|
||||
tr("<p>No server connection has been configured for this ownCloud client.</p>"
|
||||
@ -247,7 +244,7 @@ void Application::slotNoOwnCloudFound( QNetworkReply* reply )
|
||||
void Application::slotCheckAuthentication()
|
||||
{
|
||||
qDebug() << "# checking for authentication settings.";
|
||||
_ocInfo->getRequest("/", true ); // this call needs to be authenticated.
|
||||
ownCloudInfo::instance()->getRequest("/", true ); // this call needs to be authenticated.
|
||||
// simply GET the webdav root, will fail if credentials are wrong.
|
||||
// continue in slotAuthCheck here :-)
|
||||
}
|
||||
@ -675,7 +672,7 @@ void Application::computeOverallSyncStatus()
|
||||
switch( syncStatus ) {
|
||||
case SyncResult::Undefined:
|
||||
if ( overallResult.status() != SyncResult::Error ) {
|
||||
overallResult = SyncResult::Error;
|
||||
overallResult.setStatus(SyncResult::Error);
|
||||
}
|
||||
folderMessage = tr( "Undefined State." );
|
||||
break;
|
||||
|
||||
@ -108,7 +108,6 @@ private:
|
||||
FolderMan *_folderMan;
|
||||
Theme *_theme;
|
||||
QSignalMapper *_folderOpenActionMapper;
|
||||
ownCloudInfo *_ocInfo;
|
||||
UpdateDetector *_updateDetector;
|
||||
QMap<Folder*, QString> _overallStatusStrings;
|
||||
LogBrowser *_logBrowser;
|
||||
|
||||
@ -173,11 +173,9 @@ FolderWizardTargetPage::FolderWizardTargetPage()
|
||||
_timer->setSingleShot( true );
|
||||
connect( _timer, SIGNAL(timeout()), SLOT(slotTimerFires()));
|
||||
|
||||
_ownCloudDirCheck = new ownCloudInfo;
|
||||
|
||||
connect( _ownCloudDirCheck, SIGNAL(ownCloudDirExists(QString,QNetworkReply*)),
|
||||
connect( ownCloudInfo::instance(), SIGNAL(ownCloudDirExists(QString,QNetworkReply*)),
|
||||
SLOT(slotDirCheckReply(QString,QNetworkReply*)));
|
||||
connect( _ownCloudDirCheck, SIGNAL(webdavColCreated(QNetworkReply::NetworkError)),
|
||||
connect( ownCloudInfo::instance(), SIGNAL(webdavColCreated(QNetworkReply::NetworkError)),
|
||||
SLOT(slotCreateRemoteFolderFinished( QNetworkReply::NetworkError )));
|
||||
|
||||
#if QT_Version >= 0x040700
|
||||
@ -205,7 +203,7 @@ void FolderWizardTargetPage::slotTimerFires()
|
||||
{
|
||||
const QString folder = _ui.OCFolderLineEdit->text();
|
||||
qDebug() << "Querying folder " << folder;
|
||||
_ownCloudDirCheck->getWebDAVPath( folder );
|
||||
ownCloudInfo::instance()->getWebDAVPath( folder );
|
||||
}
|
||||
|
||||
void FolderWizardTargetPage::slotDirCheckReply(const QString &url, QNetworkReply *reply)
|
||||
@ -229,7 +227,7 @@ void FolderWizardTargetPage::slotCreateRemoteFolder()
|
||||
if( folder.isEmpty() ) return;
|
||||
|
||||
qDebug() << "creating folder on ownCloud: " << folder;
|
||||
_ownCloudDirCheck->mkdirRequest( folder );
|
||||
ownCloudInfo::instance()->mkdirRequest( folder );
|
||||
}
|
||||
|
||||
void FolderWizardTargetPage::slotCreateRemoteFolderFinished( QNetworkReply::NetworkError error )
|
||||
@ -249,7 +247,6 @@ void FolderWizardTargetPage::slotCreateRemoteFolderFinished( QNetworkReply::Netw
|
||||
|
||||
FolderWizardTargetPage::~FolderWizardTargetPage()
|
||||
{
|
||||
delete _ownCloudDirCheck;
|
||||
}
|
||||
|
||||
bool FolderWizardTargetPage::isComplete() const
|
||||
@ -286,7 +283,7 @@ void FolderWizardTargetPage::initializePage()
|
||||
showWarn();
|
||||
|
||||
/* check the owncloud configuration file and query the ownCloud */
|
||||
ownCloudInfo *ocInfo = new ownCloudInfo( QString(), this );
|
||||
ownCloudInfo *ocInfo = ownCloudInfo::instance();
|
||||
if( ocInfo->isConfigured() ) {
|
||||
connect(ocInfo,SIGNAL(ownCloudInfoFound(QString,QString,QString,QString)),SLOT(slotOwnCloudFound(QString,QString,QString,QString)));
|
||||
connect(ocInfo,SIGNAL(noOwncloudFound(QNetworkReply*)),SLOT(slotNoOwnCloudFound(QNetworkReply*)));
|
||||
@ -463,7 +460,6 @@ FolderWizard::FolderWizard( QWidget *parent, Theme *theme )
|
||||
#ifdef Q_WS_MAC
|
||||
setWizardStyle( QWizard::ModernStyle );
|
||||
#endif
|
||||
_ocInfo = new ownCloudInfo;
|
||||
}
|
||||
|
||||
void FolderWizard::setFolderMap( Folder::Map *fm)
|
||||
|
||||
@ -156,8 +156,6 @@ public:
|
||||
private:
|
||||
|
||||
FolderWizardSourcePage *_folderWizardSourcePage;
|
||||
|
||||
ownCloudInfo *_ocInfo;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -28,30 +28,39 @@
|
||||
namespace Mirall
|
||||
{
|
||||
|
||||
QNetworkAccessManager* ownCloudInfo::_manager = 0;
|
||||
SslErrorDialog *ownCloudInfo::_sslErrorDialog = 0;
|
||||
bool ownCloudInfo::_certsUntrusted = false;
|
||||
int ownCloudInfo::_authAttempts = 0;
|
||||
QHash<QNetworkReply*, QString> ownCloudInfo::_configHandleMap;
|
||||
ownCloudInfo *ownCloudInfo::_instance = 0;
|
||||
|
||||
ownCloudInfo* ownCloudInfo::instance()
|
||||
{
|
||||
static QMutex mutex;
|
||||
if (!_instance)
|
||||
{
|
||||
mutex.lock();
|
||||
|
||||
if (!_instance) {
|
||||
_instance = new ownCloudInfo;
|
||||
|
||||
}
|
||||
mutex.unlock();
|
||||
}
|
||||
|
||||
return _instance;
|
||||
}
|
||||
|
||||
ownCloudInfo::ownCloudInfo( const QString& connectionName, QObject *parent ) :
|
||||
QObject(parent)
|
||||
{
|
||||
if( connectionName.isEmpty() )
|
||||
_connection = QString::fromLocal8Bit( "ownCloud");
|
||||
_connection = QLatin1String( "ownCloud");
|
||||
else
|
||||
_connection = connectionName;
|
||||
|
||||
if( ! _manager ) {
|
||||
qDebug() << "Creating static NetworkAccessManager";
|
||||
_manager = new QNetworkAccessManager;
|
||||
}
|
||||
|
||||
_manager = new QNetworkAccessManager;
|
||||
connect( _manager, SIGNAL( sslErrors(QNetworkReply*, QList<QSslError>)),
|
||||
this, SLOT(slotSSLFailed(QNetworkReply*, QList<QSslError>)) );
|
||||
_instance, SLOT(slotSSLFailed(QNetworkReply*, QList<QSslError>)) );
|
||||
|
||||
connect( _manager, SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*)),
|
||||
SLOT(slotAuthentication(QNetworkReply*,QAuthenticator*)));
|
||||
_instance, SLOT(slotAuthentication(QNetworkReply*,QAuthenticator*)));
|
||||
}
|
||||
|
||||
ownCloudInfo::~ownCloudInfo()
|
||||
|
||||
@ -33,8 +33,8 @@ class ownCloudInfo : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ownCloudInfo( const QString& = QString(), QObject *parent = 0);
|
||||
~ownCloudInfo();
|
||||
|
||||
static ownCloudInfo *instance();
|
||||
|
||||
bool isConfigured();
|
||||
|
||||
@ -96,20 +96,25 @@ protected slots:
|
||||
#endif
|
||||
|
||||
private:
|
||||
explicit ownCloudInfo( const QString& = QString(), QObject *parent = 0);
|
||||
~ownCloudInfo();
|
||||
|
||||
void setupHeaders(QNetworkRequest &req, quint64 size );
|
||||
#if QT46_IMPL
|
||||
#else
|
||||
QNetworkReply* davRequest(const QString&, QNetworkRequest&, QByteArray* );
|
||||
#endif
|
||||
|
||||
static QNetworkAccessManager *_manager;
|
||||
static ownCloudInfo *_instance;
|
||||
|
||||
QNetworkAccessManager *_manager;
|
||||
QString _connection;
|
||||
QString _configHandle;
|
||||
QHash<QNetworkReply*, QString> _directories;
|
||||
static QHash<QNetworkReply*, QString> _configHandleMap;
|
||||
static SslErrorDialog *_sslErrorDialog;
|
||||
static bool _certsUntrusted;
|
||||
static int _authAttempts;
|
||||
QHash<QNetworkReply*, QString> _configHandleMap;
|
||||
SslErrorDialog *_sslErrorDialog;
|
||||
bool _certsUntrusted;
|
||||
int _authAttempts;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
@ -28,7 +28,6 @@ class Theme;
|
||||
|
||||
OwncloudSetupWizard::OwncloudSetupWizard( FolderMan *folderMan, Theme *theme, QObject *parent ) :
|
||||
QObject( parent ),
|
||||
_ocInfo(0),
|
||||
_folderMan(folderMan)
|
||||
{
|
||||
_process = new QProcess( this );
|
||||
@ -71,15 +70,14 @@ OwncloudSetupWizard::OwncloudSetupWizard( FolderMan *folderMan, Theme *theme, QO
|
||||
_ocWizard->setWindowTitle( tr("%1 Connection Wizard").arg( theme ? theme->appName() : "Mirall" ) );
|
||||
|
||||
// create the ocInfo object
|
||||
_ocInfo = new ownCloudInfo;
|
||||
connect(_ocInfo,SIGNAL(ownCloudInfoFound(QString,QString,QString,QString)),SLOT(slotOwnCloudFound(QString,QString,QString,QString)));
|
||||
connect(_ocInfo,SIGNAL(noOwncloudFound(QNetworkReply*)),SLOT(slotNoOwnCloudFound(QNetworkReply*)));
|
||||
connect(_ocInfo,SIGNAL(webdavColCreated(QNetworkReply::NetworkError)),SLOT(slotCreateRemoteFolderFinished(QNetworkReply::NetworkError)));
|
||||
connect(ownCloudInfo::instance(),SIGNAL(ownCloudInfoFound(QString,QString,QString,QString)),SLOT(slotOwnCloudFound(QString,QString,QString,QString)));
|
||||
connect(ownCloudInfo::instance(),SIGNAL(noOwncloudFound(QNetworkReply*)),SLOT(slotNoOwnCloudFound(QNetworkReply*)));
|
||||
connect(ownCloudInfo::instance(),SIGNAL(webdavColCreated(QNetworkReply::NetworkError)),SLOT(slotCreateRemoteFolderFinished(QNetworkReply::NetworkError)));
|
||||
}
|
||||
|
||||
OwncloudSetupWizard::~OwncloudSetupWizard()
|
||||
{
|
||||
delete _ocInfo;
|
||||
|
||||
}
|
||||
|
||||
// Method executed when the user ends the wizard, either with 'accept' or 'reject'.
|
||||
@ -114,7 +112,7 @@ void OwncloudSetupWizard::slotAssistantFinished( int result )
|
||||
|
||||
// clear the custom config handle
|
||||
_configHandle.clear();
|
||||
_ocInfo->setCustomConfigHandle( QString() );
|
||||
ownCloudInfo::instance()->setCustomConfigHandle( QString() );
|
||||
|
||||
// notify others.
|
||||
emit ownCloudWizardDone( result );
|
||||
@ -143,11 +141,11 @@ void OwncloudSetupWizard::testOwnCloudConnect()
|
||||
_ocWizard->field("PwdNoLocalStore").toBool() );
|
||||
|
||||
// now start ownCloudInfo to check the connection.
|
||||
_ocInfo->setCustomConfigHandle( _configHandle );
|
||||
if( _ocInfo->isConfigured() ) {
|
||||
ownCloudInfo::instance()->setCustomConfigHandle( _configHandle );
|
||||
if( ownCloudInfo::instance()->isConfigured() ) {
|
||||
// reset the SSL Untrust flag to let the SSL dialog appear again.
|
||||
_ocInfo->resetSSLUntrust();
|
||||
_ocInfo->checkInstallation();
|
||||
ownCloudInfo::instance()->resetSSLUntrust();
|
||||
ownCloudInfo::instance()->checkInstallation();
|
||||
} else {
|
||||
qDebug() << " ownCloud seems not to be configured, can not start test connect.";
|
||||
}
|
||||
@ -389,7 +387,7 @@ bool OwncloudSetupWizard::createRemoteFolder( const QString& folder )
|
||||
|
||||
qDebug() << "creating folder on ownCloud: " << folder;
|
||||
|
||||
_ocInfo->mkdirRequest( folder );
|
||||
ownCloudInfo::instance()->mkdirRequest( folder );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -95,7 +95,6 @@ private:
|
||||
OwncloudWizard *_ocWizard;
|
||||
FolderMan *_folderMan;
|
||||
QProcess *_process;
|
||||
ownCloudInfo *_ocInfo;
|
||||
|
||||
QString _configHandle;
|
||||
QString _localFolder;
|
||||
|
||||
@ -167,8 +167,7 @@ bool FolderViewDelegate::editorEvent ( QEvent * event, QAbstractItemModel * mode
|
||||
|
||||
StatusDialog::StatusDialog( Theme *theme, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
_theme( theme ),
|
||||
_ownCloudInfo(0)
|
||||
_theme( theme )
|
||||
{
|
||||
setupUi( this );
|
||||
setWindowTitle( _theme->appName() + QString (" %1" ).arg( _theme->version() ) );
|
||||
@ -199,11 +198,9 @@ StatusDialog::StatusDialog( Theme *theme, QWidget *parent) :
|
||||
_ButtonInfo->setEnabled(false);
|
||||
_ButtonAdd->setEnabled(true);
|
||||
|
||||
_ownCloudInfo = new ownCloudInfo();
|
||||
|
||||
connect(_ownCloudInfo, SIGNAL(ownCloudInfoFound(const QString&, const QString&, const QString&, const QString&)),
|
||||
connect(ownCloudInfo::instance(), SIGNAL(ownCloudInfoFound(const QString&, const QString&, const QString&, const QString&)),
|
||||
this, SLOT(slotOCInfo( const QString&, const QString&, const QString&, const QString& )));
|
||||
connect(_ownCloudInfo, SIGNAL(noOwncloudFound(QNetworkReply*)),
|
||||
connect(ownCloudInfo::instance(), SIGNAL(noOwncloudFound(QNetworkReply*)),
|
||||
this, SLOT(slotOCInfoFail(QNetworkReply*)));
|
||||
|
||||
#if defined Q_WS_X11
|
||||
@ -220,7 +217,6 @@ StatusDialog::StatusDialog( Theme *theme, QWidget *parent) :
|
||||
|
||||
StatusDialog::~StatusDialog()
|
||||
{
|
||||
delete _ownCloudInfo;
|
||||
}
|
||||
|
||||
void StatusDialog::slotFolderActivated( const QModelIndex& indx )
|
||||
@ -402,10 +398,10 @@ void StatusDialog::slotAddSync()
|
||||
|
||||
void StatusDialog::slotCheckConnection()
|
||||
{
|
||||
if( _ownCloudInfo->isConfigured() ) {
|
||||
if( ownCloudInfo::instance()->isConfigured() ) {
|
||||
_ocUrlLabel->setText( tr("Checking ownCloud connection..."));
|
||||
qDebug() << "Check status.php from statusdialog.";
|
||||
_ownCloudInfo->checkInstallation();
|
||||
ownCloudInfo::instance()->checkInstallation();
|
||||
} else {
|
||||
// ownCloud is not yet configured.
|
||||
_ocUrlLabel->setText( tr("No ownCloud connection configured."));
|
||||
|
||||
@ -108,8 +108,7 @@ private:
|
||||
QStandardItemModel *_model;
|
||||
QUrl _OCUrl;
|
||||
Theme *_theme;
|
||||
ownCloudInfo *_ownCloudInfo;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
#endif // STATUSDIALOG_H
|
||||
|
||||
Loading…
Reference in New Issue
Block a user