Merge lp:~carlos-mazieri/ubuntu-filemanager-app/samba-actions-02 into lp:ubuntu-filemanager-app

Proposed by Carlos Jose Mazieri
Status: Merged
Approved by: Arto Jalkanen
Approved revision: 432
Merged at revision: 437
Proposed branch: lp:~carlos-mazieri/ubuntu-filemanager-app/samba-actions-02
Merge into: lp:ubuntu-filemanager-app
Prerequisite: lp:~carlos-mazieri/ubuntu-filemanager-app/samba-actions-01
Diff against target: 413 lines (+118/-52)
7 files modified
src/plugin/folderlistmodel/diriteminfo.cpp (+3/-3)
src/plugin/folderlistmodel/dirmodel.cpp (+9/-9)
src/plugin/folderlistmodel/location.cpp (+24/-1)
src/plugin/folderlistmodel/location.h (+41/-0)
src/plugin/folderlistmodel/locationsfactory.cpp (+21/-15)
src/plugin/folderlistmodel/locationsfactory.h (+12/-16)
src/plugin/test_folderlistmodel/regression/tst_folderlistmodel.cpp (+8/-8)
To merge this branch: bzr merge lp:~carlos-mazieri/ubuntu-filemanager-app/samba-actions-02
Reviewer Review Type Date Requested Status
Arto Jalkanen Approve
Ubuntu Phone Apps Jenkins Bot continuous-integration Approve
Review via email: mp+265193@code.launchpad.net

Commit message

Enumerator Locations moved from class LocationsFactory to class Location
Created Location::isThereDiskSpace() which by default returns true, all locations can reimplement this method.
Created Location::isRemote(), Location::isLocalDisk() and Location::isTrashDisk() to handle more locations

Description of the change

Location class is improved:
   * Some methods from FileSystemAction will migrate to Location class
   * Added methods to identify if a Location object is Local/Remote

