mirror of
https://github.com/chylex/Nextcloud-Desktop.git
synced 2026-04-10 09:57:41 +02:00
Compare commits
12 Commits
v1.3.0-bet
...
v1.3.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7cd2f39f82 | ||
|
|
949dd5db35 | ||
|
|
49a5c5bb8b | ||
|
|
48aa355eea | ||
|
|
644b2673e0 | ||
|
|
8eed62e639 | ||
|
|
04c8449e5f | ||
|
|
016868e95a | ||
|
|
a662c85728 | ||
|
|
12cc8bfd95 | ||
|
|
11c6f20c90 | ||
|
|
c602ec310d |
27
ChangeLog
27
ChangeLog
@@ -1,5 +1,32 @@
|
|||||||
ChangeLog
|
ChangeLog
|
||||||
=========
|
=========
|
||||||
|
version 1.3.0 (release 2013-06-25 ), csync 0.80.0 required
|
||||||
|
|
||||||
|
* Default proxy port to 8080
|
||||||
|
* Don't lose proxy settings when changing passwords
|
||||||
|
* Support SOCKS5 proxy (useful in combination with ssh *D)
|
||||||
|
* Propagate proxy changes to csync at runtime
|
||||||
|
* Improve proxy wizard
|
||||||
|
* Display proxy errors
|
||||||
|
* Solved problems with lock files
|
||||||
|
* Warn if for some reason all files are scheduled for removal on either side
|
||||||
|
* Avoid infinite loop if authentication fails in certain cases
|
||||||
|
* Fix reading the password from the config in certain cases
|
||||||
|
* Do not crash when configured sync target disappears
|
||||||
|
* Make --help work on windows
|
||||||
|
* Make sync feedback less ambiguous.
|
||||||
|
* Fix icon tray tooltip sometimes showing repeated content
|
||||||
|
* More use of native directory separators on Windows
|
||||||
|
* Remove journal when reusing a directory that used to have a journal before
|
||||||
|
* Visual clean up of status dialog items
|
||||||
|
* Wizard: When changing the URL or user name, allow the user to push his data
|
||||||
|
to the new location or wipe the folder and start from scratch
|
||||||
|
* Wizard: Make setting a custom folder as a sync target work again
|
||||||
|
* Fix application icon
|
||||||
|
* User-Agent now contains "Mozilla/5.0" and the Platform name (for firewall/proxy compat)
|
||||||
|
* Server side directory moves will be detected
|
||||||
|
* New setup wizard, defaulting to root syncing (only for new setups)
|
||||||
|
* Improved thread stop/termination
|
||||||
|
|
||||||
version 1.2.5 (release 2013-04-23 ), csync 0.70.7 required
|
version 1.2.5 (release 2013-04-23 ), csync 0.70.7 required
|
||||||
* [Fixes] NSIS installer fixes
|
* [Fixes] NSIS installer fixes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
set( VERSION_MAJOR 1 )
|
set( VERSION_MAJOR 1 )
|
||||||
set( VERSION_MINOR 3 )
|
set( VERSION_MINOR 3 )
|
||||||
set( VERSION_PATCH 0 )
|
set( VERSION_PATCH 0 )
|
||||||
set( VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}${VERSION_SUFFIX}beta4)
|
set( VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}${VERSION_SUFFIX})
|
||||||
set( SOVERSION 0 )
|
set( SOVERSION 0 )
|
||||||
|
|
||||||
|
|||||||
@@ -140,6 +140,8 @@ Application::Application(int &argc, char **argv) :
|
|||||||
|
|
||||||
connect( _statusDialog, SIGNAL(removeFolderAlias( const QString&)),
|
connect( _statusDialog, SIGNAL(removeFolderAlias( const QString&)),
|
||||||
SLOT(slotRemoveFolder(const QString&)));
|
SLOT(slotRemoveFolder(const QString&)));
|
||||||
|
connect( _statusDialog, SIGNAL(resetFolderAlias( const QString&)),
|
||||||
|
SLOT(slotResetFolder(const QString&)));
|
||||||
connect( _statusDialog, SIGNAL(enableFolderAlias(QString,bool)),
|
connect( _statusDialog, SIGNAL(enableFolderAlias(QString,bool)),
|
||||||
SLOT(slotEnableFolder(QString,bool)));
|
SLOT(slotEnableFolder(QString,bool)));
|
||||||
connect( _statusDialog, SIGNAL(infoFolderAlias(const QString&)),
|
connect( _statusDialog, SIGNAL(infoFolderAlias(const QString&)),
|
||||||
@@ -797,21 +799,36 @@ void Application::slotAbout()
|
|||||||
void Application::slotRemoveFolder( const QString& alias )
|
void Application::slotRemoveFolder( const QString& alias )
|
||||||
{
|
{
|
||||||
int ret = QMessageBox::question( 0, tr("Confirm Folder Remove"),
|
int ret = QMessageBox::question( 0, tr("Confirm Folder Remove"),
|
||||||
tr("<p>Do you really want to stop syncing the upload folder <i>%1</i>?</p>"
|
tr("<p>Do you really want to stop syncing the folder <i>%1</i>?</p>"
|
||||||
"<p><b>Note:</b> This will not remove the files from your client.</p>").arg(alias),
|
"<p><b>Note:</b> This will not remove the files from your client.</p>").arg(alias),
|
||||||
QMessageBox::Yes|QMessageBox::No );
|
QMessageBox::Yes|QMessageBox::No );
|
||||||
|
|
||||||
if( ret == QMessageBox::No ) {
|
if( ret == QMessageBox::No ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Folder *f = _folderMan->folder(alias);
|
|
||||||
|
|
||||||
_folderMan->slotRemoveFolder( alias );
|
_folderMan->slotRemoveFolder( alias );
|
||||||
_statusDialog->slotRemoveSelectedFolder( );
|
_statusDialog->slotRemoveSelectedFolder( );
|
||||||
computeOverallSyncStatus();
|
computeOverallSyncStatus();
|
||||||
setupContextMenu();
|
setupContextMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Application::slotResetFolder( const QString & alias )
|
||||||
|
{
|
||||||
|
int ret = QMessageBox::question( 0, tr("Confirm Folder Reset"),
|
||||||
|
tr("<p>Do you really want to reset folder <i>%1</i> and rebuild your client database?</p>"
|
||||||
|
"<p><b>Note:</b> While no files will be removed, this can cause significant data "
|
||||||
|
"traffic and take several minutes to hours, depending on the size of the folder.</p>").arg(alias),
|
||||||
|
QMessageBox::Yes|QMessageBox::No );
|
||||||
|
if( ret == QMessageBox::No ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Folder *f = _folderMan->folder(alias);
|
||||||
|
f->slotTerminateSync();
|
||||||
|
f->wipe();
|
||||||
|
_folderMan->slotScheduleAllFolders();
|
||||||
|
}
|
||||||
|
|
||||||
// Open the File list info dialog.
|
// Open the File list info dialog.
|
||||||
void Application::slotInfoFolder( const QString& alias )
|
void Application::slotInfoFolder( const QString& alias )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ protected slots:
|
|||||||
void slotAddFolder();
|
void slotAddFolder();
|
||||||
void slotOpenStatus();
|
void slotOpenStatus();
|
||||||
void slotRemoveFolder( const QString& );
|
void slotRemoveFolder( const QString& );
|
||||||
|
void slotResetFolder( const QString& );
|
||||||
void slotEnableFolder( const QString&, const bool );
|
void slotEnableFolder( const QString&, const bool );
|
||||||
void slotInfoFolder( const QString& );
|
void slotInfoFolder( const QString& );
|
||||||
void slotConfigure();
|
void slotConfigure();
|
||||||
|
|||||||
@@ -507,10 +507,10 @@ void ownCloudFolder::slotAboutToRemoveAllFiles(SyncFileItem::Direction direction
|
|||||||
{
|
{
|
||||||
QString msg = direction == SyncFileItem::Down ?
|
QString msg = direction == SyncFileItem::Down ?
|
||||||
tr("This sync would remove all the files in the local sync folder '%1'.\n"
|
tr("This sync would remove all the files in the local sync folder '%1'.\n"
|
||||||
"If you or your administrator have reset your account on the server, choose"
|
"If you or your administrator have reset your account on the server, choose "
|
||||||
"\"Keep files\". If you want your data to be removed, choose \"Remove all files\".") :
|
"\"Keep files\". If you want your data to be removed, choose \"Remove all files\".") :
|
||||||
tr("This sync would remove all the files in the sync folder '%1'.\n"
|
tr("This sync would remove all the files in the sync folder '%1'.\n"
|
||||||
"This might be because the folder was silently reconfigured, or that all"
|
"This might be because the folder was silently reconfigured, or that all "
|
||||||
"the file were manually removed.\n"
|
"the file were manually removed.\n"
|
||||||
"Are you sure you want to perform this operation?");
|
"Are you sure you want to perform this operation?");
|
||||||
QMessageBox msgBox(QMessageBox::Warning, tr("Remove All Files?"),
|
QMessageBox msgBox(QMessageBox::Warning, tr("Remove All Files?"),
|
||||||
|
|||||||
@@ -130,6 +130,9 @@
|
|||||||
<property name="sizeConstraint">
|
<property name="sizeConstraint">
|
||||||
<enum>QLayout::SetMinimumSize</enum>
|
<enum>QLayout::SetMinimumSize</enum>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="fieldGrowthPolicy">
|
||||||
|
<enum>QFormLayout::ExpandingFieldsGrow</enum>
|
||||||
|
</property>
|
||||||
<item row="0" column="0" colspan="2">
|
<item row="0" column="0" colspan="2">
|
||||||
<widget class="QRadioButton" name="radioButton">
|
<widget class="QRadioButton" name="radioButton">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -159,7 +162,7 @@
|
|||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QLabel" name="label_6">
|
<widget class="QLabel" name="label_6">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
|
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
@@ -213,7 +216,7 @@
|
|||||||
<item row="3" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="QLabel" name="label_5">
|
<widget class="QLabel" name="label_5">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
|
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ void OwncloudSetupWizard::startWizard()
|
|||||||
_ocWizard->setMultipleFoldersExist(_folderMan->map().count() > 1);
|
_ocWizard->setMultipleFoldersExist(_folderMan->map().count() > 1);
|
||||||
|
|
||||||
_ocWizard->show();
|
_ocWizard->show();
|
||||||
|
_ocWizard->raise();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -237,6 +237,7 @@ StatusDialog::StatusDialog( Theme *theme, QWidget *parent) :
|
|||||||
_folderList->setEditTriggers( QAbstractItemView::NoEditTriggers );
|
_folderList->setEditTriggers( QAbstractItemView::NoEditTriggers );
|
||||||
connect(_ButtonClose, SIGNAL(clicked()), this, SLOT(accept()));
|
connect(_ButtonClose, SIGNAL(clicked()), this, SLOT(accept()));
|
||||||
connect(_ButtonRemove, SIGNAL(clicked()), this, SLOT(slotRemoveFolder()));
|
connect(_ButtonRemove, SIGNAL(clicked()), this, SLOT(slotRemoveFolder()));
|
||||||
|
connect(_ButtonReset, SIGNAL(clicked()), this, SLOT(slotResetFolder()));
|
||||||
|
|
||||||
connect(_ButtonEnable, SIGNAL(clicked()), this, SLOT(slotEnableFolder()));
|
connect(_ButtonEnable, SIGNAL(clicked()), this, SLOT(slotEnableFolder()));
|
||||||
connect(_ButtonInfo, SIGNAL(clicked()), this, SLOT(slotInfoFolder()));
|
connect(_ButtonInfo, SIGNAL(clicked()), this, SLOT(slotInfoFolder()));
|
||||||
@@ -244,6 +245,7 @@ StatusDialog::StatusDialog( Theme *theme, QWidget *parent) :
|
|||||||
|
|
||||||
_ButtonRemove->setEnabled(false);
|
_ButtonRemove->setEnabled(false);
|
||||||
_ButtonEnable->setEnabled(false);
|
_ButtonEnable->setEnabled(false);
|
||||||
|
_ButtonReset->setEnabled(false);
|
||||||
_ButtonInfo->setEnabled(false);
|
_ButtonInfo->setEnabled(false);
|
||||||
_ButtonAdd->setEnabled(true);
|
_ButtonAdd->setEnabled(true);
|
||||||
|
|
||||||
@@ -265,6 +267,7 @@ void StatusDialog::slotFolderActivated( const QModelIndex& indx )
|
|||||||
|
|
||||||
_ButtonRemove->setEnabled( state );
|
_ButtonRemove->setEnabled( state );
|
||||||
_ButtonEnable->setEnabled( state );
|
_ButtonEnable->setEnabled( state );
|
||||||
|
_ButtonReset->setEnabled( state );
|
||||||
_ButtonInfo->setEnabled( state );
|
_ButtonInfo->setEnabled( state );
|
||||||
|
|
||||||
if ( state ) {
|
if ( state ) {
|
||||||
@@ -316,7 +319,6 @@ void StatusDialog::buttonsSetEnabled()
|
|||||||
{
|
{
|
||||||
bool haveFolders = _folderList->model()->rowCount() > 0;
|
bool haveFolders = _folderList->model()->rowCount() > 0;
|
||||||
|
|
||||||
_ButtonRemove->setEnabled(false);
|
|
||||||
if( _theme->singleSyncFolder() ) {
|
if( _theme->singleSyncFolder() ) {
|
||||||
// only one folder synced folder allowed.
|
// only one folder synced folder allowed.
|
||||||
_ButtonAdd->setVisible(!haveFolders);
|
_ButtonAdd->setVisible(!haveFolders);
|
||||||
@@ -331,6 +333,8 @@ void StatusDialog::buttonsSetEnabled()
|
|||||||
_ButtonEnable->setEnabled(isSelected);
|
_ButtonEnable->setEnabled(isSelected);
|
||||||
_ButtonRemove->setEnabled(isSelected);
|
_ButtonRemove->setEnabled(isSelected);
|
||||||
_ButtonInfo->setEnabled(isSelected);
|
_ButtonInfo->setEnabled(isSelected);
|
||||||
|
_ButtonReset->setEnabled(isSelected);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatusDialog::slotUpdateFolderState( Folder *folder )
|
void StatusDialog::slotUpdateFolderState( Folder *folder )
|
||||||
@@ -396,6 +400,15 @@ void StatusDialog::slotRemoveFolder()
|
|||||||
slotCheckConnection();
|
slotCheckConnection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void StatusDialog::slotResetFolder()
|
||||||
|
{
|
||||||
|
QModelIndex selected = _folderList->selectionModel()->currentIndex();
|
||||||
|
if( selected.isValid() ) {
|
||||||
|
QString alias = _model->data( selected, FolderViewDelegate::FolderAliasRole ).toString();
|
||||||
|
emit(resetFolderAlias( alias ));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void StatusDialog::slotRemoveSelectedFolder()
|
void StatusDialog::slotRemoveSelectedFolder()
|
||||||
{
|
{
|
||||||
QModelIndex selected = _folderList->selectionModel()->currentIndex();
|
QModelIndex selected = _folderList->selectionModel()->currentIndex();
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ public:
|
|||||||
|
|
||||||
signals:
|
signals:
|
||||||
void removeFolderAlias( const QString& );
|
void removeFolderAlias( const QString& );
|
||||||
|
void resetFolderAlias( const QString& );
|
||||||
void enableFolderAlias( const QString&, const bool );
|
void enableFolderAlias( const QString&, const bool );
|
||||||
void infoFolderAlias( const QString& );
|
void infoFolderAlias( const QString& );
|
||||||
void openFolderAlias( const QString& );
|
void openFolderAlias( const QString& );
|
||||||
@@ -81,6 +82,7 @@ signals:
|
|||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void slotRemoveFolder();
|
void slotRemoveFolder();
|
||||||
|
void slotResetFolder();
|
||||||
void slotRemoveSelectedFolder();
|
void slotRemoveSelectedFolder();
|
||||||
void slotFolderActivated( const QModelIndex& );
|
void slotFolderActivated( const QModelIndex& );
|
||||||
void slotOpenOC();
|
void slotOpenOC();
|
||||||
|
|||||||
@@ -42,13 +42,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="_ButtonRemove">
|
|
||||||
<property name="text">
|
|
||||||
<string>Remove...</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="_ButtonEnable">
|
<widget class="QPushButton" name="_ButtonEnable">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -56,13 +49,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="_ButtonInfo">
|
|
||||||
<property name="text">
|
|
||||||
<string>Info...</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<spacer name="verticalSpacer">
|
<spacer name="verticalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
@@ -71,11 +57,45 @@
|
|||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
<width>20</width>
|
<width>20</width>
|
||||||
<height>56</height>
|
<height>40</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="_ButtonRemove">
|
||||||
|
<property name="text">
|
||||||
|
<string>Remove</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="_ButtonReset">
|
||||||
|
<property name="text">
|
||||||
|
<string>Reset</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="_ButtonInfo">
|
||||||
|
<property name="text">
|
||||||
|
<string>Info...</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user