summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Raise and show SearchDialog on CTRL+SArno2018-02-021-2/+2
|
* Implement actor search in SearchDialogArno2018-02-022-3/+105
|
* Read and write settings for SearchDialogArno2018-02-023-1/+28
|
* Get genres for search dataArno2018-02-022-14/+25
|
* Use Helper::icon in SearchDialogArno2018-02-023-9/+14
| | | | | Once again this should have been 2 commits: one for Helper::icon and another one for making font boldness selectable, but well...
* Show actors in SearchDialogArno2018-02-024-17/+67
| | | | | | | This should have been two commits, really. One for the actors, and another one for the icon helper. Helper::icon returns an QIcon with a circle in bg color and the char c.
* Implement Filename search in SearchDialogArno2018-02-024-11/+54
|
* Implement a useful searchArno2018-02-017-3/+192
| | | | | | Display Title and Filename search as non-modal dialog, so one can compare Files and Database. For now only Title search is implemented. Filename search does nothing (yet).
* Sort copy dirs whenever possibleArno2018-02-014-8/+17
|
* Improve FileCopierArno2018-02-016-27/+40
| | | | | | | | | | | | | | | | This endeavor started out quite innocently: fix the connect syntax in ProgressDialog, but it quickly became much more. Vom Höxchen aufs Stöxchen :) First I thought it would be nice to add a total count to the ProgressDialog. Then I realized that I had QElapsedTimer::restart() totally wrong. It returns the ms *since the last restart*! It doesn't reset to zero, so fix that. While testing that I noticed that the download speed was quite below average, so change the buffer size and only check if we were cancelled when the timer elapsed. But that wasn't it. Eventually I dug into my firewall rules and routings to get it right.
* Modernize OriginDialogArno2018-02-012-6/+5
| | | | | | | Use type safe connect syntax and remove one Q_FOREACH makro. Make the reject button a non-member, but keep the OK button. I thought about gettring rid of the latter, too, but deactivating OK when no match is the most sensible way to go...
* Clean up FileDisplayArno2018-01-312-7/+5
| | | | use type safe connect syntax and make the QTabWidget a non-member.
* Clean up ConfigurationWidgetArno2018-01-312-28/+13
| | | | | | * use type safe connect syntax * use lambdas as slot for selecting programs * make accept and cancel non-members. They're not needed anywhere else.
* Switch ActorWidget to type-safe connect syntaxArno2018-01-311-6/+6
|
* Add action for searching the interwebs for filenameArno2018-01-284-1/+17
|
* New feature: Guess subjectArno2018-01-272-1/+53
| | | | | | | | | If a descript.ion file exists in the current directory of fileWidget, read the subjects into a QStringList to determine the usenet subject from within ShemovCleaner. No more tedious task switching to the usenet client, just trigger "Guess subject..." :)
* Use type-safe connect syntaxArno2018-01-191-12/+12
|
* Remember last MIME-FilterArno2018-01-191-0/+13
|
* Refresh favorite dirs after configuringArno2018-01-194-1/+15
| | | | | Update favorite dirs when adding or removing favorite directories. Also try to keep the current selection.
* Show total duration againArno2018-01-191-0/+1
| | | | Forgot to set fd->seconds when gathering data.
* Implement filtering by MIME-TypeArno2018-01-044-13/+42
| | | | | | The MIME-type is a regular expression that can be configured. Show the configured types in a QComboBox with the special value "<all>" at the top, which invalidates the MIME type filter.
* Implement configuration option for MIME filtersArno2018-01-042-0/+9
|
* More renaming for new ItemSelectionWidgetArno2018-01-043-41/+46
| | | | | | | | | | | Use item instead of directory in var and function names to make clear that this a general purpose widget. Introduce a mode, so we can hide the browse button if we're not selecting directories. Make the label configurable and use different icons for folders or other items.
* Rename dirselectionwidget > itemselectionwidgetArno2018-01-045-20/+20
| | | | | It's much more general purpose than I thought. I'm gonna reuse the code for MIME-type filters later on.
* Implement favorite dirsArno2018-01-044-1/+33
|
* Implement DirSelectionWidgetArno2018-01-045-79/+120
| | | | | | This Widget lets you select a list of directories. It's basically about code reuse. We're gonna need this later when implementing the favorite directories feature.
* Modernize filewidget.cppArno2018-01-041-28/+28
| | | | | Convert to type safe connect syntax and remove Q_FOREACH. Hopefully no functional changes :)
* Add cache operationsArno2018-01-045-0/+38
| | | | | | Implement functions to remove files from cached data, or clear it completely. This may be necessary if something happened without us knowing, e.g. a file was copied by another program.
* Export reading and writing cache into functionsArno2018-01-042-26/+36
| | | | No functional changes.
* Improve lookup of cache dirArno2018-01-043-3/+17
| | | | | Implement looking up the cache dir as Helper::function. Create it if it doesn't exist.
* Update CachedFileData after copying filesArno2018-01-041-0/+4
| | | | Forgot setting copied to true...
* Check Present attribute on cached dataArno2018-01-032-26/+6
| | | | | | | | | | | | | Well, we cannot cache the Present attribute, because it can change without our knowledge, when a movie file has been archived in the meantime. Leave it in CachedFileData for now, but check it when we found a cache entry. While working on this, I realized that the Origin attribute is pretty much useless, at least in its current form. countMd5() already checks the origin table, and everything else was guesswork on the filename. Also, it was an extra, quite expensive SQL-Query for every video file, so remove it.
* Update the cache when copying or moving filesArno2018-01-031-3/+14
|
* Optimize deleteFilesArno2018-01-021-4/+9
| | | | | Only remove something from the view if deletion was successful. If it was a file, try to remove it from the cache.
* Sort size numerically, not alphabeticallyArno2018-01-023-3/+14
|
* Save CachedFileData to diskArno2018-01-024-1/+42
| | | | | | | | | Since we already have the data, save it to speed up the start. Surprisingly, the hardest part was to figure out how to use QStandardPaths to find a location where to save the file. I went with the semi-hardcoded path HomeLocation/.shemovcleaner, even though we're on windows.
* Implement cache for FileWidgetArno2018-01-025-87/+156
| | | | | | | | | | Some data-gathering is quite expensive and requires a QProcess, like getting the duration, so cache it in memory using QCache. Once the cache is filled, the UI is much snappier. This simplifies gatherData() a bit. It's still quite a long function, but now it doesn't create the QStandardItems any more. I moved it to a separate function.
* Try harder to delete a fileArno2018-01-021-1/+5
| | | | | | QFile::remove() fails when the read-only attribute is set. Turn out it can be unset with QFile::setPermissions(QFile::ReadOther | QFile::WriteOther). Try it when the initial call to remove() failed.
* Fix buildinfo.plArno2017-12-211-3/+4
| | | | | Well, finally got this stuff to build anything again, even in the right places. This is getting quite convoluted...
* Remove QFileInfo::created() deprecation warningArno2017-12-211-2/+2
| | | | | Apparently that function is deprecated in Qt 5.10. As suggested, use QFileInfo::birthTime() instead.
* Removed QSignalMapper from filewidget.cppArno2017-12-212-12/+3
| | | | | | Since the advent of lambdas as SLOTS the signal mapper is indeed useless und overly complicated. Remove it due to a deprecation warning from the compiler.
* Qt update to 5.10Arno2017-12-192-57/+58
| | | | | | | | | | Wow, what a mess! Tried to update QT with this installer thingy, but that wreaked total havoc. I installed several compilers and QT versions, but most of the time QtCreator marked the QT header files as missing. Long story short: In the end I removed everyting, downloaded the online installer and "did it again". This commit fixes some paths in the build scripts.
* Use QDirIterator in FileWidgetArno2017-12-191-18/+17
| | | | | | | | According to the documentation it should be faster, but it also has its drawbacks. We can't use the progressbar any more, because we don't know how many files we're going to get. Show the number of files in the statusMessage instead, and show the total size of analyzed files in GB when we're done.
* Improve FileWidgetArno2017-12-191-0/+6
| | | | | Also keep sort order and column while gathering data. Disable sorting while populating the model.
* Keep sort order and column when gathering torrent dataArno2017-12-191-0/+4
| | | | | | | | | | This was a bit more complicated than thought. Just calling writeHeaderData unconditionally doesn't work, because it saves the headers on startup, when the widget isn't visible yet, so all columns have the same width. Fix it by checking if we're visible first. That almost worked. Almost, because after startup some columns had a different height! Setting uniformRowHeights() to true helped.
* Don't gatherData() when deleting torrentsArno2017-12-191-3/+10
| | | | | Just as before: delete the files and remove them from the view without a full parse.
* Don't gatherData() when moving torrentsArno2017-12-191-2/+9
| | | | Just move the files and remove them from the view without a full parse.
* Use QT for deleting directoriesArno2017-12-182-26/+17
| | | | | | QDir has a function removeRecursively(). Use that instead of a homebrew implementation. Don't gatherData() after that, just remove the deleted items from the view.
* Add splash screenArno2017-06-173-3/+18
|
* Fix TorrentParserArno2017-02-261-0/+1
| | | | Don't std::bad_alloc if we have an invalid string.