~artmello/gallery-app/gallery-app-fix_1524973

« back to all changes in this revision

Viewing changes to src/photo.cpp

  • Committer: Adam Dingle
  • Date: 2011-12-02 16:50:22 UTC
  • Revision ID: adam@yorba.org-20111202165022-uwvs4abs076oqwgy
Initial commit from Yorba.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2011 Canonical Ltd
 
3
 *
 
4
 * This program is free software: you can redistribute it and/or modify
 
5
 * it under the terms of the GNU General Public License version 3 as
 
6
 * published by the Free Software Foundation.
 
7
 *
 
8
 * This program is distributed in the hope that it will be useful,
 
9
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
11
 * GNU General Public License for more details.
 
12
 *
 
13
 * You should have received a copy of the GNU General Public License
 
14
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
15
 *
 
16
 * Authors:
 
17
 * Jim Nelson <jim@yorba.org>
 
18
 * Lucas Beeler <lucas@yorba.org>
 
19
 */
 
20
 
 
21
#include "photo.h"
 
22
 
 
23
#include <QFileInfo>
 
24
#include <QImage>
 
25
 
 
26
Photo::Photo(const QFileInfo& file)
 
27
  : MediaObject(file) {
 
28
}
 
29
 
 
30
bool Photo::MakePreview(const QFileInfo& original, const QFileInfo &dest) {
 
31
  QImage fullsized = QImage(original.filePath());
 
32
  if (fullsized.isNull())
 
33
    qFatal("Unable to load %s", qPrintable(original.filePath()));
 
34
  
 
35
  QImage scaled;
 
36
  if (fullsized.height() > fullsized.width())
 
37
    scaled = fullsized.scaledToHeight(156, Qt::SmoothTransformation);
 
38
  else
 
39
    scaled = fullsized.scaledToWidth(156, Qt::SmoothTransformation);
 
40
 
 
41
  if (scaled.isNull())
 
42
    qFatal("Unable to scale %s", qPrintable(original.filePath()));
 
43
 
 
44
  if (!scaled.save(dest.filePath()))
 
45
    qFatal("Unable to save %s", qPrintable(dest.filePath()));
 
46
  
 
47
  return true;
 
48
}