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

Proposed by Carlos Jose Mazieri
Status: Merged
Approved by: Arto Jalkanen
Approved revision: 436
Merged at revision: 439
Proposed branch: lp:~carlos-mazieri/ubuntu-filemanager-app/samba-actions-04
Merge into: lp:ubuntu-filemanager-app
Prerequisite: lp:~carlos-mazieri/ubuntu-filemanager-app/samba-actions-03
Diff against target: 426 lines (+72/-97)
5 files modified
src/plugin/folderlistmodel/dirmodel.cpp (+6/-33)
src/plugin/folderlistmodel/dirmodel.h (+2/-4)
src/plugin/folderlistmodel/filesystemaction.cpp (+48/-37)
src/plugin/folderlistmodel/filesystemaction.h (+12/-5)
src/plugin/test_folderlistmodel/regression/tst_folderlistmodel.cpp (+4/-18)
To merge this branch: bzr merge lp:~carlos-mazieri/ubuntu-filemanager-app/samba-actions-04
Reviewer Review Type Date Requested Status
Arto Jalkanen Approve
Ubuntu Phone Apps Jenkins Bot continuous-integration Approve
Review via email: mp+265195@code.launchpad.net

Commit message

    FileSystemAction needs to interact with Locations, it now depends from LocationsFactory and Locations classes.

    The following methods were removed because the Location where the Action was performed needs to create its DirIteminfo for its items:
       * Removed signals FileSystemAction::added(QString) and FileSystemAction::removed(QString)
       * Removed slots DirModel::onItemAdded(QString) and DirModel::onItemRemoved(QString)

    FileSystemAction::isThereDiskSpace() was removed and Location::isThereDiskSpace() is used.

Description of the change

Preparing FileSystemAction class to work based on Locations

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)
436. By Carlos Jose Mazieri

