| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
| |
Fix FileView + FilesystemWidget.
* Get rid of useless qobject_casts
* Remove hover over movies and directories
* Fix shortcut for (de-)selecting files
|
|
|
|
| |
Not used, dead code
|
|
|
|
|
| |
Remove (hopefully) all remnants of this option. Not needed, wasn't
working anyway.
|
|
|
|
|
| |
* Don't show the mapping item in preview, because it has none.
* Use qApp->showOverrideCursor() instead of QWidget::cursor()
|
|
|
|
|
|
|
| |
Add a configuration Option to (de-)select expensive file operations.
That would be md5Summing and gathering the Bitrate/Duration.
That should help the performance on networked directories...
|
|
|
|
|
|
|
|
|
|
|
| |
Get rid of SmDataCollector and do its job in small, QRunnable tasks and
let QThreadPool manage the treads.
Works well with a local Filesystem. Yet to see how it works over
networked Filesystems.
Ah, before I forget: NEVER, EVER USE QPixmap in THREADS -> Random
crashes! (Yes, I know, it's documented...)
|
|
|
|
|
| |
This reverts commit 2cc92200386c55818cbe9bcb7d2e488170317d70.
Wrong, non-working solution for this problem.
|
| |
|
|
|
|
| |
Show a progress dialog when gathering data from the filesystem.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit dbfc4f7bf395bf20aa21058372d47d17d040f553. It was
totally and utterly wrong.
This is what really happened, hopefully:
Since a Semaphore can guard more than a single resource, it could happen
that both mSemUsed and mSemFree were available at the same time. So it
could happen that both the watcher and the datacollector tried to access
the dataqueue at the same time. Since ->dequeue() is not atomic, this
could throw of the internal iterator from the QList, resulting in a
crash.
The solution is simple: Guard it with a shared Mutex.
|
|
|
|
|
|
|
|
|
| |
Fix a race condition. This is what happened:
A file gets closes shortly after the last write, so it gets enqueued
twice. Since QQueue is a decendant of QList, calling erase on the
iterator makes the loop crash with SIGSEGV.
So check if the file is already in the queue before enqueuing.
|
|
|
|
| |
The QCheckBox for that is gone for good, so enable it by default.
|
|
|
|
|
|
|
|
|
|
| |
Move the pic to archive first. If the filename returned from
moveToArchive is different then the file already existed and was mangled
with the md5sum. Record the new filename in the db.
Theoretically, the same problem exists with archiving movies, but it's
very unlikely to happen (I hope). Also, it's way more difficult to
untangle.
|
|
|
|
|
|
| |
* Show time when snapshot was taken.
* Align the snapshots properly.
* Show BusyCursor when generating preview.
|
|
|
|
| |
Implement lessThan for ArchiveProxy.
|
|
|
|
|
|
| |
* Show and archive size of pictures
* Fix SqlQueries in PicFilesModel: removeFiles and changeMappings
* use delegate in PictureView
|
|
|
|
|
|
|
| |
* repair shortcuts for adding files to NewPicsDialog and showing it from
PictureViewer2
* Replace files in NewPicsDialog instead of adding them
* add missing header to MappingTreeModel
|
|
|
|
|
|
|
| |
* Again: remove the transaction madness besides almost everywhere
leaving one instance where it is actually useful.
* Hide the buttons to add and delete mapping types. Haven't thought that
through complete. What should be deleted on cascade? Do we really want/
|
|
|
|
|
|
|
| |
* remove some of the Transaction madness
* make it possible to archive pics again
It's far from finished....
|
|
|
|
|
| |
* Show :/picgone.png if movie is not available
* Show cover if preview is called on a picture
|
|
|
|
| |
Show 4 frames of the selected movie in PictureViewer2.
|
| |
|
| |
|
|
|
|
|
|
| |
Re-Implement mark as Favorites in new ArchiveView.
Also, don't block when the Collector is running again and we're trying
to update the view.
|
| |
|
|
|
|
|
| |
Don't enqueue anything if the INOTIFY_MASK doesn't match. Could be the
reason for random crashes...
|
|
|
|
|
|
|
|
| |
* cache: use qint64 consistently instead of quint64 once (typo, I guess)
* sync cancelling of ArchiveCollector: wait for it and reset the cancel
var
* sync access to cache file with QMutex
* don't set quality for pics
|
|
|
|
|
|
|
| |
* cast from double to int to insert seconds into the database
(newmoviewizard.cpp)
* update the database with the duration if the movie is local and we
don't have a duration
|
|
|
|
|
|
|
| |
I think I found the bug. We need to stop the refresh timer when
operating on the view, because it can reset the model while we're still
holding QModelIndexes. When that happens we're working with invalid
indexes and BOOM.
|
|
|
|
|
|
|
| |
This reverts commit 06cfadc8386aec27b9c7c43486fc0b057e9fb022.
Turns out that this was not the root cause for the crashes.
Still stumped.
|
|
|
|
|
|
|
| |
This stuff was racy from the beginning. It could happen that the model
got reset after we fetched the selected indexes. Add a mutex and lock it
before operating on the file view. Hopefully this will many, if not all
random crashes.
|
|
|
|
|
| |
NewMovieWizard never accepted more files than the model had columns due
to a misnamed function parameter. Doh!
|
|
|
|
| |
Only show series with files on the hd.
|
|
|
|
| |
Missed this one the first time...
|
|
|
|
|
|
|
|
| |
Show file properties in Filemanager and Archive, if the file is
available.
Also get rid of the palette stuff in SmGlobals. Just call setPalette()
early enough and set it in SmTreeView.
|
|
|
|
| |
Yeah, finally it's gone! Lot's of useless, unneeded code vanished :)
|
|
|
|
|
| |
Put actions for files and tree in submenus and use selectionModel
instead of currentIndex for retrieving the selected item in the tree.
|
|
|
|
| |
Introduce SmGlobals::iconFor to retrieve the configured item.
|
|
|
|
|
|
|
|
|
|
| |
Don't try to delete all the prepared statements manually. Get rid of the
~destructors and just close the QSqlDatabase. close() deletes all
Statements.
Also, quit() all QThreads on closeEvent() except CompleterProducer. When
the experimental archive view gets merged, that QThread is gone. No need
to bother...
|
|
|
|
| |
Set the main window title according to selected tab.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use JSON output from ffprobe instead of string parsing to get some kind
of type safety.
For doing that, some changes were needed in FileView: Use delegates for
displaying Duration and Bitrate instead of mangling output in
Qt::Displayrole.
To reuse code, move all delegates from the new Archive to a separate
file.
And, of course, the initial objective: Show the accumulated size and
duration of selected files in the status bar from the experimental
archive.
|
|
|
|
|
|
|
| |
Use new icon configuration consistently in:
* Filemanager
* NewMovieWizard
* Experimental view
|
|\
| |
| |
| |
| |
| | |
Conflicts:
shemov.cpp
shemov.h
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Make icons configurable by:
* folders
* files
* series
* genres
* actors
Weed out old usage. New usage not yet implemented.
|
| |
| |
| |
| | |
Don't crash while setting metadata if nothing is selected.
|
| |
| |
| |
| |
| | |
I guess I was quite drunk when I designed this overengineered,
multithreaded monstrosity. Replace it with 4 nifty dialogs.
|
|/
|
|
|
| |
I guess I was quite drunk when I designed this overengineered,
multithreaded monstrosity. Replace it with 4 nifty dialogs.
|
|
|
|
|
| |
Use plpgsql functions to edit nodes. Makes the program logic much
easier. Also, rename rename() to edit() :)
|