Merge branch 'master' of gitorious.org:owncloud/mirall

This commit is contained in:
Klaas Freitag 2012-07-26 11:40:06 +03:00
commit 0112bb1e05
10 changed files with 65 additions and 69 deletions

View File

@ -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;

View File

@ -108,7 +108,6 @@ private:
FolderMan *_folderMan;
Theme *_theme;
QSignalMapper *_folderOpenActionMapper;
ownCloudInfo *_ocInfo;
UpdateDetector *_updateDetector;
QMap<Folder*, QString> _overallStatusStrings;
LogBrowser *_logBrowser;

View File

@ -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)

View File

@ -156,8 +156,6 @@ public:
private:
FolderWizardSourcePage *_folderWizardSourcePage;
ownCloudInfo *_ocInfo;
};

View File

@ -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()

View File

@ -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;
};
};

View File

@ -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;
}

View File

@ -95,7 +95,6 @@ private:
OwncloudWizard *_ocWizard;
FolderMan *_folderMan;
QProcess *_process;
ownCloudInfo *_ocInfo;
QString _configHandle;
QString _localFolder;

View File

@ -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."));

View File

@ -108,8 +108,7 @@ private:
QStandardItemModel *_model;
QUrl _OCUrl;
Theme *_theme;
ownCloudInfo *_ownCloudInfo;
};
};
}
#endif // STATUSDIALOG_H