libkdepim
kpixmapregionselectordialog.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "kpixmapregionselectordialog.h"
00023 #include <kdialogbase.h>
00024 #include <qdialog.h>
00025 #include <qdesktopwidget.h>
00026 #include <klocale.h>
00027 #include <kdialog.h>
00028
00029 using namespace KPIM;
00030
00031 KPixmapRegionSelectorDialog::KPixmapRegionSelectorDialog(QWidget *parent,
00032 const char *name, bool modal ) : KDialogBase(parent, name, modal, i18n("Select Region of Image"), Help|Ok|Cancel, Ok, true )
00033 {
00034 QVBox *vbox=new QVBox(this);
00035 new QLabel(i18n("Please click and drag on the image to select the region of interest:"), vbox);
00036 m_pixmapSelectorWidget= new KPixmapRegionSelectorWidget(vbox);
00037
00038 vbox->setSpacing( KDialog::spacingHint() );
00039
00040 setMainWidget(vbox);
00041 }
00042
00043 KPixmapRegionSelectorDialog::~KPixmapRegionSelectorDialog()
00044 {
00045 }
00046
00047 QRect KPixmapRegionSelectorDialog::getSelectedRegion(const QPixmap &pixmap, QWidget *parent )
00048 {
00049 KPixmapRegionSelectorDialog dialog(parent);
00050
00051 dialog.pixmapRegionSelectorWidget()->setPixmap(pixmap);
00052
00053 QDesktopWidget desktopWidget;
00054 QRect screen=desktopWidget.availableGeometry();
00055 dialog.pixmapRegionSelectorWidget()->setMaximumWidgetSize(
00056 (int)(screen.width()*4.0/5), (int)(screen.height()*4.0/5));
00057
00058 int result = dialog.exec();
00059
00060 QRect rect;
00061
00062 if ( result == QDialog::Accepted )
00063 rect = dialog.pixmapRegionSelectorWidget()->unzoomedSelectedRegion();
00064
00065 return rect;
00066 }
00067
00068 QRect KPixmapRegionSelectorDialog::getSelectedRegion(const QPixmap &pixmap, int aspectRatioWidth, int aspectRatioHeight, QWidget *parent )
00069 {
00070 KPixmapRegionSelectorDialog dialog(parent);
00071
00072 dialog.pixmapRegionSelectorWidget()->setPixmap(pixmap);
00073 dialog.pixmapRegionSelectorWidget()->setSelectionAspectRatio(aspectRatioWidth,aspectRatioHeight);
00074
00075 QDesktopWidget desktopWidget;
00076 QRect screen=desktopWidget.availableGeometry();
00077 dialog.pixmapRegionSelectorWidget()->setMaximumWidgetSize(
00078 (int)(screen.width()*4.0/5), (int)(screen.height()*4.0/5));
00079
00080 int result = dialog.exec();
00081
00082 QRect rect;
00083
00084 if ( result == QDialog::Accepted )
00085 rect = dialog.pixmapRegionSelectorWidget()->unzoomedSelectedRegion();
00086
00087 return rect;
00088 }
00089
00090 QImage KPixmapRegionSelectorDialog::getSelectedImage(const QPixmap &pixmap, QWidget *parent )
00091 {
00092 KPixmapRegionSelectorDialog dialog(parent);
00093
00094 dialog.pixmapRegionSelectorWidget()->setPixmap(pixmap);
00095
00096 QDesktopWidget desktopWidget;
00097 QRect screen=desktopWidget.availableGeometry();
00098 dialog.pixmapRegionSelectorWidget()->setMaximumWidgetSize(
00099 (int)(screen.width()*4.0/5), (int)(screen.height()*4.0/5));
00100 int result = dialog.exec();
00101
00102 QImage image;
00103
00104 if ( result == QDialog::Accepted )
00105 image = dialog.pixmapRegionSelectorWidget()->selectedImage();
00106
00107 return image;
00108 }
00109
00110 QImage KPixmapRegionSelectorDialog::getSelectedImage(const QPixmap &pixmap, int aspectRatioWidth, int aspectRatioHeight, QWidget *parent )
00111 {
00112 KPixmapRegionSelectorDialog dialog(parent);
00113
00114 dialog.pixmapRegionSelectorWidget()->setPixmap(pixmap);
00115 dialog.pixmapRegionSelectorWidget()->setSelectionAspectRatio(aspectRatioWidth,aspectRatioHeight);
00116
00117 QDesktopWidget desktopWidget;
00118 QRect screen=desktopWidget.availableGeometry();
00119 dialog.pixmapRegionSelectorWidget()->setMaximumWidgetSize(
00120 (int)(screen.width()*4.0/5), (int)(screen.height()*4.0/5));
00121
00122 int result = dialog.exec();
00123
00124 QImage image;
00125
00126 if ( result == QDialog::Accepted )
00127 image = dialog.pixmapRegionSelectorWidget()->selectedImage();
00128
00129 return image;
00130 }
00131
|