diff options
Diffstat (limited to 'plugins/Themes/Oxygen/interface.cpp')
-rwxr-xr-x | plugins/Themes/Oxygen/interface.cpp | 901 |
1 files changed, 901 insertions, 0 deletions
diff --git a/plugins/Themes/Oxygen/interface.cpp b/plugins/Themes/Oxygen/interface.cpp new file mode 100755 index 0000000..e080737 --- /dev/null +++ b/plugins/Themes/Oxygen/interface.cpp @@ -0,0 +1,901 @@ +/** \file interface.cpp +\brief Define the interface core +\author alpha_one_x86 +\version 0.3 +\date 2010 */ + +#include <QtCore> +#include <QMessageBox> + +#include "interface.h" +#include "ui_interface.h" + +Themes::Themes(bool checkBoxShowSpeed,FacilityInterface * facilityEngine) : + ui(new Ui::interfaceCopy()) +{ + this->facilityEngine=facilityEngine; + ui->setupUi(this); + ui->TransferList->setModel(&transferModel); + transferModel.setFacilityEngine(facilityEngine); + ui->tabWidget->setCurrentIndex(0); + ui->checkBoxShowSpeed->setChecked(checkBoxShowSpeed); + currentFile = 0; + totalFile = 0; + currentSize = 0; + totalSize = 0; + haveError = false; + this->show(); + menu=new QMenu(this); + ui->add->setMenu(menu); + on_checkBoxShowSpeed_toggled(ui->checkBoxShowSpeed->isChecked()); + currentSpeed = -1; + updateSpeed(); + storeIsInPause = false; + isInPause(false); + modeIsForced = false; + haveStarted = false; + connect(ui->limitSpeed, SIGNAL(valueChanged(int)), this, SLOT(uiUpdateSpeed())); + connect(ui->checkBox_limitSpeed,SIGNAL(toggled(bool)), this, SLOT(uiUpdateSpeed())); + + connect(ui->actionAddFile,SIGNAL(triggered()),this,SLOT(forcedModeAddFile())); + connect(ui->actionAddFileToCopy,SIGNAL(triggered()),this,SLOT(forcedModeAddFileToCopy())); + connect(ui->actionAddFileToMove,SIGNAL(triggered()),this,SLOT(forcedModeAddFileToMove())); + connect(ui->actionAddFolderToCopy,SIGNAL(triggered()),this,SLOT(forcedModeAddFolderToCopy())); + connect(ui->actionAddFolderToMove,SIGNAL(triggered()),this,SLOT(forcedModeAddFolderToMove())); + connect(ui->actionAddFolder,SIGNAL(triggered()),this,SLOT(forcedModeAddFolder())); + + //setup the search part + closeTheSearchBox(); + TimerForSearch = new QTimer(this); + TimerForSearch->setInterval(500); + TimerForSearch->setSingleShot(true); + searchShortcut = new QShortcut(QKeySequence("Ctrl+F"),this); + searchShortcut2 = new QShortcut(QKeySequence("F3"),this); + searchShortcut3 = new QShortcut(QKeySequence("Escape"),this);//Qt::Key_Escape + + //connect the search part + connect(TimerForSearch, SIGNAL(timeout()), this, SLOT(hilightTheSearch())); + connect(searchShortcut, SIGNAL(activated()), this, SLOT(searchBoxShortcut())); + connect(searchShortcut2, SIGNAL(activated()), this, SLOT(on_pushButtonSearchNext_clicked())); + connect(ui->pushButtonCloseSearch, SIGNAL(clicked()), this, SLOT(closeTheSearchBox())); + connect(searchShortcut3, SIGNAL(activated()), this, SLOT(closeTheSearchBox())); + + //reload directly untranslatable text + newLanguageLoaded(); + + //unpush the more button + ui->moreButton->setChecked(false); + on_moreButton_toggled(false); + + /// \note important for drag and drop, \see dropEvent() + setAcceptDrops(true); + + // try set the OS icon + QIcon tempIcon; + + tempIcon=QIcon::fromTheme("application-exit"); + if(!tempIcon.isNull()) + { + ui->cancelButton->setIcon(tempIcon); + ui->pushButtonCloseSearch->setIcon(tempIcon); + ui->shutdown->setIcon(tempIcon); + } + + tempIcon=QIcon::fromTheme("edit-delete"); + if(!tempIcon.isNull()) + ui->del->setIcon(tempIcon); + + tempIcon=QIcon::fromTheme("media-playback-pause"); + if(!tempIcon.isNull()) + { + player_pause=tempIcon; + ui->pauseButton->setIcon(tempIcon); + } + else + player_pause=QIcon(":/resources/player_pause.png"); + + tempIcon=QIcon::fromTheme("media-playback-play"); + if(!tempIcon.isNull()) + player_play=tempIcon; + else + player_play=QIcon(":/resources/player_play.png"); + + tempIcon=QIcon::fromTheme("media-skip-forward"); + if(!tempIcon.isNull()) + ui->skipButton->setIcon(tempIcon); + + tempIcon=QIcon::fromTheme("edit-find"); + if(!tempIcon.isNull()) + ui->searchButton->setIcon(tempIcon); + + tempIcon=QIcon::fromTheme("document-open"); + if(!tempIcon.isNull()) + ui->importTransferList->setIcon(tempIcon); + + tempIcon=QIcon::fromTheme("document-save"); + if(!tempIcon.isNull()) + ui->exportTransferList->setIcon(tempIcon); + + tempIcon=QIcon::fromTheme("list-add"); + if(!tempIcon.isNull()) + { + ui->add->setIcon(tempIcon); + ui->actionAddFile->setIcon(tempIcon); + ui->actionAddFileToCopy->setIcon(tempIcon); + ui->actionAddFileToMove->setIcon(tempIcon); + ui->actionAddFolder->setIcon(tempIcon); + ui->actionAddFolderToCopy->setIcon(tempIcon); + ui->actionAddFolderToMove->setIcon(tempIcon); + } + + shutdown=facilityEngine->haveFunctionality("shutdown"); + ui->shutdown->setVisible(shutdown); + + selectionModel=ui->TransferList->selectionModel(); +} + +Themes::~Themes() +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + disconnect(ui->actionAddFile); + disconnect(ui->actionAddFolder); + delete selectionModel; + delete menu; +} + +void Themes::uiUpdateSpeed() +{ + if(!ui->checkBoxShowSpeed->isChecked()) + emit newSpeedLimitation(0); + else + emit newSpeedLimitation(ui->limitSpeed->value()); +} + +QWidget * Themes::getOptionsEngineWidget() +{ + return &optionEngineWidget; +} + +void Themes::getOptionsEngineEnabled(bool isEnabled) +{ + if(isEnabled) + ui->tabWidget->addTab(&optionEngineWidget,tr("Copy engine")); +} + +void Themes::closeEvent(QCloseEvent *event) +{ + event->ignore(); + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + this->hide(); + emit cancel(); +} + +void Themes::updateOverallInformation() +{ + ui->overall->setText(tr("File %1/%2, size: %3/%4").arg(currentFile).arg(totalFile).arg(facilityEngine->sizeToString(currentSize)).arg(facilityEngine->sizeToString(totalSize))); +} + +void Themes::actionInProgess(EngineActionInProgress action) +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"start: "+QString::number(action)); + this->action=action; + switch(action) + { + case Copying: + case CopyingAndListing: + ui->progressBar_all->setMaximum(65535); + ui->progressBar_all->setMinimum(0); + break; + case Listing: + ui->progressBar_all->setMaximum(0); + ui->progressBar_all->setMinimum(0); + break; + case Idle: + if(haveStarted) + { + if(shutdown && ui->shutdown->isChecked()) + { + facilityEngine->callFunctionality("shutdown"); + return; + } + switch(ui->comboBox_copyEnd->currentIndex()) + { + case 2: + emit cancel(); + break; + case 0: + if(!haveError) + emit cancel(); + break; + default: + break; + } + } + break; + default: + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"Very wrong switch case!"); + break; + } + switch(action) + { + case Copying: + case CopyingAndListing: + ui->pauseButton->setEnabled(true); + haveStarted=true; + ui->cancelButton->setText(tr("Quit")); + break; + case Idle: + ui->pauseButton->setEnabled(false); + break; + default: + break; + } +} + +void Themes::newFolderListing(const QString &path) +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + if(action==Listing) + ui->from->setText(path); +} + +void Themes::detectedSpeed(const quint64 &speed)//in byte per seconds +{ + ui->currentSpeed->setText(facilityEngine->speedToString(speed)); +} + +void Themes::remainingTime(const int &remainingSeconds) +{ + if(remainingSeconds==-1) + ui->labelTimeRemaining->setText("<html><body>∞</body></html>"); + else + { + TimeDecomposition time=facilityEngine->secondsToTimeDecomposition(remainingSeconds); + ui->labelTimeRemaining->setText(QString::number(time.hour)+":"+QString::number(time.minute)+":"+QString::number(time.second)); + } +} + +void Themes::newCollisionAction(const QString &action) +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + if(ui->comboBox_fileCollisions->findData(action)!=-1) + ui->comboBox_fileCollisions->setCurrentIndex(ui->comboBox_fileCollisions->findData(action)); +} + +void Themes::newErrorAction(const QString &action) +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + if(ui->comboBox_copyErrors->findData(action)!=-1) + ui->comboBox_copyErrors->setCurrentIndex(ui->comboBox_copyErrors->findData(action)); +} + +void Themes::errorDetected() +{ + haveError=true; +} + +//speed limitation +bool Themes::setSpeedLimitation(const qint64 &speedLimitation) +{ + currentSpeed=speedLimitation; + updateSpeed(); + return true; +} + +//get information about the copy +void Themes::setGeneralProgression(const quint64 ¤t,const quint64 &total) +{ + currentSize=current; + totalSize=total; + if(total>0) + { + int newIndicator=((double)current/total)*65535; + ui->progressBar_all->setValue(newIndicator); + } + else + ui->progressBar_all->setValue(0); +} + +void Themes::setFileProgression(const QList<ProgressionItem> &progressionList) +{ + transferModel.setFileProgression(progressionList); + updateCurrentFileInformation(); + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"Unable to found the file"); +} + +void Themes::setCollisionAction(const QList<QPair<QString,QString> > &list) +{ + ui->comboBox_fileCollisions->clear(); + index=0; + loop_size=list.size(); + while(index<loop_size) + { + ui->comboBox_fileCollisions->addItem(list.at(index).first,list.at(index).second); + index++; + } +} + +void Themes::setErrorAction(const QList<QPair<QString,QString> > &list) +{ + ui->comboBox_fileCollisions->clear(); + index=0; + loop_size=list.size(); + while(index<loop_size) + { + ui->comboBox_copyErrors->addItem(list.at(index).first,list.at(index).second); + index++; + } +} + +//edit the transfer list +/// \todo check and re-enable to selection +void Themes::getActionOnList(const QList<returnActionOnCopyList> &returnActions) +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start, returnActions.size(): "+QString::number(returnActions.size())); + QList<quint64> returnValue=transferModel.synchronizeItems(returnActions); + totalFile+=returnValue[0]; + totalSize+=returnValue[1]; + currentFile+=returnValue[2]; + if(transferModel.rowCount()==0) + { + ui->progressBar_all->setValue(65535); + ui->progressBar_file->setValue(65535); + currentSize=totalSize; + } + updateOverallInformation(); + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"transferModel.rowCount(): "+QString::number(transferModel.rowCount())); +} + +void Themes::setCopyType(CopyType type) +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + this->type=type; + updateModeAndType(); +} + +void Themes::forceCopyMode(CopyMode mode) +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + modeIsForced=true; + this->mode=mode; + if(mode==Copy) + this->setWindowTitle("Ultracopier - "+facilityEngine->translateText("Copy")); + else + this->setWindowTitle("Ultracopier - "+facilityEngine->translateText("Move")); + updateModeAndType(); +} + +void Themes::setTransferListOperation(TransferListOperation transferListOperation) +{ + ui->exportTransferList->setVisible(transferListOperation & TransferListOperation_Export); + ui->importTransferList->setVisible(transferListOperation & TransferListOperation_Import); +} + +void Themes::haveExternalOrder() +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); +// ui->moreButton->toggle(); +} + +void Themes::isInPause(bool isInPause) +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"isInPause: "+QString::number(isInPause)); + //resume in auto the pause + storeIsInPause=isInPause; + if(isInPause) + { + ui->pauseButton->setIcon(player_play); + ui->pauseButton->setText(facilityEngine->translateText("Resume")); + } + else + { + ui->pauseButton->setIcon(player_pause); + ui->pauseButton->setText(facilityEngine->translateText("Pause")); + } +} + +void Themes::updateCurrentFileInformation() +{ + TransferModel::currentTransfertItem transfertItem=transferModel.getCurrentTransfertItem(); + if(transfertItem.haveItem) + { + ui->from->setText(transfertItem.from); + ui->to->setText(transfertItem.to); + ui->current_file->setText(transfertItem.current_file); + ui->progressBar_file->setValue(transfertItem.progressBar_file); + } + else + { + ui->from->setText(""); + ui->to->setText(""); + ui->current_file->setText("-"); + if(haveStarted) + ui->progressBar_file->setValue(65535); + else + ui->progressBar_file->setValue(0); + } +} + + +void Themes::on_putOnTop_clicked() +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + selectedItems=selectionModel->selectedRows(); + ids.clear(); + index=0; + loop_size=selectedItems.size(); + while(index<loop_size) + { + ids << transferModel.data(selectedItems.at(index),Qt::UserRole).toULongLong(); + index++; + } + if(ids.size()>0) + emit moveItemsOnTop(ids); +} + +void Themes::on_pushUp_clicked() +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + selectedItems=selectionModel->selectedRows(); + ids.clear(); + index=0; + loop_size=selectedItems.size(); + while(index<loop_size) + { + ids << transferModel.data(selectedItems.at(index),Qt::UserRole).toULongLong(); + index++; + } + if(ids.size()>0) + emit moveItemsUp(ids); +} + +void Themes::on_pushDown_clicked() +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + selectedItems=selectionModel->selectedRows(); + ids.clear(); + index=0; + loop_size=selectedItems.size(); + while(index<loop_size) + { + ids << transferModel.data(selectedItems.at(index),Qt::UserRole).toULongLong(); + index++; + } + if(ids.size()>0) + emit moveItemsDown(ids); +} + +void Themes::on_putOnBottom_clicked() +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + selectedItems=selectionModel->selectedRows(); + ids.clear(); + index=0; + loop_size=selectedItems.size(); + while(index<loop_size) + { + ids << transferModel.data(selectedItems.at(index),Qt::UserRole).toULongLong(); + index++; + } + if(ids.size()>0) + emit moveItemsOnBottom(ids); +} + +void Themes::on_del_clicked() +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + selectedItems=selectionModel->selectedRows(); + ids.clear(); + index=0; + loop_size=selectedItems.size(); + while(index<loop_size) + { + ids << transferModel.data(selectedItems.at(index),Qt::UserRole).toULongLong(); + index++; + } + if(ids.size()>0) + emit removeItems(ids); +} + +void Themes::on_cancelButton_clicked() +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + this->hide(); + emit cancel(); +} + +void Themes::on_checkBoxShowSpeed_toggled(bool checked) +{ + if(checked==checked) + updateSpeed(); +} + +void Themes::on_SliderSpeed_valueChanged(int value) +{ + switch(value) + { + case 0: + currentSpeed=0; + break; + case 1: + currentSpeed=1024; + break; + case 2: + currentSpeed=1024*4; + break; + case 3: + currentSpeed=1024*16; + break; + case 4: + currentSpeed=1024*64; + break; + case 5: + currentSpeed=1024*128; + break; + } + emit newSpeedLimitation(currentSpeed); +} + +void Themes::updateSpeed() +{ + bool checked; + if(currentSpeed==-1) + { + ui->checkBoxShowSpeed->setEnabled(false); + checked=false; + } + else + { + ui->checkBoxShowSpeed->setEnabled(true); + checked=ui->checkBox_limitSpeed->isChecked(); + } + ui->label_Slider_speed->setVisible(checked); + ui->SliderSpeed->setVisible(checked); + ui->label_SpeedMaxValue->setVisible(checked); + ui->checkBox_limitSpeed->setEnabled(checked); + if(checked) + { + ui->limitSpeed->setEnabled(false); + if(currentSpeed==0) + { + ui->SliderSpeed->setValue(0); + ui->label_SpeedMaxValue->setText(tr("Unlimited")); + } + else if(currentSpeed<=1024) + { + if(currentSpeed!=1024) + { + currentSpeed=1024; + emit newSpeedLimitation(currentSpeed); + } + ui->SliderSpeed->setValue(1); + ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*1)); + } + else if(currentSpeed<=1024*4) + { + if(currentSpeed!=1024*4) + { + currentSpeed=1024*4; + emit newSpeedLimitation(currentSpeed); + } + ui->SliderSpeed->setValue(2); + ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*4)); + } + else if(currentSpeed<=1024*16) + { + if(currentSpeed!=1024*16) + { + currentSpeed=1024*16; + emit newSpeedLimitation(currentSpeed); + } + ui->SliderSpeed->setValue(3); + ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*16)); + } + else if(currentSpeed<=1024*64) + { + if(currentSpeed!=1024*64) + { + currentSpeed=1024*64; + emit newSpeedLimitation(currentSpeed); + } + ui->SliderSpeed->setValue(4); + ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*64)); + } + else + { + if(currentSpeed!=1024*128) + { + currentSpeed=1024*128; + emit newSpeedLimitation(currentSpeed); + } + ui->SliderSpeed->setValue(5); + ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*128)); + } + } + else + { + ui->checkBox_limitSpeed->setChecked(currentSpeed>0); + if(currentSpeed>0) + ui->limitSpeed->setValue(currentSpeed); + ui->checkBox_limitSpeed->setEnabled(currentSpeed!=-1); + ui->limitSpeed->setEnabled(ui->checkBox_limitSpeed->isChecked()); + } +} + +void Themes::on_limitSpeed_valueChanged(int value) +{ + currentSpeed=value; + emit newSpeedLimitation(currentSpeed); +} + +void Themes::on_checkBox_limitSpeed_clicked() +{ + if(ui->checkBox_limitSpeed->isChecked()) + { + if(ui->checkBoxShowSpeed->isChecked()) + on_SliderSpeed_valueChanged(ui->SliderSpeed->value()); + else + on_limitSpeed_valueChanged(ui->limitSpeed->value()); + } + else + currentSpeed=0; +} + +void Themes::on_pauseButton_clicked() +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + if(storeIsInPause) + emit resume(); + else + emit pause(); +} + +void Themes::on_skipButton_clicked() +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + TransferModel::currentTransfertItem transfertItem=transferModel.getCurrentTransfertItem(); + if(transfertItem.haveItem) + emit skip(transfertItem.id); + else + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to skip the transfer, because no transfer running"); +} + +void Themes::updateModeAndType() +{ + menu->clear(); + if(modeIsForced) + { + menu->addAction(ui->actionAddFile); + if(type==FileAndFolder) + menu->addAction(ui->actionAddFolder); + } + else + { + menu->addAction(ui->actionAddFileToCopy); + menu->addAction(ui->actionAddFileToMove); + if(type==FileAndFolder) + { + menu->addAction(ui->actionAddFolderToCopy); + menu->addAction(ui->actionAddFolderToMove); + } + } +} + +void Themes::forcedModeAddFile() +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + emit userAddFile(mode); +} + +void Themes::forcedModeAddFolder() +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + emit userAddFolder(mode); +} + +void Themes::forcedModeAddFileToCopy() +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + emit userAddFile(Copy); +} + +void Themes::forcedModeAddFolderToCopy() +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + emit userAddFolder(Copy); +} + +void Themes::forcedModeAddFileToMove() +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + emit userAddFile(Move); +} + +void Themes::forcedModeAddFolderToMove() +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + emit userAddFolder(Move); +} + +void Themes::newLanguageLoaded() +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + if(modeIsForced) + forceCopyMode(mode); + ui->retranslateUi(this); + if(!haveStarted) + ui->current_file->setText(tr("File Name, 0KB")); + else + updateCurrentFileInformation(); + updateOverallInformation(); + updateSpeed(); + ui->tabWidget->setTabText(4,facilityEngine->translateText("Copy engine")); + on_moreButton_toggled(ui->moreButton->isChecked()); +} + +void Themes::on_pushButtonCloseSearch_clicked() +{ + closeTheSearchBox(); +} + +//close the search box +void Themes::closeTheSearchBox() +{ + currentIndexSearch = -1; + ui->lineEditSearch->clear(); + ui->lineEditSearch->hide(); + ui->pushButtonSearchPrev->hide(); + ui->pushButtonSearchNext->hide(); + ui->pushButtonCloseSearch->hide(); + ui->searchButton->setChecked(false); + hilightTheSearch(); +} + +//search box shortcut +void Themes::searchBoxShortcut() +{ +/* if(ui->lineEditSearch->isHidden()) + {*/ + ui->lineEditSearch->show(); + ui->pushButtonSearchPrev->show(); + ui->pushButtonSearchNext->show(); + ui->pushButtonCloseSearch->show(); + ui->lineEditSearch->setFocus(Qt::ShortcutFocusReason); + ui->searchButton->setChecked(true); +/* } + else + closeTheSearchBox();*/ +} + +//hilight the search +void Themes::hilightTheSearch(bool searchNext) +{ + int result=transferModel.search(ui->lineEditSearch->text(),searchNext); + if(ui->lineEditSearch->text().isEmpty()) + ui->lineEditSearch->setStyleSheet(""); + else + { + if(result==-1) + ui->lineEditSearch->setStyleSheet("background-color: rgb(255, 150, 150);"); + else + { + ui->lineEditSearch->setStyleSheet("background-color: rgb(193,255,176);"); + ui->TransferList->scrollTo(transferModel.index(result,0)); + } + } +} + +void Themes::on_pushButtonSearchPrev_clicked() +{ + int result=transferModel.searchPrev(ui->lineEditSearch->text()); + if(ui->lineEditSearch->text().isEmpty()) + ui->lineEditSearch->setStyleSheet(""); + else + { + if(result==-1) + ui->lineEditSearch->setStyleSheet("background-color: rgb(255, 150, 150);"); + else + { + ui->lineEditSearch->setStyleSheet("background-color: rgb(193,255,176);"); + ui->TransferList->scrollTo(transferModel.index(result,0)); + } + } +} + +void Themes::on_pushButtonSearchNext_clicked() +{ + hilightTheSearch(true); +} + +void Themes::on_lineEditSearch_returnPressed() +{ + hilightTheSearch(); +} + +void Themes::on_lineEditSearch_textChanged(QString text) +{ + if(text=="") + { + TimerForSearch->stop(); + hilightTheSearch(); + } + else + TimerForSearch->start(); +} + +void Themes::on_moreButton_toggled(bool checked) +{ + if(checked) + this->setMaximumHeight(16777215); + else + this->setMaximumHeight(130); + // usefull under windows + this->updateGeometry(); + this->update(); + this->adjustSize(); +} + +void Themes::on_comboBox_copyErrors_currentIndexChanged(int index) +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + emit sendErrorAction(ui->comboBox_copyErrors->itemData(index).toString()); +} + +void Themes::on_comboBox_fileCollisions_currentIndexChanged(int index) +{ + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + emit sendCollisionAction(ui->comboBox_fileCollisions->itemData(index).toString()); +} + +/* drag event processing + +need setAcceptDrops(true); into the constructor +need implementation to accept the drop: +void dragEnterEvent(QDragEnterEvent* event); +void dragMoveEvent(QDragMoveEvent* event); +void dragLeaveEvent(QDragLeaveEvent* event); +*/ +void Themes::dropEvent(QDropEvent *event) +{ + const QMimeData* mimeData = event->mimeData(); + if(mimeData->hasUrls()) + { + emit urlDropped(mimeData->urls()); + event->acceptProposedAction(); + } +} + +void Themes::dragEnterEvent(QDragEnterEvent* event) +{ + // if some actions should not be usable, like move, this code must be adopted + event->acceptProposedAction(); +} + +void Themes::dragMoveEvent(QDragMoveEvent* event) +{ + // if some actions should not be usable, like move, this code must be adopted + event->acceptProposedAction(); +} + +void Themes::dragLeaveEvent(QDragLeaveEvent* event) +{ + event->accept(); +} + +void Themes::on_searchButton_toggled(bool checked) +{ + if(checked) + searchBoxShortcut(); + else + closeTheSearchBox(); +} + +void Themes::on_exportTransferList_clicked() +{ + emit exportTransferList(); +} + +void Themes::on_importTransferList_clicked() +{ + emit importTransferList(); +} |