mirror of
https://github.com/transmission/transmission
synced 2024-12-30 19:46:56 +00:00
971cc6d2d9
We don't currently (if ever) provide context help, so the button is useless. Moreover, on Windows 10 it's even larger than before and sometimes title text doesn't fit because of it.
93 lines
2.4 KiB
C++
93 lines
2.4 KiB
C++
/*
|
|
* This file Copyright (C) 2009-2015 Mnemosyne LLC
|
|
*
|
|
* It may be used under the GNU GPL versions 2 or 3
|
|
* or any future license endorsed by Mnemosyne LLC.
|
|
*
|
|
* $Id$
|
|
*/
|
|
|
|
#include <QDir>
|
|
|
|
#include "RelocateDialog.h"
|
|
#include "Session.h"
|
|
#include "Torrent.h"
|
|
#include "TorrentModel.h"
|
|
|
|
bool RelocateDialog::myMoveFlag = true;
|
|
|
|
void
|
|
RelocateDialog::onSetLocation ()
|
|
{
|
|
mySession.torrentSetLocation (myIds, newLocation (), myMoveFlag);
|
|
close ();
|
|
}
|
|
|
|
void
|
|
RelocateDialog::onMoveToggled (bool b)
|
|
{
|
|
myMoveFlag = b;
|
|
}
|
|
|
|
RelocateDialog::RelocateDialog (Session & session,
|
|
const TorrentModel & model,
|
|
const QSet<int> & ids,
|
|
QWidget * parent):
|
|
BaseDialog (parent),
|
|
mySession (session),
|
|
myIds (ids)
|
|
{
|
|
ui.setupUi (this);
|
|
|
|
QString path;
|
|
for (const int id: myIds)
|
|
{
|
|
const Torrent * tor = model.getTorrentFromId (id);
|
|
|
|
if (path.isEmpty ())
|
|
{
|
|
path = tor->getPath ();
|
|
}
|
|
else if (path != tor->getPath ())
|
|
{
|
|
if (mySession.isServer ())
|
|
path = QDir::homePath ();
|
|
else
|
|
path = QDir::rootPath ();
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (mySession.isServer ())
|
|
{
|
|
ui.newLocationStack->setCurrentWidget (ui.newLocationButton);
|
|
ui.newLocationButton->setMode (PathButton::DirectoryMode);
|
|
ui.newLocationButton->setTitle (tr ("Select Location"));
|
|
ui.newLocationButton->setPath (path);
|
|
}
|
|
else
|
|
{
|
|
ui.newLocationStack->setCurrentWidget (ui.newLocationEdit);
|
|
ui.newLocationEdit->setText (path);
|
|
ui.newLocationEdit->selectAll ();
|
|
}
|
|
|
|
ui.newLocationStack->setFixedHeight (ui.newLocationStack->currentWidget ()->sizeHint ().height ());
|
|
ui.newLocationLabel->setBuddy (ui.newLocationStack->currentWidget ());
|
|
|
|
if (myMoveFlag)
|
|
ui.moveDataRadio->setChecked (true);
|
|
else
|
|
ui.findDataRadio->setChecked (true);
|
|
|
|
connect (ui.moveDataRadio, SIGNAL (toggled (bool)), this, SLOT (onMoveToggled (bool)));
|
|
connect (ui.dialogButtons, SIGNAL (rejected ()), this, SLOT (close ()));
|
|
connect (ui.dialogButtons, SIGNAL (accepted ()), this, SLOT (onSetLocation ()));
|
|
}
|
|
|
|
QString
|
|
RelocateDialog::newLocation () const
|
|
{
|
|
return ui.newLocationStack->currentWidget () == ui.newLocationButton ?
|
|
ui.newLocationButton->path () : ui.newLocationEdit->text ();
|
|
}
|