Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions src/MEGASync/gui/MegaTransferView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -745,3 +745,13 @@ void MegaTransferView::clearAllTransferClicked()
model->removeAllTransfers();
}
}


void MegaTransferView::retryAllFailedTransferClicked()
{
QTransfersModel *model = (QTransfersModel*)this->model();
if (model)
{
model->retryAllTransfers();
}
}
1 change: 1 addition & 0 deletions src/MEGASync/gui/MegaTransferView.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ private slots:
void clearTransferClicked();
void clearAllTransferClicked();

void retryAllFailedTransferClicked();
signals:
void showContextMenu(QPoint pos);
};
Expand Down
1 change: 1 addition & 0 deletions src/MEGASync/gui/QCustomTransfersModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,7 @@ void QCustomTransfersModel::updateActiveTransfer(MegaApi *api, MegaTransfer *new
}
}


transfer_it QCustomTransfersModel::getInsertPosition(MegaTransfer *transfer)
{
transfer_it it = transferOrder.begin();
Expand Down
37 changes: 37 additions & 0 deletions src/MEGASync/gui/QFinishedTransfersModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,43 @@ void QFinishedTransfersModel::removeAllTransfers()
emit noTransfers();
}

void QFinishedTransfersModel::retryAllTransfers()
{
retryAllFailedTransfers();
}


void QFinishedTransfersModel::retryAllFailedTransfers()
{
if (transfers.size())
{
// TODO:
// Filter for failed transfers
// For each failed tx
// retry the tx
// possibly set whichever flags / state indicate its in progress
// (i think the API does this for me though)
//
// See following for how to retry.
// https://github.com/matthewstrasiotto/MEGAsync/blob/58d3ed7f4a10d08b0fa908639a65deac6a6bde1b/src/MEGASync/gui/MegaTransferDelegate.cpp#L292

for (QMap<int, TransferItemData*>::iterator it = transfers.begin(); it != transfers.end();)
{
int tag = it.key();

MegaTransfer *transfer = ((MegaApplication *)qApp)->getFinishedTransferByTag(tag);
if (transfer)
{
if (transfer->getLastError().getErrorCode())
{
((MegaApplication*)qApp)->getMegaApi()->retryTransfer(transfer);
}
}

}
}
}

MegaTransfer *QFinishedTransfersModel::getTransferByTag(int tag)
{
MegaTransfer *transfer = ((MegaApplication *)qApp)->getFinishedTransferByTag(tag);
Expand Down
2 changes: 2 additions & 0 deletions src/MEGASync/gui/QFinishedTransfersModel.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,12 @@ class QFinishedTransfersModel : public QTransfersModel

private slots:
void refreshTransferItem(int tag);
void retryAllFailedTransfers();

public slots:
void removeAllTransfers();
void removeTransferByTag(int transferTag);
void retryAllTransfers();
};

#endif // QFINISHEDTRANSFERSMODEL_H
5 changes: 5 additions & 0 deletions src/MEGASync/gui/QTransfersModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,8 @@ QTransfersModel::~QTransfersModel()
{
qDeleteAll(transfers);
}

void QTransfersModel::retryAllTransfers()
{
// Interface stub
}
3 changes: 3 additions & 0 deletions src/MEGASync/gui/QTransfersModel.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ class QTransfersModel : public QAbstractItemModel, public mega::MegaTransferList

virtual void removeTransferByTag(int transferTag) = 0;
virtual void removeAllTransfers() = 0;

void retryAllTransfers();

virtual mega::MegaTransfer *getTransferByTag(int tag) = 0;

QCache<int, TransferItem> transferItems;
Expand Down
21 changes: 15 additions & 6 deletions src/MEGASync/gui/TransferManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -469,21 +469,21 @@ void TransferManager::updateState()
QWidget *w = ui->wTransfers->currentWidget();
if (w == ui->wActiveTransfers)
{
onTransfersActive(ui->wActiveTransfers->areTransfersActive());
onTransfersActive(ui->wActiveTransfers->areTransfersActive(), false);
}
else if (w == ui->wDownloads)
{
onTransfersActive(ui->wDownloads->areTransfersActive());
onTransfersActive(ui->wDownloads->areTransfersActive(), false);
ui->wDownloads->pausedTransfers(preferences->getDownloadsPaused());
}
else if (w == ui->wUploads)
{
onTransfersActive(ui->wUploads->areTransfersActive());
onTransfersActive(ui->wUploads->areTransfersActive(), false);
ui->wUploads->pausedTransfers(preferences->getUploadsPaused());
}
else if (w == ui->wCompleted)
{
onTransfersActive(ui->wCompleted->areTransfersActive());
onTransfersActive(ui->wCompleted->areTransfersActive(), true);
}
}

Expand Down Expand Up @@ -556,9 +556,9 @@ void TransferManager::refreshFinishedTime()
}
}

void TransferManager::onTransfersActive(bool exists)
void TransferManager::onTransfersActive(bool clearExists, bool retryExists)
{
ui->bClearAll->setEnabled(exists);
ui->bClearAll->setEnabled(clearExists);
}

void TransferManager::updateNumberOfCompletedTransfers(int num)
Expand Down Expand Up @@ -633,3 +633,12 @@ void TransferManager::mouseReleaseEvent(QMouseEvent *event)
dragPosition = QPoint(-1, -1);
}