Avoided using operator=() for DirItemInfo as it has the copy constructor

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/dirmodel.cpp'
--- src/plugin/folderlistmodel/dirmodel.cpp 2015-07-25 19:26:01 +0000
+++ src/plugin/folderlistmodel/dirmodel.cpp 2015-07-25 19:26:01 +0000
@@ -114,7 +114,7 @@
114 , mAuthData(NetAuthenticationDataList::getInstance(this))114 , mAuthData(NetAuthenticationDataList::getInstance(this))
115 , mLocationFactory(new LocationsFactory(this))115 , mLocationFactory(new LocationsFactory(this))
116 , mCurLocation(0)116 , mCurLocation(0)
117 , m_fsAction(new FileSystemAction(this) )117 , m_fsAction(new FileSystemAction(mLocationFactory,this) )
118{118{
119 mNameFilters = QStringList() << "*";119 mNameFilters = QStringList() << "*";
120120
@@ -126,15 +126,9 @@
126 connect(m_fsAction, SIGNAL(added(DirItemInfo)),126 connect(m_fsAction, SIGNAL(added(DirItemInfo)),
127 this, SLOT(onItemAdded(DirItemInfo)));127 this, SLOT(onItemAdded(DirItemInfo)));
128128
129 connect(m_fsAction, SIGNAL(added(QString)),
130 this, SLOT(onItemAdded(QString)));
131
132 connect(m_fsAction, SIGNAL(removed(DirItemInfo)),129 connect(m_fsAction, SIGNAL(removed(DirItemInfo)),
133 this, SLOT(onItemRemoved(DirItemInfo)));130 this, SLOT(onItemRemoved(DirItemInfo)));
134131
135 connect(m_fsAction, SIGNAL(removed(QString)),
136 this, SLOT(onItemRemoved(QString)));
137
138 connect(m_fsAction, SIGNAL(error(QString,QString)),132 connect(m_fsAction, SIGNAL(error(QString,QString)),
139 this, SIGNAL(error(QString,QString)));133 this, SIGNAL(error(QString,QString)));
140134
@@ -960,16 +954,6 @@
960 return ret;954 return ret;
961}955}
962956
963/*!
964 * \brief DirModel::onItemRemoved()
965 * \param pathname full pathname of removed file
966 */
967void DirModel::onItemRemoved(const QString &pathname)
968{
969 DirItemInfo info(pathname);
970 onItemRemoved(info);
971}
972
973957
974void DirModel::onItemRemoved(const DirItemInfo &fi)958void DirModel::onItemRemoved(const DirItemInfo &fi)
975{ 959{
@@ -993,17 +977,6 @@
993}977}
994978
995979
996/*!
997 * \brief DirModel::onItemAdded()
998 * \param pathname full pathname of the added file
999 */
1000void DirModel::onItemAdded(const QString &pathname)
1001{
1002 DirItemInfo info(pathname);
1003 onItemAdded(info);
1004}
1005
1006
1007void DirModel::onItemAdded(const DirItemInfo &fi)980void DirModel::onItemAdded(const DirItemInfo &fi)
1008{981{
1009 int newRow = addItem(fi);982 int newRow = addItem(fi);
@@ -1509,26 +1482,26 @@
15091482
1510bool DirModel::existsDir(const QString &folderName) const1483bool DirModel::existsDir(const QString &folderName) const
1511{1484{
1512 DirItemInfo d = setParentIfRelative(folderName);1485 DirItemInfo d(setParentIfRelative(folderName));
1513 return d.exists() && d.isDir();1486 return d.exists() && d.isDir();
1514}1487}
15151488
1516bool DirModel::canReadDir(const QString &folderName) const1489bool DirModel::canReadDir(const QString &folderName) const
1517{1490{
1518 DirItemInfo d = setParentIfRelative(folderName);1491 DirItemInfo d(setParentIfRelative(folderName));
1519 return d.isDir() && d.isReadable();1492 return d.isDir() && d.isReadable() && d.isExecutable();
1520}1493}
15211494
15221495
1523bool DirModel::existsFile(const QString &fileName) const1496bool DirModel::existsFile(const QString &fileName) const
1524{1497{
1525 DirItemInfo f = setParentIfRelative(fileName);1498 DirItemInfo f(setParentIfRelative(fileName));
1526 return f.exists() && f.isFile();1499 return f.exists() && f.isFile();
1527}1500}
15281501
1529bool DirModel::canReadFile(const QString &fileName) const1502bool DirModel::canReadFile(const QString &fileName) const
1530{1503{
1531 DirItemInfo f = setParentIfRelative(fileName);1504 DirItemInfo f(setParentIfRelative(fileName));
1532 return f.isReadable() && f.isFile();1505 return f.isReadable() && f.isFile();
1533}1506}
15341507
15351508
=== modified file 'src/plugin/folderlistmodel/dirmodel.h'
--- src/plugin/folderlistmodel/dirmodel.h 2015-07-25 19:26:01 +0000
+++ src/plugin/folderlistmodel/dirmodel.h 2015-07-25 19:26:01 +0000
@@ -461,10 +461,8 @@
461 void clipboardChanged();461 void clipboardChanged();
462 void enabledExternalFSWatcherChanged(bool);462 void enabledExternalFSWatcherChanged(bool);
463463
464private slots:464private slots:
465 void onItemRemoved(const QString&);465 void onItemRemoved(const DirItemInfo&);
466 void onItemRemoved(const DirItemInfo&);
467 void onItemAdded(const QString&);
468 void onItemAdded(const DirItemInfo&);466 void onItemAdded(const DirItemInfo&);
469 void onItemChanged(const DirItemInfo&);467 void onItemChanged(const DirItemInfo&);
470468
471469
=== modified file 'src/plugin/folderlistmodel/filesystemaction.cpp'
--- src/plugin/folderlistmodel/filesystemaction.cpp 2014-12-29 11:29:21 +0000
+++ src/plugin/folderlistmodel/filesystemaction.cpp 2015-07-25 19:26:01 +0000
@@ -37,6 +37,9 @@
37#include "filesystemaction.h"37#include "filesystemaction.h"
38#include "clipboard.h"38#include "clipboard.h"
39#include "qtrashutilinfo.h"39#include "qtrashutilinfo.h"
40#include "location.h"
41#include "locationsfactory.h"
42
4043
41#if defined(Q_OS_UNIX)44#if defined(Q_OS_UNIX)
42#include <sys/statvfs.h>45#include <sys/statvfs.h>
@@ -51,6 +54,7 @@
51#include <QDir>54#include <QDir>
52#include <QThread>55#include <QThread>
53#include <QTemporaryFile>56#include <QTemporaryFile>
57#include <QScopedPointer>
5458
55/*!59/*!
56 * number of the files to work on a step, when this number is reached a signal is emitted60 * number of the files to work on a step, when this number is reached a signal is emitted
@@ -177,14 +181,16 @@
177//===============================================================================================181//===============================================================================================
178/*!182/*!
179 * \brief FileSystemAction::FileSystemAction183 * \brief FileSystemAction::FileSystemAction
184 * \param LocationsFactory locationsFactory
180 * \param parent185 * \param parent
181 */186 */
182FileSystemAction::FileSystemAction(QObject *parent) :187FileSystemAction::FileSystemAction(LocationsFactory *locationsFactory, QObject *parent) :
183 QObject(parent)188 QObject(parent)
184 , m_curAction(0)189 , m_curAction(0)
185 , m_cancelCurrentAction(false)190 , m_cancelCurrentAction(false)
186 , m_busy(false) 191 , m_busy(false)
187 , m_clipboardChanged(false)192 , m_clipboardChanged(false)
193 , m_locationsFactory(locationsFactory)
188#if defined(REGRESSION_TEST_FOLDERLISTMODEL) //used in Unit/Regression tests194#if defined(REGRESSION_TEST_FOLDERLISTMODEL) //used in Unit/Regression tests
189 , m_forceUsingOtherFS(false)195 , m_forceUsingOtherFS(false)
190#endif196#endif
@@ -475,7 +481,7 @@
475 {481 {
476 removeTrashInfoFileFromEntry(curEntry);482 removeTrashInfoFileFromEntry(curEntry);
477 }483 }
478 emit removed(mainItem);484 notifyActionOnItem(mainItem, ItemRemoved);
479 }485 }
480 else486 else
481 {487 {
@@ -487,21 +493,24 @@
487 //it is necessary to remove also (file).trashinfo file493 //it is necessary to remove also (file).trashinfo file
488 removeTrashInfoFileFromEntry(curEntry);494 removeTrashInfoFileFromEntry(curEntry);
489 }495 }
490 emit removed(mainItem);496 notifyActionOnItem(mainItem, ItemRemoved);
491 break;497 break;
492 case ActionHardMoveRemove: // nothing to do498 case ActionHardMoveRemove: // nothing to do
493 break;499 break;
494 case ActionHardMoveCopy:500 case ActionHardMoveCopy:
495 case ActionCopy: // ActionHardMoveCopy is lso checked here501 case ActionCopy: // ActionHardMoveCopy is lso checked here
496 case ActionMove:502 case ActionMove:
497 if (!curEntry->added && !curEntry->alreadyExists)503 {
498 {504 QScopedPointer <DirItemInfo> item(m_locationsFactory->currentLocation()->newItemInfo(curEntry->itemPaths.target()));
499 emit added(curEntry->itemPaths.target());505 if (!curEntry->added && !curEntry->alreadyExists)
500 curEntry->added = true;506 {
501 }507 curEntry->added = true;
502 else508 notifyActionOnItem(*item, ItemAdded);
503 {509 }
504 emit changed(DirItemInfo(curEntry->itemPaths.target()));510 else
511 {
512 notifyActionOnItem(*item, ItemChanged);
513 }
505 }514 }
506 if (curEntry->type == ActionHardMoveCopy)515 if (curEntry->type == ActionHardMoveCopy)
507 {516 {
@@ -674,8 +683,9 @@
674 QDir entryDirObj(entryDir);683 QDir entryDirObj(entryDir);
675 if (!entryDirObj.exists() && entryDirObj.mkpath(entryDir))684 if (!entryDirObj.exists() && entryDirObj.mkpath(entryDir))
676 {685 {
677 emit added(entryDir);686 QScopedPointer <DirItemInfo> item(m_locationsFactory->currentLocation()->newItemInfo(entryDir));
678 entry->added = true;687 entry->added = true;
688 notifyActionOnItem(*item, ItemAdded);
679 }689 }
680 }690 }
681 QDir d(path);691 QDir d(path);
@@ -732,11 +742,11 @@
732 needsSize -= m_curAction->copyFile.target->size();742 needsSize -= m_curAction->copyFile.target->size();
733 m_curAction->copyFile.target->close();743 m_curAction->copyFile.target->close();
734 }744 }
735 //check if there is disk space to copy source to target745 //check if there is disk space to copy source to target
736 if (needsSize > 0 && !isThereDiskSpace(entry, needsSize ))746 if (needsSize > 0 && !m_locationsFactory->currentLocation()->isThereDiskSpace(entry->itemPaths.targetPath(), needsSize))
737 {747 {
738 m_cancelCurrentAction = true;748 m_cancelCurrentAction = true;
739 m_errorTitle = QObject::tr("There is no space on disk to copy");749 m_errorTitle = QObject::tr("There is no space to copy");
740 m_errorMsg = m_curAction->copyFile.target->fileName();750 m_errorMsg = m_curAction->copyFile.target->fileName();
741 }751 }
742 }752 }
@@ -758,14 +768,15 @@
758 //depending on the file size it may take longer, the view needs to be informed768 //depending on the file size it may take longer, the view needs to be informed
759 if (m_curAction->copyFile.isEntryItem && !m_cancelCurrentAction)769 if (m_curAction->copyFile.isEntryItem && !m_cancelCurrentAction)
760 {770 {
771 QScopedPointer <DirItemInfo> item(m_locationsFactory->currentLocation()->newItemInfo(target));
761 if (!entry->alreadyExists)772 if (!entry->alreadyExists)
762 {773 {
763 emit added(target);
764 entry->added = true;774 entry->added = true;
775 notifyActionOnItem(*item, ItemAdded);
765 }776 }
766 else777 else
767 {778 {
768 emit changed(DirItemInfo(target));779 notifyActionOnItem(*item, ItemChanged);
769 }780 }
770 }781 }
771 }782 }
@@ -1143,8 +1154,9 @@
1143 m_curAction->copyFile.target->close();1154 m_curAction->copyFile.target->close();
1144 }1155 }
1145 if (m_curAction->copyFile.target->remove())1156 if (m_curAction->copyFile.target->remove())
1146 { 1157 {
1147 emit removed(m_curAction->copyFile.targetName);1158 QScopedPointer<DirItemInfo> item(m_locationsFactory->currentLocation()->newItemInfo(m_curAction->copyFile.targetName));
1159 notifyActionOnItem(*item, ItemRemoved);
1148 }1160 }
1149 }1161 }
1150 m_curAction->copyFile.clear();1162 m_curAction->copyFile.clear();
@@ -1172,8 +1184,9 @@
1172 notifyProgress();1184 notifyProgress();
1173 if (m_curAction->copyFile.isEntryItem && m_curAction->copyFile.amountSavedToRefresh <= 0)1185 if (m_curAction->copyFile.isEntryItem && m_curAction->copyFile.amountSavedToRefresh <= 0)
1174 {1186 {
1187 QScopedPointer <DirItemInfo> item(m_locationsFactory->currentLocation()->newItemInfo(m_curAction->copyFile.targetName));
1175 m_curAction->copyFile.amountSavedToRefresh = AMOUNT_COPIED_TO_REFRESH_ITEM_INFO;1188 m_curAction->copyFile.amountSavedToRefresh = AMOUNT_COPIED_TO_REFRESH_ITEM_INFO;
1176 emit changed(DirItemInfo(m_curAction->copyFile.targetName));1189 notifyActionOnItem(*item, ItemChanged);
1177 }1190 }
1178 scheduleSlot(SLOT(processCopySingleFile()));1191 scheduleSlot(SLOT(processCopySingleFile()));
1179 }1192 }
@@ -1415,21 +1428,6 @@
1415 return ret;1428 return ret;
1416}1429}
14171430
1418//==================================================================
1419bool FileSystemAction::isThereDiskSpace(const ActionEntry *entry, qint64 requiredSize)
1420{
1421 bool ret = true;
1422#if defined(Q_OS_UNIX)
1423 struct statvfs vfs;
1424 if ( ::statvfs( QFile::encodeName(entry->itemPaths.targetPath()).constData(), &vfs) == 0 )
1425 {
1426 qint64 free = vfs.f_bsize * vfs.f_bfree;
1427 ret = free > requiredSize;
1428 }
1429#endif
1430 return ret;
1431}
1432
14331431
1434//==================================================================1432//==================================================================
1435/*!1433/*!
@@ -1508,3 +1506,16 @@
1508 m_errorMsg = trashUtil.absInfo;1506 m_errorMsg = trashUtil.absInfo;
1509 }1507 }
1510}1508}
1509
1510
1511void FileSystemAction::notifyActionOnItem(const DirItemInfo& item, ActionNotification action)
1512{
1513 switch(action)
1514 {
1515 case ItemAdded: emit added(item); break;
1516 case ItemRemoved: emit removed(item); break;
1517 case ItemChanged: emit changed(item); break;
1518 default: break;
1519 }
1520}
1521
15111522
=== modified file 'src/plugin/folderlistmodel/filesystemaction.h'
--- src/plugin/folderlistmodel/filesystemaction.h 2014-06-17 20:42:35 +0000
+++ src/plugin/folderlistmodel/filesystemaction.h 2015-07-25 19:26:01 +0000
@@ -51,7 +51,8 @@
51class DirModelMimeData;51class DirModelMimeData;
52class QFile;52class QFile;
53class QTemporaryFile;53class QTemporaryFile;
5454class Location;
55class LocationsFactory;
5556
56/*!57/*!
57 * \brief The FileSystemAction class does file system operations copy/cut/paste/remove items58 * \brief The FileSystemAction class does file system operations copy/cut/paste/remove items
@@ -95,7 +96,7 @@
95{96{
96 Q_OBJECT97 Q_OBJECT
97public: 98public:
98 explicit FileSystemAction(QObject *parent = 0);99 explicit FileSystemAction(LocationsFactory *locationsFactory, QObject *parent = 0);
99 ~FileSystemAction();100 ~FileSystemAction();
100101
101public:102public:
@@ -116,9 +117,7 @@
116117
117signals:118signals:
118 void error(const QString& errorTitle, const QString &errorMessage);119 void error(const QString& errorTitle, const QString &errorMessage);
119 void removed(const QString& item);
120 void removed(const DirItemInfo&);120 void removed(const DirItemInfo&);
121 void added(const QString& );
122 void added(const DirItemInfo& );121 void added(const DirItemInfo& );
123 void changed(const DirItemInfo&);122 void changed(const DirItemInfo&);
124 void progress(int curItem, int totalItems, int percent);123 void progress(int curItem, int totalItems, int percent);
@@ -131,6 +130,13 @@
131 bool processCopySingleFile();130 bool processCopySingleFile();
132131
133 private:132 private:
133 enum ActionNotification
134 {
135 ItemAdded,
136 ItemRemoved,
137 ItemChanged
138 };
139
134 enum ActionType140 enum ActionType
135 {141 {
136 ActionRemove,142 ActionRemove,
@@ -213,6 +219,7 @@
213 QString m_errorTitle;219 QString m_errorTitle;
214 QString m_errorMsg;220 QString m_errorMsg;
215 bool m_clipboardChanged; //!< this is set to false in \ref moveIntoCurrentPath() and \ref copyIntoCurrentPath();221 bool m_clipboardChanged; //!< this is set to false in \ref moveIntoCurrentPath() and \ref copyIntoCurrentPath();
222 LocationsFactory * m_locationsFactory;
216223
217224
218private: 225private:
@@ -232,10 +239,10 @@
232 void moveDirToTempAndRemoveItLater(const QString& dir);239 void moveDirToTempAndRemoveItLater(const QString& dir);
233 bool makeBackupNameForCurrentItem(ActionEntry *entry);240 bool makeBackupNameForCurrentItem(ActionEntry *entry);
234 bool endCopySingleFile();241 bool endCopySingleFile();
235 bool isThereDiskSpace(const ActionEntry *entry, qint64 requiredSize);
236 void queueAction(Action *myAction);242 void queueAction(Action *myAction);
237 void createTrashInfoFileFromEntry(ActionEntry *entry);243 void createTrashInfoFileFromEntry(ActionEntry *entry);
238 void removeTrashInfoFileFromEntry(ActionEntry *entry);244 void removeTrashInfoFileFromEntry(ActionEntry *entry);
245 void notifyActionOnItem(const DirItemInfo& item, ActionNotification action);
239246
240#if defined(REGRESSION_TEST_FOLDERLISTMODEL) //used in Unit/Regression tests247#if defined(REGRESSION_TEST_FOLDERLISTMODEL) //used in Unit/Regression tests
241 bool m_forceUsingOtherFS;248 bool m_forceUsingOtherFS;
242249
=== modified file 'src/plugin/test_folderlistmodel/regression/tst_folderlistmodel.cpp'
--- src/plugin/test_folderlistmodel/regression/tst_folderlistmodel.cpp 2015-07-25 19:26:01 +0000
+++ src/plugin/test_folderlistmodel/regression/tst_folderlistmodel.cpp 2015-07-25 19:26:01 +0000
@@ -74,9 +74,7 @@
74 TestDirModel();74 TestDirModel();
75 ~TestDirModel();75 ~TestDirModel();
7676
77protected slots:77protected slots:
78 void slotFileAdded(const QString& s) {m_filesAdded.append(s); }
79 void slotFileRemoved(const QString& s) {m_filesRemoved.append(s); }
80 void slotFileAdded(const DirItemInfo& f) {m_filesAdded.append(f.absoluteFilePath()); }78 void slotFileAdded(const DirItemInfo& f) {m_filesAdded.append(f.absoluteFilePath()); }
81 void slotFileRemoved(const DirItemInfo& f) {m_filesRemoved.append(f.absoluteFilePath()); }79 void slotFileRemoved(const DirItemInfo& f) {m_filesRemoved.append(f.absoluteFilePath()); }
82 void slotPathChamged(QString path) { m_currentPath = path;}80 void slotPathChamged(QString path) { m_currentPath = path;}
@@ -211,17 +209,13 @@
211209
212};210};
213211
214TestDirModel::TestDirModel() : m_deepDir_01(0)212TestDirModel::TestDirModel() : fsAction(new LocationsFactory(this), this)
213 ,m_deepDir_01(0)
215 ,m_deepDir_02(0)214 ,m_deepDir_02(0)
216 ,m_deepDir_03(0)215 ,m_deepDir_03(0)
217 ,m_dirModel_01(0)216 ,m_dirModel_01(0)
218 ,m_dirModel_02(0)217 ,m_dirModel_02(0)
219{218{
220 connect(&fsAction, SIGNAL(added(QString)),
221 this, SLOT(slotFileAdded(QString)) );
222 connect(&fsAction, SIGNAL(removed(QString)),
223 this, SLOT(slotFileRemoved(QString)) );
224
225 connect(&fsAction, SIGNAL(added(DirItemInfo)),219 connect(&fsAction, SIGNAL(added(DirItemInfo)),
226 this, SLOT(slotFileAdded(DirItemInfo)));220 this, SLOT(slotFileAdded(DirItemInfo)));
227 connect(&fsAction, SIGNAL(removed(DirItemInfo)),221 connect(&fsAction, SIGNAL(removed(DirItemInfo)),
@@ -401,19 +395,11 @@
401 m_dirModel_01 = new DirModel();395 m_dirModel_01 = new DirModel();
402 m_dirModel_02 = new DirModel();396 m_dirModel_02 = new DirModel();
403397
404 connect(m_dirModel_01->m_fsAction, SIGNAL(added(QString)),
405 this, SLOT(slotFileAdded(QString)) );
406 connect(m_dirModel_01->m_fsAction, SIGNAL(removed(QString)),
407 this, SLOT(slotFileRemoved(QString)) );
408 connect(m_dirModel_01->m_fsAction, SIGNAL(added(DirItemInfo)),398 connect(m_dirModel_01->m_fsAction, SIGNAL(added(DirItemInfo)),
409 this, SLOT(slotFileAdded(DirItemInfo)));399 this, SLOT(slotFileAdded(DirItemInfo)));
410 connect(m_dirModel_01->m_fsAction, SIGNAL(removed(DirItemInfo)),400 connect(m_dirModel_01->m_fsAction, SIGNAL(removed(DirItemInfo)),
411 this, SLOT(slotFileRemoved(DirItemInfo)));401 this, SLOT(slotFileRemoved(DirItemInfo)));
412402
413 connect(m_dirModel_02->m_fsAction, SIGNAL(added(QString)),
414 this, SLOT(slotFileAdded(QString)) );
415 connect(m_dirModel_02->m_fsAction, SIGNAL(removed(QString)),
416 this, SLOT(slotFileRemoved(QString)) );
417 connect(m_dirModel_02->m_fsAction, SIGNAL(added(DirItemInfo)),403 connect(m_dirModel_02->m_fsAction, SIGNAL(added(DirItemInfo)),
418 this, SLOT(slotFileAdded(DirItemInfo)));404 this, SLOT(slotFileAdded(DirItemInfo)));
419 connect(m_dirModel_02->m_fsAction, SIGNAL(removed(DirItemInfo)),405 connect(m_dirModel_02->m_fsAction, SIGNAL(removed(DirItemInfo)),

Subscribers

People subscribed via source and target branches