To post a comment you must log in.
Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Arto Jalkanen (ajalkane) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/plugin/folderlistmodel/diriteminfo.cpp'
--- src/plugin/folderlistmodel/diriteminfo.cpp 2015-06-28 18:07:28 +0000
+++ src/plugin/folderlistmodel/diriteminfo.cpp 2015-07-18 21:23:48 +0000
@@ -457,15 +457,15 @@
457 //owner permissions457 //owner permissions
458 if (statBuffer.st_mode & S_IRUSR)458 if (statBuffer.st_mode & S_IRUSR)
459 {459 {
460 readPermission |= QFile::ReadOwner;460 readPermission |= QFile::ReadOwner | QFile::ReadUser;
461 }461 }
462 if (statBuffer.st_mode & S_IWUSR)462 if (statBuffer.st_mode & S_IWUSR)
463 {463 {
464 writePermission |= QFile::WriteOwner;464 writePermission |= QFile::WriteOwner | QFile::WriteUser;
465 }465 }
466 if (statBuffer.st_mode & S_IXUSR)466 if (statBuffer.st_mode & S_IXUSR)
467 {467 {
468 execPermission |= QFile::ExeOwner;468 execPermission |= QFile::ExeOwner | QFile::ExeUser;
469 }469 }
470 //group permissions470 //group permissions
471 if (statBuffer.st_mode & S_IRGRP)471 if (statBuffer.st_mode & S_IRGRP)
472472
=== modified file 'src/plugin/folderlistmodel/dirmodel.cpp'
--- src/plugin/folderlistmodel/dirmodel.cpp 2015-07-18 21:23:48 +0000
+++ src/plugin/folderlistmodel/dirmodel.cpp 2015-07-18 21:23:48 +0000
@@ -76,7 +76,7 @@
7676
77#define IS_FILE_MANAGER_IDLE() (!mAwaitingResults)77#define IS_FILE_MANAGER_IDLE() (!mAwaitingResults)
7878
79#define IS_BROWSING_TRASH_ROOTDIR() (mCurLocation && mCurLocation->type() == LocationsFactory::TrashDisk && mCurLocation->isRoot())79#define IS_BROWSING_TRASH_ROOTDIR() (mCurLocation && mCurLocation->isTrashDisk() && mCurLocation->isRoot())
8080
81namespace {81namespace {
82 QHash<QByteArray, int> roleMapping;82 QHash<QByteArray, int> roleMapping;
@@ -412,7 +412,7 @@
412 return fi.isBrowsable();412 return fi.isBrowsable();
413 case IsSharingAllowedRole:413 case IsSharingAllowedRole:
414 return fi.isDir() && !fi.isSymLink() && !fi.isSharedDir()414 return fi.isDir() && !fi.isSymLink() && !fi.isSharedDir()
415 && mCurLocation->type() == LocationsFactory::LocalDisk415 && mCurLocation->isLocalDisk()
416 && fi.isWritable() && fi.isExecutable() && fi.isReadable();416 && fi.isWritable() && fi.isExecutable() && fi.isReadable();
417 case IsSharedDirRole:417 case IsSharedDirRole:
418 return fi.isSharedDir();418 return fi.isSharedDir();
@@ -591,7 +591,7 @@
591 }591 }
592592
593 //if current location is Trash only in the root is allowed to remove Items593 //if current location is Trash only in the root is allowed to remove Items
594 if (mCurLocation->type() == LocationsFactory::TrashDisk)594 if (mCurLocation->isTrashDisk())
595 {595 {
596 if (IS_BROWSING_TRASH_ROOTDIR())596 if (IS_BROWSING_TRASH_ROOTDIR())
597 {597 {
@@ -788,8 +788,8 @@
788}788}
789ExternalFSWatcher * DirModel::getExternalFSWatcher() const789ExternalFSWatcher * DirModel::getExternalFSWatcher() const
790{790{
791 const Location *l = mLocationFactory->availableLocations().at(LocationsFactory::LocalDisk);791 Location *l = mLocationFactory->getDiskLocation();
792 const DiskLocation *disk = static_cast<const DiskLocation*> (l);792 DiskLocation *disk = static_cast<DiskLocation*> (l);
793 return disk->getExternalFSWatcher();793 return disk->getExternalFSWatcher();
794}794}
795#endif795#endif
@@ -885,8 +885,8 @@
885885
886void DirModel::paste()886void DirModel::paste()
887{887{
888 // Restrict pasting if in restricted directory888 // Restrict pasting if in restricted directory when pasting on a local file system
889 if (!allowAccess(mCurrentDir)) {889 if (!mCurLocation->isRemote() && !allowAccess(mCurrentDir)) {
890 qDebug() << Q_FUNC_INFO << "access not allowed, pasting not done" << mCurrentDir;890 qDebug() << Q_FUNC_INFO << "access not allowed, pasting not done" << mCurrentDir;
891 return;891 return;
892 }892 }
@@ -1682,10 +1682,10 @@
16821682
1683void DirModel:: moveIndexesToTrash(const QList<int>& items)1683void DirModel:: moveIndexesToTrash(const QList<int>& items)
1684{ 1684{
1685 if (mCurLocation->type() == LocationsFactory::LocalDisk)1685 if (mCurLocation->isLocalDisk())
1686 {1686 {
1687 const TrashLocation *trashLocation = static_cast<const TrashLocation*>1687 const TrashLocation *trashLocation = static_cast<const TrashLocation*>
1688 (mLocationFactory->getLocation(LocationsFactory::TrashDisk));1688 (mLocationFactory->getTrashLocation());
1689 ActionPathList itemsAndTrashPath;1689 ActionPathList itemsAndTrashPath;
1690 int index = 0;1690 int index = 0;
1691 for (int counter=0; counter < items.count(); ++counter)1691 for (int counter=0; counter < items.count(); ++counter)
16921692
=== modified file 'src/plugin/folderlistmodel/location.cpp'
--- src/plugin/folderlistmodel/location.cpp 2015-03-01 19:02:31 +0000
+++ src/plugin/folderlistmodel/location.cpp 2015-07-18 21:23:48 +0000
@@ -305,4 +305,27 @@
305 }305 }
306}306}
307307
308308/*
309 * Each Location should have its implementation if it is possible
310 */
311bool Location::isThereDiskSpace(const QString &pathname, qint64 requiredSize)
312{
313 Q_UNUSED(pathname);
314 Q_UNUSED(requiredSize);
315 return true;
316}
317
318
319/*!
320 * \brief Location::currentInfo()
321 * \return the updated information about the current path
322 */
323const DirItemInfo *Location::currentInfo()
324{
325 if (m_info == 0)
326 {
327 m_info = new DirItemInfo();
328 }
329 refreshInfo(); //update information
330 return m_info;
331}
309332
=== modified file 'src/plugin/folderlistmodel/location.h'
--- src/plugin/folderlistmodel/location.h 2015-03-01 15:32:42 +0000
+++ src/plugin/folderlistmodel/location.h 2015-07-18 21:23:48 +0000
@@ -47,6 +47,24 @@
47{47{
48 Q_OBJECT48 Q_OBJECT
49public: 49public:
50
51 Q_ENUMS(Locations)
52 /*!
53 * \brief The Locations enum defines which Locations are supported
54 *
55 * \note Items also work as indexes for \a m_locations, they must be 0..(n-1)
56 */
57 enum Locations
58 {
59 LocalDisk=0, //<! any mounted file system
60 TrashDisk, //<! special trash location in the disk
61 NetSambaShare //<! SAMBA or CIFS shares
62#if 0
63 NetFishShare //<! FISH protocol over ssh that provides file sharing
64#endif
65 };
66
67public:
50 virtual ~Location();68 virtual ~Location();
51protected:69protected:
52 explicit Location( int type, QObject *parent=0);70 explicit Location( int type, QObject *parent=0);
@@ -93,6 +111,21 @@
93111
94public:112public:
95 /*!113 /*!
114 * \brief isThereDiskSpace() Check if the filesystem has enough space to put a file with size \a requiredSize
115 *
116 *
117 * \param pathname is the full pathname of the new file that is going to be created
118 *
119 * \param requiredSize the size required
120 *
121 *
122 * \note For remote locations if not is possible to get this value this function MUST return true
123 *
124 * The default implementation just returns true and let the copy fail if there is enough space
125 */
126 virtual bool isThereDiskSpace(const QString& pathname, qint64 requiredSize);
127
128 /*!
96 * \brief fetchItems() gets the content of the Location129 * \brief fetchItems() gets the content of the Location
97 *130 *
98 * \param dirFilter current Filter131 * \param dirFilter current Filter
@@ -131,6 +164,13 @@
131 */164 */
132 virtual DirItemInfo * validateUrlPath(const QString& urlPath);165 virtual DirItemInfo * validateUrlPath(const QString& urlPath);
133166
167 /*!
168 * \brief isRemote() It must return TRUE when type() is greater than Location::TrashDisk
169 * \return
170 */
171 inline bool isRemote() const { return m_type > TrashDisk; }
172 inline bool isLocalDisk() const { return m_type == LocalDisk;}
173 inline bool isTrashDisk() const { return m_type == TrashDisk; }
134174
135public: //virtual175public: //virtual
136 virtual void fetchExternalChanges(const QString& urlPath,176 virtual void fetchExternalChanges(const QString& urlPath,
@@ -153,6 +193,7 @@
153193
154 inline const DirItemInfo* info() const { return m_info; }194 inline const DirItemInfo* info() const { return m_info; }
155 inline int type() const { return m_type; }195 inline int type() const { return m_type; }
196 const DirItemInfo* currentInfo(); //updated information about the current path
156197
157protected:198protected:
158 DirItemInfo * m_info;199 DirItemInfo * m_info;
159200
=== modified file 'src/plugin/folderlistmodel/locationsfactory.cpp'
--- src/plugin/folderlistmodel/locationsfactory.cpp 2015-06-28 18:07:28 +0000
+++ src/plugin/folderlistmodel/locationsfactory.cpp 2015-07-18 21:23:48 +0000
@@ -50,16 +50,9 @@
50 , m_authDataStore(NetAuthenticationDataList::getInstance(this))50 , m_authDataStore(NetAuthenticationDataList::getInstance(this))
51 , m_lastUrlNeedsAuthentication(false)51 , m_lastUrlNeedsAuthentication(false)
52{52{
53 m_locations.append(new DiskLocation(LocalDisk));53 addLocation(new DiskLocation(Location::LocalDisk));
54 m_locations.append(new TrashLocation(TrashDisk));54 addLocation(new TrashLocation(Location::TrashDisk));
55 SmbLocation * smblocation = new SmbLocation(NetSambaShare);55 addLocation(new SmbLocation(Location::NetSambaShare));
56 m_locations.append(smblocation);
57
58 // Qt::DirectConnection is used here
59 // it allows lastUrlNeedsAuthencation() to have the right flag
60 connect(smblocation, SIGNAL(needsAuthentication(QString,QString)),
61 this, SLOT(onUrlNeedsAuthentication(QString,QString)),
62 Qt::DirectConnection);
63}56}
6457
65LocationsFactory::~LocationsFactory()58LocationsFactory::~LocationsFactory()
@@ -92,7 +85,7 @@
92#if defined(Q_OS_UNIX)85#if defined(Q_OS_UNIX)
93 if (uPath.startsWith(LocationUrl::TrashRootURL.midRef(0,6)))86 if (uPath.startsWith(LocationUrl::TrashRootURL.midRef(0,6)))
94 {87 {
95 type = TrashDisk;88 type = Location::TrashDisk;
96 m_tmpPath = LocationUrl::TrashRootURL + DirItemInfo::removeExtraSlashes(uPath, index+1);89 m_tmpPath = LocationUrl::TrashRootURL + DirItemInfo::removeExtraSlashes(uPath, index+1);
97 }90 }
98 else91 else
@@ -100,7 +93,7 @@
100#endif93#endif
101 if (uPath.startsWith(LocationUrl::DiskRootURL.midRef(0,5)))94 if (uPath.startsWith(LocationUrl::DiskRootURL.midRef(0,5)))
102 {95 {
103 type = LocalDisk;96 type = Location::LocalDisk;
104 m_tmpPath = QDir::rootPath() + DirItemInfo::removeExtraSlashes(uPath, index+1);97 m_tmpPath = QDir::rootPath() + DirItemInfo::removeExtraSlashes(uPath, index+1);
105 }98 }
106 else99 else
@@ -108,14 +101,14 @@
108 uPath.startsWith(LocationUrl::CifsURL.midRef(0,5))101 uPath.startsWith(LocationUrl::CifsURL.midRef(0,5))
109 )102 )
110 {103 {
111 type = NetSambaShare;104 type = Location::NetSambaShare;
112 m_tmpPath = LocationUrl::SmbURL + DirItemInfo::removeExtraSlashes(uPath, index+1);105 m_tmpPath = LocationUrl::SmbURL + DirItemInfo::removeExtraSlashes(uPath, index+1);
113 }106 }
114 }107 }
115 else108 else
116 {109 {
117 m_tmpPath = DirItemInfo::removeExtraSlashes(uPath, -1);110 m_tmpPath = DirItemInfo::removeExtraSlashes(uPath, -1);
118 type = LocalDisk;111 type = Location::LocalDisk;
119 if (!m_tmpPath.startsWith(QDir::rootPath()) && m_curLoc)112 if (!m_tmpPath.startsWith(QDir::rootPath()) && m_curLoc)
120 {113 {
121 //it can be any, check current location114 //it can be any, check current location
@@ -127,7 +120,7 @@
127 location = m_locations.at(type); 120 location = m_locations.at(type);
128 }121 }
129#if DEBUG_MESSAGES122#if DEBUG_MESSAGES
130 qDebug() << Q_FUNC_INFO << "input path:" << uPath << "location result:" << location;123 qDebug() << Q_FUNC_INFO << "input path:" << uPath << "location:" << location << "type:" << type;
131#endif124#endif
132 return location;125 return location;
133}126}
@@ -246,3 +239,16 @@
246 }239 }
247 return item;240 return item;
248}241}
242
243
244void LocationsFactory::addLocation(Location *location)
245{
246 m_locations.append(location);
247
248 // Qt::DirectConnection is used here
249 // it allows lastUrlNeedsAuthencation() to have the right flag
250 connect(location, SIGNAL(needsAuthentication(QString,QString)),
251 this, SLOT(onUrlNeedsAuthentication(QString,QString)),
252 Qt::DirectConnection);
253}
254
249255
=== modified file 'src/plugin/folderlistmodel/locationsfactory.h'
--- src/plugin/folderlistmodel/locationsfactory.h 2015-06-03 11:54:36 +0000
+++ src/plugin/folderlistmodel/locationsfactory.h 2015-07-18 21:23:48 +0000
@@ -22,11 +22,11 @@
22#ifndef LOCATIONSFACTORY_H22#ifndef LOCATIONSFACTORY_H
23#define LOCATIONSFACTORY_H23#define LOCATIONSFACTORY_H
2424
25#include "location.h"
26
25#include <QObject>27#include <QObject>
26#include <QList>28#include <QList>
2729
28
29class Location;
30class DirItemInfo;30class DirItemInfo;
31class NetAuthenticationDataList;31class NetAuthenticationDataList;
32class NetAuthenticationData;32class NetAuthenticationData;
@@ -57,19 +57,9 @@
57 explicit LocationsFactory(QObject *parent = 0);57 explicit LocationsFactory(QObject *parent = 0);
58 ~LocationsFactory();58 ~LocationsFactory();
5959
60 Q_ENUMS(Locations)60 inline Location * getLocation(int index) const {return m_locations.at(index);}
61 enum Locations61 inline Location * getDiskLocation() const { return getLocation(Location::LocalDisk); }
62 {62 inline Location * getTrashLocation() const { return getLocation(Location::TrashDisk); }
63 LocalDisk, //<! any mounted file system
64 TrashDisk, //<! special trash location in the disk
65 NetSambaShare //<! SAMBA or CIFS shares
66#if 0
67 NetFishShare //<! FISH protocol over ssh that provides file sharing
68#endif
69 };
70
71 inline const Location * getLocation(Locations index) const {return m_locations.at(index);}
72
7363
74 /*!64 /*!
75 * \brief parse() Just parses (does not set/change the current location) according to \a urlPath65 * \brief parse() Just parses (does not set/change the current location) according to \a urlPath
@@ -100,7 +90,7 @@
100 * \brief location()90 * \brief location()
101 * \return The current location91 * \return The current location
102 */92 */
103 Location * location() const { return m_curLoc; }93 Location * currentLocation() const { return m_curLoc; }
10494
105 /*!95 /*!
106 * \brief availableLocations()96 * \brief availableLocations()
@@ -155,6 +145,12 @@
155 */145 */
156 DirItemInfo *validateCurrentUrl(Location *location, const NetAuthenticationData&);146 DirItemInfo *validateCurrentUrl(Location *location, const NetAuthenticationData&);
157147
148 /*!
149 * \brief addLocation() just appends the location in the list \ref m_locations and connect signals
150 * \param location
151 */
152 void addLocation(Location * location);
153
158signals:154signals:
159 void locationChanged(const Location *old, const Location *current);155 void locationChanged(const Location *old, const Location *current);
160156
161157
=== modified file 'src/plugin/test_folderlistmodel/regression/tst_folderlistmodel.cpp'
--- src/plugin/test_folderlistmodel/regression/tst_folderlistmodel.cpp 2015-06-28 18:07:28 +0000
+++ src/plugin/test_folderlistmodel/regression/tst_folderlistmodel.cpp 2015-07-18 21:23:48 +0000
@@ -2520,7 +2520,7 @@
2520#if 0 // "sheme:/" (single slash) is no longer supported2520#if 0 // "sheme:/" (single slash) is no longer supported
2521 location = factoryLocations.setNewPath("trash:/");2521 location = factoryLocations.setNewPath("trash:/");
2522 QVERIFY(location);2522 QVERIFY(location);
2523 QVERIFY(location->type() == LocationsFactory::TrashDisk);2523 QVERIFY(location->isTrashDisk());
2524 QCOMPARE(location->info()->absoluteFilePath(), validTrashURL);2524 QCOMPARE(location->info()->absoluteFilePath(), validTrashURL);
2525 QCOMPARE(location->urlPath(), validTrashURL);2525 QCOMPARE(location->urlPath(), validTrashURL);
2526 QCOMPARE(location->isRoot(), true);2526 QCOMPARE(location->isRoot(), true);
@@ -2528,21 +2528,21 @@
25282528
2529 location = factoryLocations.setNewPath("trash://");2529 location = factoryLocations.setNewPath("trash://");
2530 QVERIFY(location);2530 QVERIFY(location);
2531 QVERIFY(location->type() == LocationsFactory::TrashDisk);2531 QVERIFY(location->isTrashDisk());
2532 QCOMPARE(location->info()->absoluteFilePath(), validTrashURL);2532 QCOMPARE(location->info()->absoluteFilePath(), validTrashURL);
2533 QCOMPARE(location->urlPath(), validTrashURL);2533 QCOMPARE(location->urlPath(), validTrashURL);
2534 QCOMPARE(location->isRoot(), true);2534 QCOMPARE(location->isRoot(), true);
25352535
2536 location = factoryLocations.setNewPath("trash:///");2536 location = factoryLocations.setNewPath("trash:///");
2537 QVERIFY(location);2537 QVERIFY(location);
2538 QVERIFY(location->type() == LocationsFactory::TrashDisk);2538 QVERIFY(location->isTrashDisk());
2539 QCOMPARE(location->info()->absoluteFilePath(), validTrashURL);2539 QCOMPARE(location->info()->absoluteFilePath(), validTrashURL);
2540 QCOMPARE(location->urlPath(), validTrashURL);2540 QCOMPARE(location->urlPath(), validTrashURL);
2541 QCOMPARE(location->isRoot(), true);2541 QCOMPARE(location->isRoot(), true);
25422542
2543 location = factoryLocations.setNewPath("trash://////");2543 location = factoryLocations.setNewPath("trash://////");
2544 QVERIFY(location);2544 QVERIFY(location);
2545 QVERIFY(location->type() == LocationsFactory::TrashDisk);2545 QVERIFY(location->isTrashDisk());
2546 QCOMPARE(location->info()->absoluteFilePath(), validTrashURL);2546 QCOMPARE(location->info()->absoluteFilePath(), validTrashURL);
2547 QCOMPARE(location->urlPath(), validTrashURL);2547 QCOMPARE(location->urlPath(), validTrashURL);
2548 QCOMPARE(location->isRoot(), true);2548 QCOMPARE(location->isRoot(), true);
@@ -2555,28 +2555,28 @@
25552555
2556 location = factoryLocations.setNewPath("file://////");2556 location = factoryLocations.setNewPath("file://////");
2557 QVERIFY(location);2557 QVERIFY(location);
2558 QVERIFY(location->type() == LocationsFactory::LocalDisk);2558 QVERIFY(location->isLocalDisk());
2559 QCOMPARE(location->info()->absoluteFilePath(), QDir::rootPath());2559 QCOMPARE(location->info()->absoluteFilePath(), QDir::rootPath());
2560 QCOMPARE(location->urlPath(), QDir::rootPath());2560 QCOMPARE(location->urlPath(), QDir::rootPath());
2561 QCOMPARE(location->isRoot(), true);2561 QCOMPARE(location->isRoot(), true);
25622562
2563 location = factoryLocations.setNewPath("/");2563 location = factoryLocations.setNewPath("/");
2564 QVERIFY(location);2564 QVERIFY(location);
2565 QVERIFY(location->type() == LocationsFactory::LocalDisk);2565 QVERIFY(location->isLocalDisk());
2566 QCOMPARE(location->info()->absoluteFilePath(), QDir::rootPath());2566 QCOMPARE(location->info()->absoluteFilePath(), QDir::rootPath());
2567 QCOMPARE(location->urlPath(), QDir::rootPath());2567 QCOMPARE(location->urlPath(), QDir::rootPath());
2568 QCOMPARE(location->isRoot(), true);2568 QCOMPARE(location->isRoot(), true);
25692569
2570 location = factoryLocations.setNewPath("//");2570 location = factoryLocations.setNewPath("//");
2571 QVERIFY(location);2571 QVERIFY(location);
2572 QVERIFY(location->type() == LocationsFactory::LocalDisk);2572 QVERIFY(location->isLocalDisk());
2573 QCOMPARE(location->info()->absoluteFilePath(), QDir::rootPath());2573 QCOMPARE(location->info()->absoluteFilePath(), QDir::rootPath());
2574 QCOMPARE(location->urlPath(), QDir::rootPath());2574 QCOMPARE(location->urlPath(), QDir::rootPath());
2575 QCOMPARE(location->isRoot(), true);2575 QCOMPARE(location->isRoot(), true);
25762576
2577 location = factoryLocations.setNewPath("//bin");2577 location = factoryLocations.setNewPath("//bin");
2578 QVERIFY(location);2578 QVERIFY(location);
2579 QVERIFY(location->type() == LocationsFactory::LocalDisk);2579 QVERIFY(location->isLocalDisk());
2580 QCOMPARE(location->info()->absoluteFilePath(), QLatin1String("/bin"));2580 QCOMPARE(location->info()->absoluteFilePath(), QLatin1String("/bin"));
2581 QCOMPARE(location->urlPath(), QLatin1String("/bin"));2581 QCOMPARE(location->urlPath(), QLatin1String("/bin"));
2582 QCOMPARE(location->isRoot(), false);2582 QCOMPARE(location->isRoot(), false);

Subscribers

People subscribed via source and target branches