ubuntu-touch-coreapps-reviewers team mailing list archive
-
ubuntu-touch-coreapps-reviewers team
-
Mailing list archive
-
Message #00558
[Merge] lp:~carlos-mazieri/ubuntu-filemanager-app/samba-browsing-02 into lp:ubuntu-filemanager-app
Carlos Jose Mazieri has proposed merging lp:~carlos-mazieri/ubuntu-filemanager-app/samba-browsing-02 into lp:ubuntu-filemanager-app with lp:~carlos-mazieri/ubuntu-filemanager-app/samba-browsing-01 as a prerequisite.
Commit message:
Some DirItemInfo::isDir() changed by DirItemInfo::isBrowasable()
Renamed DirModel::cdInto() to DirModel::cdIntoItem()
Improved DirModel::cdIntoIndex() and DirModel::cdIntoPath()
Requested reviews:
Ubuntu File Manager Developers (ubuntu-filemanager-dev)
For more details, see:
https://code.launchpad.net/~carlos-mazieri/ubuntu-filemanager-app/samba-browsing-02/+merge/252217
Some DirItemInfo::isDir() changed by DirItemInfo::isBrowasable()
Renamed DirModel::cdInto() to DirModel::cdIntoItem()
Improved DirModel::cdIntoIndex() and DirModel::cdIntoPath()
--
Your team Ubuntu File Manager Developers is requested to review the proposed merge of lp:~carlos-mazieri/ubuntu-filemanager-app/samba-browsing-02 into lp:ubuntu-filemanager-app.
=== modified file 'src/plugin/folderlistmodel/dirmodel.cpp'
--- src/plugin/folderlistmodel/dirmodel.cpp 2015-03-08 12:04:13 +0000
+++ src/plugin/folderlistmodel/dirmodel.cpp 2015-03-08 12:04:13 +0000
@@ -881,13 +881,9 @@
bool DirModel::cdIntoIndex(int row)
{
bool ret = false;
- if (IS_VALID_ROW(row) &&
- mDirectoryContents.at(row).isDir() &&
- mDirectoryContents.at(row).isContentReadable())
+ if (IS_VALID_ROW(row))
{
- mCurLocation->setInfoItem(mDirectoryContents.at(row));
- setPathFromCurrentLocation();
- ret = true;
+ ret = cdIntoItem(mDirectoryContents.at(row));
}
else
{
@@ -896,42 +892,29 @@
return ret;
}
-
+/*!
+ * \brief DirModel::cdIntoPath() It is used to go into an item from the current path or to a absolute path
+ * \param filename
+ * \return
+ */
bool DirModel::cdIntoPath(const QString &filename)
{
- bool ret = false;
- DirItemInfo fi(filename);
- if (fi.isValid())
- {
- if (fi.isRelative())
- {
- fi.setFile(mCurrentDir, filename);
- }
- ret = cdInto(fi);
- }
- return ret;
+ return openPath(filename);
}
-bool DirModel::cdInto(const DirItemInfo &fi)
+bool DirModel::cdIntoItem(const DirItemInfo &fi)
{
bool ret = false;
- if (canReadDir(fi.diskFileInfo()))
- {
- if (fi.isRelative())
- {
- QDir childDir(mCurrentDir);
- if ( childDir.cd(fi.fileName()) )
- {
- setPath(childDir.absolutePath());
- ret = true;
- }
- }
- else
- {
+ if (fi.isBrowsable())
+ {
+ if (fi.isContentReadable())
+ {
+ mCurLocation->setInfoItem(fi);
+ setPathFromCurrentLocation();
ret = true;
- setPath(fi.absoluteFilePath());
}
+
}
return ret;
}
@@ -1282,7 +1265,7 @@
bool ret = false;
if (IS_VALID_ROW(row))
{
- if (mDirectoryContents.at(row).isDir())
+ if (mDirectoryContents.at(row).isBrowsable())
{
ret = cdIntoIndex(row);
}
@@ -1298,27 +1281,35 @@
return ret;
}
+
bool DirModel::openPath(const QString &filename)
{
bool ret = false;
- //first void any relative path when is root
- if ( !(mCurLocation && mCurLocation->isRoot() && filename.startsWith(QLatin1String(".."))) )
+ QString myFilename(filename.trimmed());
+ //first avoid any relative path when is root
+ if ( !(mCurLocation && mCurLocation->isRoot() && myFilename.startsWith(QLatin1String(".."))) )
{
- Location *location = mLocationFactory->setNewPath(filename);
- if (location)
+ if (myFilename == QLatin1String("..") || myFilename == QLatin1String("../"))
{
- mCurLocation = location;
- setPathFromCurrentLocation();
- ret = true;
+ ret = cdUp();
}
else
{
- const DirItemInfo *item = mLocationFactory->lastValidFileInfo();
- // DirItemInfo fi(setParentIfRelative(filename));
- if (item && item->isFile())
- {
- ret = openItem(*item);
- }
+ Location *location = mLocationFactory->setNewPath(myFilename);
+ if (location)
+ {
+ mCurLocation = location;
+ setPathFromCurrentLocation();
+ ret = true;
+ }
+ else
+ {
+ const DirItemInfo *item = mLocationFactory->lastValidFileInfo();
+ if (item && item->isFile())
+ {
+ ret = openItem(*item);
+ }
+ }
}
}
return ret;
@@ -1332,19 +1323,16 @@
bool DirModel::openItem(const DirItemInfo &fi)
{
bool ret = false;
- if (fi.isLocal())
- {
- if (canReadDir(fi.diskFileInfo()))
- {
- ret = cdInto(fi.diskFileInfo());
- }
- else
- {
- //TODO open executables
- if (canReadFile(fi.diskFileInfo()))
- {
- ret = QDesktopServices::openUrl(QUrl::fromLocalFile(fi.absoluteFilePath()));
- }
+ if (fi.isBrowsable())
+ {
+ ret = cdIntoItem(fi);
+ }
+ else
+ {
+ //TODO open executables
+ if (fi.isLocal() && fi.isReadable())
+ {
+ ret = QDesktopServices::openUrl(QUrl::fromLocalFile(fi.absoluteFilePath()));
}
}
return ret;
=== modified file 'src/plugin/folderlistmodel/dirmodel.h'
--- src/plugin/folderlistmodel/dirmodel.h 2015-03-08 12:04:13 +0000
+++ src/plugin/folderlistmodel/dirmodel.h 2015-03-08 12:04:13 +0000
@@ -459,7 +459,7 @@
int rowOfItem(const DirItemInfo& fi);
QDir::Filter currentDirFilter() const;
QString dirItems(const DirItemInfo& fi) const;
- bool cdInto(const DirItemInfo& fi);
+ bool cdIntoItem(const DirItemInfo& fi);
bool openItem(const DirItemInfo& fi);
bool canReadDir(const QFileInfo& d) const;
bool canReadFile(const QFileInfo& f) const;
Follow ups