ports/169795: [UPDATE] x11-fm/qtfm to 5.5
Zhihao Yuan
lichray at gmail.com
Thu Jul 12 00:50:02 UTC 2012
>Number: 169795
>Category: ports
>Synopsis: [UPDATE] x11-fm/qtfm to 5.5
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: maintainer-update
>Submitter-Id: current-users
>Arrival-Date: Thu Jul 12 00:50:01 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator: Zhihao Yuan
>Release: FreeBSD 8.3-STABLE amd64
>Organization:
Northern Illinois University
>Environment:
System: FreeBSD elitebook.hp 8.3-STABLE FreeBSD 8.3-STABLE #3 r237726: Thu Jun 28 15:59:28 CDT 2012 lichray at elitebook.hp:/usr/obj/usr/src/sys/HOUKAGO amd64
>Description:
qtfm-5.5 changelog:
http://www.qtfm.org/home/changelog
>How-To-Repeat:
>Fix:
My patch uses QFileSystemWatcher internally, so I don't need the code working with the event timeout.
--- qtfm-5.5.patch begins here ---
diff -ruN --exclude=CVS ../qtfm.orig/Makefile ./Makefile
--- ../qtfm.orig/Makefile 2012-06-06 01:44:33.000000000 -0500
+++ ./Makefile 2012-07-11 18:10:42.911754197 -0500
@@ -6,8 +6,7 @@
#
PORTNAME= qtfm
-DISTVERSION= 5.4
-PORTREVISION= 1
+DISTVERSION= 5.5
CATEGORIES= x11-fm
MASTER_SITES= http://www.qtfm.org/
diff -ruN --exclude=CVS ../qtfm.orig/distinfo ./distinfo
--- ../qtfm.orig/distinfo 2012-05-08 18:37:31.000000000 -0500
+++ ./distinfo 2012-07-11 18:10:52.778584511 -0500
@@ -1,2 +1,2 @@
-SHA256 (qtfm-5.4.tar.gz) = 8ef4c2464502959944e1b2476aa635b2a889d2859ba62dd61d8f591779c6fd0d
-SIZE (qtfm-5.4.tar.gz) = 147293
+SHA256 (qtfm-5.5.tar.gz) = 845fc43800d12483fa1993c56a8c965ff8dc917b97f03d9ce2e24318806fb211
+SIZE (qtfm-5.5.tar.gz) = 149667
diff -ruN --exclude=CVS ../qtfm.orig/files/patch-src_bookmarks.cpp ./files/patch-src_bookmarks.cpp
--- ../qtfm.orig/files/patch-src_bookmarks.cpp 2012-05-08 18:37:32.000000000 -0500
+++ ./files/patch-src_bookmarks.cpp 2012-07-11 18:20:33.785996983 -0500
@@ -1,5 +1,5 @@
---- src/bookmarks.cpp.orig 2012-03-08 04:46:39.000000000 -0600
-+++ src/bookmarks.cpp 2012-04-30 14:20:26.157046128 -0500
+--- src/bookmarks.cpp.orig 2012-07-11 18:10:56.065528820 -0500
++++ src/bookmarks.cpp 2012-07-11 18:19:42.041677562 -0500
@@ -22,6 +22,11 @@
#ifndef BOOKMARKS_CPP
#define BOOKMARKS_CPP
@@ -12,7 +12,7 @@
#include <QtGui>
#include "bookmarkmodel.h"
#include "icondlg.h"
-@@ -80,42 +85,74 @@ void MainWindow::mountWatcherTriggered()
+@@ -80,44 +85,74 @@ void MainWindow::mountWatcherTriggered()
}
//---------------------------------------------------------------------------
@@ -74,11 +74,12 @@
- mtab.close();
+ mntsize = getmntinfo(&mntbuf, MNT_NOWAIT);
+- QStringList sysMounts = QStringList() << "/dev" << "/sys" << "/pro" << "/tmp" << "/run";
QStringList dontShowList = settings->value("hideBookmarks",0).toStringList();
mounts.clear();
- foreach(QString item, mtabMounts)
-- if(item[0] == '/')
+- if(!sysMounts.contains(item.split(" ").at(1).left(4)))
+ for (mnt = mntbuf; mntsize > 0; mntsize--, mnt++)
+ // XXX zpool name does not start with /
+ if (mnt->f_mntfromname[0] == '/' or !strcmp(mnt->f_fstypename, "zfs"))
@@ -94,6 +95,7 @@
+ //add a new auto bookmark if it doesn't exist
+ if(!autoBookmarks.contains(mnt->f_mntonname))
{
+- autoBookmarks.append(path);
- if(item.split(" ").at(2) == "iso9660") modelBookmarks->addBookmark(path,path,"1","drive-optical");
- else if(item.split(" ").at(2).contains("fat")) modelBookmarks->addBookmark(path,path,"1","drive-removable-media");
- else modelBookmarks->addBookmark(path,path,"1","drive-harddisk");
diff -ruN --exclude=CVS ../qtfm.orig/files/patch-src_mymodel.cpp ./files/patch-src_mymodel.cpp
--- ../qtfm.orig/files/patch-src_mymodel.cpp 2012-05-08 18:37:32.000000000 -0500
+++ ./files/patch-src_mymodel.cpp 2012-07-11 19:01:55.030230212 -0500
@@ -1,5 +1,5 @@
---- src/mymodel.cpp.orig 2012-03-09 05:00:54.000000000 -0600
-+++ src/mymodel.cpp 2012-04-29 16:13:57.725169164 -0500
+--- src/mymodel.cpp.orig 2012-07-11 18:21:24.302333223 -0500
++++ src/mymodel.cpp 2012-07-11 18:59:06.428956406 -0500
@@ -21,7 +21,6 @@
#include <mainwindow.h>
@@ -8,19 +8,20 @@
#include <unistd.h>
#include <sys/ioctl.h>
-@@ -63,9 +62,8 @@ myModel::myModel(bool realMime)
+@@ -63,10 +62,8 @@ myModel::myModel(bool realMime)
iconFactory = new QFileIconProvider();
- inotifyFD = inotify_init();
- notifier = new QSocketNotifier(inotifyFD, QSocketNotifier::Read, this);
- connect(notifier, SIGNAL(activated(int)), this, SLOT(notifyChange()));
+- connect(&eventTimer,SIGNAL(timeout()),this,SLOT(eventTimeout()));
+ watcher = new QFileSystemWatcher(this);
+ connect(watcher, SIGNAL(directoryChanged(QString)), this, SLOT(notifyChange(QString)));
realMimeTypes = realMime;
}
-@@ -188,28 +186,9 @@ QString myModel::getMimeType(const QMode
+@@ -189,62 +186,9 @@ QString myModel::getMimeType(const QMode
}
//---------------------------------------------------------------------------------------
@@ -44,38 +45,72 @@
-
- int w = event->wd;
-
-- if(watchers.contains(w))
+- if(eventTimer.isActive())
- {
-- myModelItem *parent = rootItem->matchPath(watchers.value(w).split(SEPARATOR));
-+ myModelItem *parent = rootItem->matchPath(path.split(SEPARATOR));
-
- if(parent)
- {
-@@ -230,9 +209,7 @@ void myModel::notifyChange()
- //must of been deleted, remove from model
- if(child->fileInfo().isDir())
- {
-- int wd = watchers.key(child->absoluteFilePath());
-- inotify_rm_watch(inotifyFD,wd);
-- watchers.remove(wd);
-+ watcher->removePath(child->absoluteFilePath());
- }
- beginRemoveRows(index(parent->absoluteFilePath()),child->childNumber(),child->childNumber());
- parent->removeChild(child);
-@@ -249,23 +226,17 @@ void myModel::notifyChange()
- }
- else
- {
-- inotify_rm_watch(inotifyFD,w);
-- watchers.remove(w);
-+ watcher->removePath(path);
- }
+- if(w == lastEventID)
+- eventTimer.start(40);
+- else
+- {
+- eventTimer.stop();
+- notifyProcess(lastEventID);
+- lastEventID = w;
+- eventTimer.start(40);
+- }
+- }
+- else
+- {
+- lastEventID = w;
+- eventTimer.start(40);
- }
-
- at += sizeof(inotify_event) + event->len;
- }
-
- notifier->setEnabled(1);
+-}
+-
+-//---------------------------------------------------------------------------------------
+-void myModel::eventTimeout()
+-{
+- notifyProcess(lastEventID);
+- eventTimer.stop();
+-}
+-
+-//---------------------------------------------------------------------------------------
+-void myModel::notifyProcess(int eventID)
+-{
+- if(watchers.contains(eventID))
+- {
+- myModelItem *parent = rootItem->matchPath(watchers.value(eventID).split(SEPARATOR));
++ myModelItem *parent = rootItem->matchPath(path.split(SEPARATOR));
+
+ if(parent)
+ {
+@@ -265,9 +209,7 @@ void myModel::notifyProcess(int eventID)
+ //must of been deleted, remove from model
+ if(child->fileInfo().isDir())
+ {
+- int wd = watchers.key(child->absoluteFilePath());
+- inotify_rm_watch(inotifyFD,wd);
+- watchers.remove(wd);
++ watcher->removePath(child->absoluteFilePath());
+ }
+ beginRemoveRows(index(parent->absoluteFilePath()),child->childNumber(),child->childNumber());
+ parent->removeChild(child);
+@@ -282,20 +224,19 @@ void myModel::notifyProcess(int eventID)
+ endInsertRows();
+ }
+ }
+- }
+- else
+- {
+- inotify_rm_watch(inotifyFD,eventID);
+- watchers.remove(eventID);
+- }
++ else
++ {
++ watcher->removePath(path);
++ }
}
//---------------------------------------------------------------------------------
@@ -90,7 +125,7 @@
item->watched = 1;
item = item->parent();
}
-@@ -278,7 +249,7 @@ bool myModel::setRootPath(const QString&
+@@ -308,7 +249,7 @@ bool myModel::setRootPath(const QString&
myModelItem *item = rootItem->matchPath(path.split(SEPARATOR));
@@ -99,7 +134,7 @@
if(item->walked == 0)
{
-@@ -352,10 +323,7 @@ void myModel::refresh()
+@@ -382,10 +323,7 @@ void myModel::refresh()
{
myModelItem *item = rootItem->matchPath(QStringList("/"));
@@ -111,7 +146,7 @@
beginResetModel();
item->clearAll();
-@@ -811,9 +779,7 @@ bool myModel::remove(const QModelIndex &
+@@ -840,9 +778,7 @@ bool myModel::remove(const QModelIndex &
QFileInfo info(children.at(i));
if(info.isDir())
{
diff -ruN --exclude=CVS ../qtfm.orig/files/patch-src_mymodel.h ./files/patch-src_mymodel.h
--- ../qtfm.orig/files/patch-src_mymodel.h 2012-05-08 18:37:32.000000000 -0500
+++ ./files/patch-src_mymodel.h 2012-07-11 19:04:16.915410039 -0500
@@ -1,23 +1,27 @@
---- src/mymodel.h.orig 2012-03-09 00:47:45.000000000 -0600
-+++ src/mymodel.h 2012-04-29 13:59:45.508571462 -0500
-@@ -83,8 +83,8 @@ public:
+--- src/mymodel.h.orig 2012-07-11 19:01:59.919235618 -0500
++++ src/mymodel.h 2012-07-11 19:03:41.246365243 -0500
+@@ -84,10 +84,8 @@ public:
bool realMimeTypes;
public slots:
- void notifyChange();
+- void notifyProcess(int eventID);
+- void eventTimeout();
- void addWatcher(myModelItem* path);
+ void notifyChange(QString const& path);
+ void addToWatcher(myModelItem* path);
signals:
void dragDropPaste(const QMimeData * data, QString newPath, QStringList cutList);
-@@ -113,9 +113,7 @@ private:
+@@ -116,11 +114,7 @@ private:
QString currentRootPath;
QFileIconProvider* iconFactory;
- int inotifyFD;
- QSocketNotifier *notifier;
- QHash<int, QString> watchers;
+- QTimer eventTimer;
+- int lastEventID;
+ QFileSystemWatcher *watcher;
};
diff -ruN --exclude=CVS ../qtfm.orig/pkg-plist ./pkg-plist
--- ../qtfm.orig/pkg-plist 2012-05-08 18:37:31.000000000 -0500
+++ ./pkg-plist 2012-07-11 19:08:49.464369203 -0500
@@ -9,6 +9,7 @@
%%DATADIR%%/qtfm_pl.qm
%%DATADIR%%/qtfm_ru.qm
%%DATADIR%%/qtfm_sr.qm
+%%DATADIR%%/qtfm_sv.qm
%%DATADIR%%/qtfm_zh.qm
%%DATADIR%%/qtfm_zh_TW.qm
@dirrm %%DATADIR%%
--- qtfm-5.5.patch ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list