void TransferManager::on_bRetryAll_clicked()
{
QWidget *w = ui->wTransfers->currentWidget();
if(w == ui->wCompleted)
{
ui->wCompleted->retryTransfers();
}
}
4 changes: 3 additions & 1 deletion src/MEGASync/gui/TransferManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ class TransferManager : public QDialog, public mega::MegaTransferListener
QTimer *refreshTransferTime;

void createAddMenu();
void onTransfersActive(bool exists);
void onTransfersActive(bool clearExists, bool retryExists);

public slots:
void updateState();
Expand All @@ -76,6 +76,8 @@ private slots:

void refreshFinishedTime();

void on_bRetryAll_clicked();

protected:
void changeEvent(QEvent *event);
void mouseMoveEvent(QMouseEvent *event);
Expand Down
5 changes: 5 additions & 0 deletions src/MEGASync/gui/TransfersWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,11 @@ void TransfersWidget::clearTransfers()
model->removeAllTransfers();
}

void TransfersWidget::retryTransfers()
{
model->retryAllTransfers();
}

TransfersWidget::~TransfersWidget()
{
delete ui;
Expand Down
2 changes: 2 additions & 0 deletions src/MEGASync/gui/TransfersWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ class TransfersWidget : public QWidget
void setupTransfers(mega::MegaTransferData *transferData, int type);
void refreshTransferItems();
void clearTransfers();

void retryTransfers();
void pausedTransfers(bool paused);
void disableGetLink(bool disable);
QTransfersModel *getModel();
Expand Down
111 changes: 105 additions & 6 deletions src/MEGASync/gui/linux/TransferManager.ui
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@
border: none;
}

#bClearAll:disabled, #bPause:disabled, #bAdd:disabled
#bClearAll:disabled, #bPause:disabled, #bAdd:disabled, bRetryAll:disabled
{
color: rgba(119, 119, 119, 30%);
}
Expand All @@ -100,7 +100,7 @@

}

#bAdd:hover, #bPause::hover, #bClearAll::hover
#bAdd:hover, #bPause::hover, #bClearAll::hover, bRetryAll:hover
{
border: 1px solid rgba(0, 0, 0, 20%);
border-radius: 3px;
Expand All @@ -109,7 +109,7 @@

}

#bAdd:pressed, #bPause::pressed, #bClearAll::pressed
#bAdd:pressed, #bPause::pressed, #bClearAll::pressed, bRetryAll:pressed
{
background-color: rgba(0, 0, 0, 10%);
border: 1px solid rgba(0, 0, 0, 20%);
Expand All @@ -129,15 +129,15 @@
font-style: normal;
color: #ffffff;
}
#bClose::hover
#bClose::hover, bRetryAll::hover
{
border: 1px solid rgba(0, 0, 0, 60%);
border-radius: 3px;
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #999999, stop: 1 #aaaaaa);
}

#bClose::pressed
#bClose::pressed, bRetryAll::pressed
{
border: 1px solid rgba(0, 0, 0, 60%);
border-radius: 3px;
Expand Down Expand Up @@ -292,7 +292,7 @@
<string>Add...</string>
</property>
<property name="icon">
<iconset resource="../Resources_win.qrc">
<iconset resource="../Resources_linux.qrc">
<normaloff>:/images/ico_drop_add_sync.png</normaloff>:/images/ico_drop_add_sync.png</iconset>
</property>
<property name="iconSize">
Expand Down Expand Up @@ -807,6 +807,105 @@ border-top: 1px solid rgba(0, 0, 0, 10%);
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="bRetryAll">
<property name="enabled">
<bool>true</bool>
</property>
<property name="minimumSize">
<size>
<width>120</width>
<height>32</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>32</height>
</size>
</property>
<property name="palette">
<palette>
<active>
<colorrole role="Button">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
<colorrole role="ButtonText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>46</red>
<green>52</green>
<blue>54</blue>
</color>
</brush>
</colorrole>
</active>
<inactive>
<colorrole role="Button">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>202</red>
<green>202</green>
<blue>202</blue>
</color>
</brush>
</colorrole>
<colorrole role="ButtonText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>231</red>
<green>231</green>
<blue>231</blue>
</color>
</brush>
</colorrole>
</inactive>
<disabled>
<colorrole role="Button">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>202</red>
<green>202</green>
<blue>202</blue>
</color>
</brush>
</colorrole>
<colorrole role="ButtonText">
<brush brushstyle="SolidPattern">
<color alpha="127">
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
</disabled>
</palette>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="text">
<string>Retry All</string>
</property>
<property name="icon">
<iconset resource="../Resources_linux.qrc">
<normaloff>:/images/ico_item_retry@3x.png</normaloff>:/images/ico_item_retry@3x.png</iconset>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
Expand Down
2 changes: 1 addition & 1 deletion src/MEGASync/gui/linux/TransfersWidget.ui
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@
<string notr="true"/>
</property>
<property name="currentIndex">
<number>0</number>
<number>1</number>
</property>
<widget class="TransfersStateInfoWidget" name="pNoTransfers">
<property name="sizePolicy">
Expand Down
Loading