summaryrefslogtreecommitdiffstats
path: root/shemov.h
Commit message (Collapse)AuthorAgeFilesLines
* Indictate slide in status barArno2012-03-241-6/+2
| | | | | | Show red or green icon in status bar, depending on wether we're sliding. Removed the rename to template stuff. It was barely used code. Hopefully deleted all references and code fragments.
* Fix some severe braindamageArno2012-03-181-1/+1
| | | | | | | | | | | | | | It started as a buxfix session, but the more I dug into some ancient code, the more I had to change. Well, first and foremost, this fixes a crash in PicturesWidget. Trying to display the mappings of the selected picture in a different color never was a good idea. Show them in the statusbar instead. While looking at the statusBar code, make PictureWidget emit signals to show the total size and number of selected items. Then I noticed some really, really braindamaged connection madness in the Shemov constructor. Instead of doing all the work in SheMov itself, have the widgets emit signals. This should have been several commits, but one lead to another...
* Randomize selection for pictureviewerArno2012-03-171-0/+1
| | | | | std::random_shuffle available files in PictureViewer2. Add action to View menu and reuse an icon.
* Slide showArno2012-03-101-0/+2
| | | | | | Implement slide show in Pictureviewer2. Slide over all available files and wrap around when reaching the end of the list. Also added some more artwork.
* Make PictureViewer usefulArno2012-03-081-4/+8
| | | | | | | -Implement add and replace files -use QList<QVariant> (typedef'd) for shoveling data around -more code shuffling -new artwork
* First draft of PictureViewer2Arno2012-03-081-0/+1
| | | | | | Doesn't do much other than showing a default picture, but it behaves like a QDialog and positions itself correctly. It's quite a pain in the ass with a tiling window manager...
* Customize menus and toolbar for PictureViewArno2012-03-031-0/+5
| | | | | | | * Added 4 new icons for PictureView-actions. * simplified SheMov::tabChanged(int) * fix long standing bug with QActionGroups in SheMov. Enable and disable all actions according to the active tab
* Implement refresh for PicturesArno2012-03-031-0/+1
| | | | | Add action to PictureView for refreshing the view. Needed after editing mappings.
* Impement editing of picture mappingsArno2012-03-031-1/+1
| | | | Make it possible to edit picture mappings on archived pictures.
* Implement PicturesWidgetArno2012-02-261-0/+6
| | | | | | | | Create a tab to show the archived pictures. It's far from complete, but it already does: * show pictures * hover * delete pictures from archive
* Implemented NewPicsDialogArno2012-02-241-0/+2
| | | | | Version 1 of NewPicsDialog. Just one single tab for adding files. Does nothing yet besides adding and removing files.
* Implement MappingTreeWidgetArno2012-02-241-1/+3
| | | | | | | | | | | | | | | This is a rather large commit. It implements MappingTreeWidget using MappingTreeModel unsurprisingly this uncovered some exciting bugs. Fixes the following bugs in MappingTreeModel: * use insertRows() and removeRows() when addings children, because dataChanged() won't do it. * don't use a prepared QSqlQuery when fetching children recursively. This won't work because the query is still active when we invoke ourselves again. Put the query on the stack instead * Keep the model sorted. Also add an entry for a MappingTreeEditor to the File-Menu.
* Some more code cleanupArno2011-12-261-2/+1
| | | | | Remove references to old "Show movies without covers" dialog and associate higheels.png with analyze db action.
* Code cleanupArno2011-12-171-2/+0
| | | | | Remove obsolete code for movies without covers. This has been implemented in DbAnalyzer.
* Make DbAnalyzerDialog non-modalArno2011-12-171-0/+1
| | | | | | | Make DbAnalyzerdialg a member of Shemov, so it can be shown non-modal. So actors/genres can be edited while the dialog is open. It also has the nice side effect that we can refresh the views after deleting stray items.
* Implemented delete stray actorsArno2011-12-171-0/+1
| | | | | Added a tab to DbAnalyzerDialog for actors that aren't associated with a movie and make it possible to delete them.
* DbAnalyzer first tryArno2011-12-161-0/+3
| | | | | Well, trying to join the consistencyChecker and the check for stray actors/genres. First try :)
* Suggest file for burningArno2011-05-281-0/+1
| | | | | Implemented an action to suggest the best fitting file for burning in FilesTreeWidget. Added 20 Mb of margin to maximum dvd size.
* Implement show all filesArno2011-05-151-0/+1
| | | | | | Implemented a new function showing all files belonging to the selected series. The function respectect the current filter of the SeriesTreeWidget.
* Edit genres and actorsArno2011-02-191-0/+3
| | | | Added dialog for editing actors and genres.
* Added filter option for favoritesArno2011-01-221-0/+2
| | | | | Added filter for only showing series marked as favorites. The other filter options are disabled when in this mode.
* Implement favoritesArno2011-01-161-0/+1
| | | | | SeriesParts can be marked as favorites. They won't be selectable when filtering by local Movies only.
* Fix qWarnings() at startup and shutdownArno2010-12-301-1/+1
| | | | | | | | | | | | | | Fix unexpected NULL receiver on startup: Turns out this warning is issued when calling deleteLater on a NULL object. This happened in SheMov::createOpenWith*. The "database is still in use" warning was a bit harder to track down. First of all, the destructors weren't called since Qt::WA_DeleteOnClose wasn't set for SheMov, so Qt would simply exit and let the OS do the cleanup without calling the destructors. Then there were several orphan widgets/objects without a parent, so their destructor would never be called.
* Pimp my filters!Arno2010-12-281-0/+10
| | | | | | | | | | | | Enhanced the filter function in ArchiveTreeView. The prefixes are gone. The filter mode is now selectable by menu or toolbar. Created 7 new icons, also selectable in the configuration menu. As a bonus the filter QLineEdit now comes with a QCompleter. The QStringListModel of the completer is filled in a separate thread. The QThread is only used as a resource for control. The work is done in a QObject connected to the QThread's started() signal as described in http://labs.qt.nokia.com/2006/12/04/threading-without-the-headache/
* Fix copy, cut and paste filesArno2010-12-211-0/+2
| | | | | | | | | | Make this options in the context and edit menu of FilesystemWidget behave a lot more as expected. Copy and cut just copies the file names to the clipboard, and paste paste moves them if they were cut and copies them when the action was copy. Still need to fix the colors when something is marked somehow. Should be configurable :)
* Fix menusArno2010-12-111-4/+15
| | | | | | | Fix sort order of menuBar(). It was different in AV and FSV. First comes Edit, then View. Create seperate View menus for FSV and AV.
* Implement hover over moviesArno2010-12-111-2/+3
| | | | | | | | | | | | | | | | | | | | What started as an attempt to show a frame from a movie when hovering over it, ended in a huge bugfix commit for hover related stuff. This commit is definitely not atomic. When hovering over a movie present on the filesytem a frame is shown. The time frame is configurable. While digging into the code I noticed some bugs. Bugfixes: * fix label for hove archive action. It was labeled for hovering over directories in FSWidget. * Hovering over directories didn't have an action. Also read the appropriate value from QSettings. Other: * add icons for hovering over directories and hovering over movies * replace SheMov::toggleHover(pics|some other) with a QSignalMapper
* Edit values in archiveArno2010-12-061-3/+3
| | | | | | | | | | This commit introduces QInputDialogs for all values editable in the archive. Inline editing in the view doesn't seem the right choice regarding usability. Fixed a long standing bug in nextDvdNo(). That was off by one. Return one more than max(value). Also got rid of DvdNoDialog, replaced by a QInputDialog.
* Selectable columns in FilesTreeViewArno2010-12-051-1/+3
| | | | | | | | | Made columns shown in FilesTreeView selectable. Also, the order of columns is saved and restored. This was a difficult one. I even had to make a debug build of qt. But I fixed a serious bug in FilesTreeModel::modeName: don't access the Hash if modeName == -1.
* Added action to copy file path to clipboardArno2010-11-281-0/+4
| | | | | | | | | 4 new actions to copy the file path to clipboard. It's either the unix full path, the unix dir, the windows full path or the windows dir. For the latter '/' is replaced with '\' and a drive letter is prepended. The drive letter is configurable in the ConfigurationDialog. While at it I revamped it and added another tab to make it more user friendly.
* Implemented dialog for showing movies without coversArno2010-11-271-0/+1
| | | | | | | | | Implemented a new dialog to show movies without covers. The view is a QTreeView with another model. While working on the model several shortcomings of SmTreeModel were resolved. findValue() now takes another argument to indicate the column the returned QModelIndex() should represent. Also, itemAt() was promoted from private to protected. It's quite useful for derived classes.
* Implemented mark as seenArno2010-11-211-0/+1
| | | | | | | Added new action to mark files as seen. Marked files have the foreground color red. For this the database connection is needed quite early, so I had to call SmGlobals::instance() in the constructor of SheMov without using it.
* Added support for mounting cd/dvdsArno2010-11-201-0/+2
| | | | | | DVDs or CDs can be mounted under *NIX like OS now. It still eludes me how to refresh a directory from a QFileSystemModel when it's mounted. Maybe it's a qt bug...
* Added ToobarArno2010-11-071-0/+6
| | | | Implemented a toolbar with various actions. Also did some artwork :)
* First try on ConsistencyCheckerArno2010-10-311-2/+3
| | | | | | | Well, it works, so let's shit it :) Unfortunately the database is inconsistent, so add a checker for that. Still needs some work, though. Eg. display errors seperately and make it possible to delete stray files. Also the Filesystem check must be implemented.
* Fixed crash when remembering selected tab, improve performanceArno2010-10-231-0/+3
| | | | | | | | | | | Strange things happen. As stated in commit 19674f6, SheMov crashed when setting the archive as current tab and then changing to filesystem view. This can be resolved by first showing the MainWindow and then applying the display changes. I guess it's an qt internal thing. Also vastly improved performance when hovering by only entering the hover code path when we actually have a HoverEvent. Before CPU usage spiked at 100% even if SheMov was idle.
* Implemented "Archive selected" actionArno2010-10-031-0/+2
| | | | | New context menu entry in FSWidget: archive selected. The selected files will be inserted into the MovieInfoPage when archiving a movie.
* Implemented editing of file part numbersArno2010-08-131-0/+1
| | | | | | Added the possibility to edit file part numbers via context menu in FilesTreeWidget. This action triggers the edit event on the specific QModelIndex.
* Fix doubleclick in FilesTreeWidgetArno2010-08-071-0/+1
| | | | | | | | | Doubleclicking the DvdNo in FilesWidget did 1. play the movie 2. create an editor event in the widget Now doubleclicking only starts the default player. The quality can be edited via context menu.
* Fixed edit trigger in SeriesTreeViewArno2010-08-051-0/+1
| | | | | | | | | | | | | | | | | | | | | Until now doubleclicking an item with children in SeriesTreeWidget did 3 things: 1. Expand or collapse the item 2. Trigger editing 3. Start playing all child movies in the default player This is not really expected behavior. So I disabled all EditTriggers on SeriesTreeView and set expandsOnDoubleClick to false. To still retain the ability to edit series a new slot was introduced to SeriesTreeWidget triggering the edit event. It's available from the SeriesTreeWidget context menu. Now doubleclicking an item in SeriesTreeView just plays all child movies. Child items also have their name changed when changing the parent item. This bug was long present in renameSeries. mergeSeries always did the right thing (tm).
* Implement FilePropertiesDialogArno2010-07-311-0/+1
| | | | | | | | | | | Implemented a dialog for file properties. When the mime type says it's a video, fork ffprobe to read the properties of all streams and show them in a QTreeView powered by a SmTreeModel. If the mime type is image, use QImage to read some properties and show them in the same dialog. This commit introduces the new class FilePropertiesDialog. I also had to implement a copy constructor for SmTreeItem. It obsoletes classes ActorWidget, ActorModel and MoviePropertiesDialog.
* Added database maintenance codeArno2010-07-311-0/+2
| | | | | | Implemented a function in MappingTableModel to remove all actors/genres with no references in the according mapping table. Available through the "File" menu.
* Bugfix commitArno2010-07-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The journey through the internals of SheMov started by fixing SeriesTreeWidget::readSettings(). The selected index didn't really get selected on startup because only QItemSelectionModel::setCurrendt() was called. Replace it with QItemSelectionModel::select() and QTreeView::setCurrent(). Also fix SeriesTreeWidget::writeSettings() to only write selected items to QSettings() when something is selected. While working on selections I realized that there is a serious bug in Helper::moveToArchive. The destination directory in the archive must be created if it doesn't exist. For a testcase I needed an easy way to move files back from the archive to incoming directory, so I added FilesTreeWiget::moveToDirectory(). This lets you move files from the FilesTreeWidget to any directory. During testing I realized that SeriesTreeWidget::deleteFromSeries() QMessageBox() doesn't show files when deleting a series part. Fixed that by adding SeriesParts to file list. Finally a newly added SeriesPart gets selected and selected by expanding it first and then calling QItemSelectionModel::select() To make a long story short: 1. fix SeriesTreeWidget::{read,write}Settings 2. add FilesTreeWidget::moveToDirectory() 3. fix SeriesTreeWidget::deleteFromSeries() QMessageBox 4. fix selecting newly added SeriesParts
* Reset NewMovieWizardArno2010-07-281-0/+1
| | | | | | | | | | | | | | | | | Well, the point of this commit was to have one NewMovieWizard in memory all the time and just show it when it's needed. For this several things were necessary: 1. implement initializePage() for every QWizardPage. For this I had to implement reset functions in some models. 2. setOption(QWizard::IndependentPages, true) in Wizard constructor. 3. Make NewMovieWizard a member of SheMov... Well, it was, already, but I didn't remove the ptr. The good news: the Wizard works. Bad News: 1. Program crashes in ArchiveViewWizard::currentChanged (see TODOS) 2. Cover files also have a quality Attribute attached.
* Set window title in ArchiveTreeViewArno2010-07-241-1/+0
| | | | | | | | Construct a window title in ArchiveTreeView and show it when Tab is activated or file mode is changed. Also deleted the unneded slot newWindowTitle in SheMov: setWindowTitle is a slot by itself.
* Big code cleanupArno2010-07-231-24/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | hopefully removed all code connected to ArchiveViewWidget in this tree. Files removed ({h,cpp}): *archiveeditdialog *listeditor *covereditor *archivefilewidget *addmoviewizard *archivefileview *archiveproxy *sizedelegate *archivedidelegate *archiveitemeditdialog *coveritem *movieitem *moviemodel *moviemodelsingleton *listmodel *listmodelsingleton *archiveviewwidget *archiveiteminfoedit *archiveitemcoveredit *fileinfoitem *fileinfomodel See added file TODOS for stuff that needs fixes.
* Implemented add coversArno2010-07-181-0/+1
| | | | | | Finally we can add covers to already existsing series. Seems to work, but I encountered a crash when merging series while testing... Unfortunately I don't know the cause.
* Implemented delete files from tree viewArno2010-07-181-0/+1
| | | | | Files can now be delete from the files tree view. When doing so, the files will be deleted permanently and also removed from the database.
* Implemented setDvdNo for FilesTreeArno2010-07-181-0/+1
| | | | | | The dvd number can be set for several files at once with this function. Also fixed a little bug when showing the series name in the status bar. Only show file part number if it is > 0.
* Implemented "move to burn directory" for TreeWidgetArno2010-07-181-0/+3
| | | | | Files from the archive can be moved to a configurable directory with this function. The specified files won't be deleted from the database.