| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
*BIG FAT WARNING*
Took me a while to figure it out, but the database connection only works
with MINGW64 instead of MINGW32! With the latter loading the SQL Plugin
fails! That said, off to brighter shores :)
|
|
|
|
| |
With a dark theme darkBlue doesn't please the eye :)
|
|
|
|
|
|
|
| |
2 times now I lost files because deleteFiles emptied the whole directory
instead of just the selected files. I guess because the view was not
updated before. To make sure, show full paths of all files/directories
to be deleted.
|
| |
|
|
|
|
|
|
| |
use nullptr instead of 0, and add a static_cast to document that we
don't need floating point. QVariant::toLongLong() doesn't work with
1234.1234.
|
|
|
|
|
|
|
|
|
|
| |
Use QRegularExpression instead of QRegExp, since the former is
recommended. Escape the filename, so we don't have to worry about
special chars and then match line by line. If there is a number at the
end of the found subject, remove it.
The former logic with QRegExp, indexOf and no escape wouldn't match
files with whitespaces and special chars...
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hmm, as it turns out QFile does a much better, e.g. faster, job than my
open-coded file copy with a progress dialog.
I always wondered why it only did 150-170Mbit. I thought that it was
just the calculation, but now I have 400 Mbit, and it still stalls at
150 Mbit.
QFile::copy maxes out the line, so get rid of the ProgressDialog and
show a status message instead.
Copy can be canceled by the context menu, but FileCopier will always
finish the current file, because I don't want to lock and unlock the
CancelMutex during copy. Besides, QFile::copy doesn't admit that :)
|
| |
|
|
|
|
| |
Not sure if this is the way to go, but it works for now...
|
|
|
|
|
| |
Files can be copied without us knowing, so check for it even if we have
a cache entry.
|
|
|
|
|
|
|
|
|
|
| |
Well, as it says, this is pretty much guesswork. I didn't think that the
subject itself could contain a ',', but reality proved me wrong.
A common denominator seems to be 'yEnc,' at the end of the subject, so
first check for that and split there before going for the default.
Most likely it's not the last change to this function :(
|
|
|
|
|
| |
I guess there was a valid reason to block, but that's gone now. Couldn't
bother to stare at the history...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Once again, surprisingly difficult, as you can see on the number of
changed files.
Coding the configuration options wasn't that difficult, but actually
using them was. As it turned out, the default style on Windows doesn't
use QApplication::palette() at all, though it does honor
setAlternatingRowColors(). It just doesn't use the palette colors, but
style sheets. Took me a while to figure out.
So, there's always another layer of indirection: First, add all
QTreeViews to Globals::views, then create a helper to set the style
sheet.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CTRL+F: search filename
CTRL+L: select all and focus search
CTRL+M: search actor
CTRL+T: search title
CTRL+X: hide
Unfortunately, it's surprisingly hard to capture CTRL+A, so I chose CTRL
+M (m for model) for actor search. CTRL+A is consumed by some other
Widget and never reaches SearchDialog. Maybe an EventFilter in the
parent or the MainWindow would work, but that's not worth it.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
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..." :)
|
| |
|
|
|
|
|
| |
Update favorite dirs when adding or removing favorite directories. Also
try to keep the current selection.
|
|
|
|
| |
Forgot to set fd->seconds when gathering data.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
Convert to type safe connect syntax and remove Q_FOREACH. Hopefully no
functional changes :)
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
No functional changes.
|
|
|
|
|
| |
Implement looking up the cache dir as Helper::function. Create it if it
doesn't exist.
|
|
|
|
| |
Forgot setting copied to true...
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
Only remove something from the view if deletion was successful. If it
was a file, try to remove it from the cache.
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Also keep sort order and column while gathering data. Disable sorting
while populating the model.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
We don't have support for recursive copies, and I'm not really sure if
we need it, so don't do it for now.
|
|
|
|
|
| |
Show how many files we have, and display the transfer rate in Megabytes
per second. Can't believe that it worked right from the start :)
|
|
|
|
| |
Elide the text if necessary. Only show the destination directory.
|
|
|
|
|
| |
Make it fixed width, show only the filename from the source instead of
the full path and elide text if necessary.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Create a FileCopier and show a custom, non-modal progress dialog when
we're copying files.
Turns out that a QProgressDialog always shows when it's created. This is
by design, so I had to implement one that fits my needs.
Also, a buffer size of 32K (as used in MKVMerger) is way too small to
max out the available bandwidth, so I set it to an (arbitrary) value of
16MB.
|