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<74>n de errores al abrir c<>mics
Corregidos algunos bugs relacionados con la apertura de c<>mics
A<EFBFBD>adido funci<63>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<69>genes.
6.7 (No p<>blica)
A<EFBFBD>adidos nuevos campos en la base de datos para almacenar informaci<63>n adicional sobre c<>mics: rating, p<>gina actual, bookmarks y configuraci<63>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,