added drag&drop for image files

This commit is contained in:
Luis Ángel San Martín 2013-08-21 13:26:49 +02:00
parent e20b1b8db7
commit 1763b16ccd
6 changed files with 47 additions and 7 deletions

View File

@ -3,6 +3,8 @@ Corregido bug que causaba un cierre inesperado despu
Corregido bug que causaba que la toolbar en el visor no se pudiese ocultar/mostrar sin un cómic abierto
Mejorada la gestión de errores al abrir cómics
Corregidos algunos bugs relacionados con la apertura de cómics
Añadido función de rating
El visor ahora puede abrir archivos de imagen directamente. Si se abre un archivo de imagen se abre el directorio que lo contiene con todas las imágenes.
6.7 (No pública)
Añadidos nuevos campos en la base de datos para almacenar información adicional sobre cómics: rating, página actual, bookmarks y configuración de imagen

View File

@ -11,8 +11,6 @@
#include "compressed_archive.h"
#include "comic_db.h"
#define EXTENSIONS << "*.jpg" << "*.jpeg" << "*.png" << "*.gif" << "*.tiff" << "*.tif" << "*.bmp"
#define EXTENSIONS_LITERAL << ".jpg" << ".jpeg" << ".png" << ".gif" << ".tiff" << ".tif" << ".bmp"
//-----------------------------------------------------------------------------
Comic::Comic()
:_pages(),_index(0),_path(),_loaded(false),bm(new Bookmarks()),_loadedPages(),_isPDF(false)

View File

@ -13,7 +13,8 @@
#include "poppler-qt4.h"
class ComicDB;
#define EXTENSIONS << "*.jpg" << "*.jpeg" << "*.png" << "*.gif" << "*.tiff" << "*.tif" << "*.bmp"
#define EXTENSIONS_LITERAL << ".jpg" << ".jpeg" << ".png" << ".gif" << ".tiff" << ".tif" << ".bmp"
class Comic : public QObject
{
Q_OBJECT

View File

@ -657,7 +657,38 @@ void MainWindowViewer::openFolderFromPath(QString pathDir)
enableActions();
viewer->open(pathDir);
}
void MainWindowViewer::openFolderFromPath(QString pathDir, QString atFileName)
{
currentDirectory = pathDir; //TODO ??
QFileInfo fi(pathDir);
getSiblingComics(fi.absolutePath(),fi.fileName());
setWindowTitle("YACReader - " + fi.fileName());
enableActions();
QDir d(pathDir);
d.setFilter(QDir::Files|QDir::NoDotAndDotDot);
d.setNameFilters(QStringList() EXTENSIONS);
d.setSorting(QDir::Name|QDir::IgnoreCase|QDir::LocaleAware);
QStringList list = d.entryList();
qSort(list.begin(),list.end(),naturalSortLessThanCI);
int i = 0;
foreach(QString path,list)
{
if(path.endsWith(atFileName))
break;
i++;
}
int index = 0;
if(i < list.count())
index = i;
viewer->open(pathDir,i);
}
void MainWindowViewer::saveImage()
@ -977,12 +1008,19 @@ void MainWindowViewer::dropEvent(QDropEvent *event)
{
urlList = event->mimeData()->urls();
if ( urlList.size() > 0)
if ( urlList.size() > 0 )
{
fName = urlList[0].toLocalFile(); // convert first QUrl to local path
info.setFile( fName ); // information about file
if (info.isFile())
openComicFromPath(fName); // if is file, setText
{
QStringList imageSuffixs;
imageSuffixs EXTENSIONS_LITERAL;
if(imageSuffixs.contains("."+info.suffix())) //image dropped
openFolderFromPath(info.absoluteDir().absolutePath(),info.fileName());
else
openComicFromPath(fName); // if is file, setText
}
else
if(info.isDir())
openFolderFromPath(fName);

View File

@ -43,6 +43,7 @@ class YACReaderSliderAction;
void openNextComic();
void openComicFromPath(QString pathFile);
void openFolderFromPath(QString pathDir);
void openFolderFromPath(QString pathFile, QString atFileName);
void alwaysOnTopSwitch();
void adjustToFullSizeSwitch();
void reloadOptions();

View File

@ -130,7 +130,7 @@ void YACReaderRatingDelegate::paint(QPainter *painter, const QStyleOptionViewIte
QStyledItemDelegate::paint(painter, option, index);
if(option.state | QStyle::State_Editing)
if(!(option.state & QStyle::State_Editing))
{
if (option.state & QStyle::State_Selected)
starRating.paintSelected(painter, option.rect, option.palette,