• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdegraphics API Reference
  • KDE Home
  • Contact Us
 

libs/libksane/libksane

  • sources
  • kde-4.14
  • kdegraphics
  • libs
  • libksane
  • libksane
ksane_widget_private.h
Go to the documentation of this file.
1 /* ============================================================
2  *
3  * This file is part of the KDE project
4  *
5  * Date : 2009-01-21
6  * Description : Sane interface for KDE
7  *
8  * Copyright (C) 2009 by Kare Sars <kare dot sars at iki dot fi>
9  *
10  * This library is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU Lesser General Public
12  * License as published by the Free Software Foundation; either
13  * version 2.1 of the License, or (at your option) version 3, or any
14  * later version accepted by the membership of KDE e.V. (or its
15  * successor approved by the membership of KDE e.V.), which shall
16  * act as a proxy defined in Section 6 of version 3 of the license.
17  *
18  * This library is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21  * Lesser General Public License for more details.
22  *
23  * You should have received a copy of the GNU Lesser General Public
24  * License along with this program. If not, see <http://www.gnu.org/licenses/>.
25  *
26  * ============================================================ */
27 
28 #ifndef KSANE_WIDGET_PRIVATE_H
29 #define KSANE_WIDGET_PRIVATE_H
30 
31 // Sane includes
32 extern "C"
33 {
34  #include <sane/saneopts.h>
35  #include <sane/sane.h>
36 }
37 
38 // Qt includes
39 #include <QtGui/QWidget>
40 #include <QCheckBox>
41 #include <QTimer>
42 #include <QTime>
43 #include <QProgressBar>
44 
45 // KDE includes
46 #include <KTabWidget>
47 #include <KLocale>
48 #include <KDebug>
49 #include <KMessageBox>
50 #include <KPushButton>
51 #include <KToolBar>
52 
53 // Local includes
54 #include "ksane.h"
55 #include "ksane_option.h"
56 #include "ksane_viewer.h"
57 #include "labeled_gamma.h"
58 #include "labeled_checkbox.h"
59 #include "splittercollapser.h"
60 #include "ksane_scan_thread.h"
61 #include "ksane_preview_thread.h"
62 #include "ksane_find_devices_thread.h"
63 #include "ksane_auth.h"
64 
65 #define IMG_DATA_R_SIZE 100000
66 
68 namespace KSaneIface
69 {
70  class KSaneWidgetPrivate: public QObject
71  {
72  Q_OBJECT
73 
74  public:
75  KSaneWidgetPrivate(KSaneWidget *);
76  void clearDeviceOptions();
77  void createOptInterface();
78  void updatePreviewSize();
79  void setDefaultValues();
80  void setBusy(bool busy);
81  KSaneOption *getOption(const QString &name);
82  KSaneWidget::ImageFormat getImgFormat(SANE_Parameters &params);
83  int getBytesPerLines(SANE_Parameters &params);
84 
85  public Q_SLOTS:
86  void devListUpdated();
87  void signalDevListUpdate();
88  void startFinalScan();
89  void previewScanDone();
90  void oneFinalScanDone();
91  void updateProgress();
92 
93  private Q_SLOTS:
94  void scheduleValReload();
95  void optReload();
96  void valReload();
97  void handleSelection(float tl_x, float tl_y, float br_x, float br_y);
98  void setTLX(float x);
99  void setTLY(float y);
100  void setBRX(float x);
101  void setBRY(float y);
102 
103  void startPreviewScan();
104 
105  void checkInvert();
106  void invertPreview();
107  void pollPollOptions();
108 
109  public:
110  void alertUser(int type, const QString &strStatus);
111 
112  public:
113  // backend independent
114  KTabWidget *m_optsTabWidget;
115  QScrollArea *m_basicScrollA;
116  QWidget *m_basicOptsTab;
117  QWidget *m_colorOpts;
118  QScrollArea *m_otherScrollA;
119  QWidget *m_otherOptsTab;
120  LabeledCheckbox *m_invertColors;
121 
122  QSplitter *m_splitter;
123  SplitterCollapser *m_optionsCollapser;
124 
125  QWidget *m_previewFrame;
126  KSaneViewer *m_previewViewer;
127  QWidget *m_btnFrame;
128  QToolButton *m_zInBtn;
129  QToolButton *m_zOutBtn;
130  QToolButton *m_zSelBtn;
131  QToolButton *m_zFitBtn;
132  QToolButton *m_clearSelBtn;
133  KPushButton *m_scanBtn;
134  KPushButton *m_prevBtn;
135 
136  QWidget *m_activityFrame;
137  QLabel *m_warmingUp;
138  QProgressBar *m_progressBar;
139  KPushButton *m_cancelBtn;
140 
141  // device info
142  SANE_Handle m_saneHandle;
143  QString m_devName;
144  QString m_vendor;
145  QString m_model;
146 
147  // Option variables
148  QList<KSaneOption*> m_optList;
149  QList<KSaneOption*> m_pollList;
150  KSaneOption *m_optSource;
151  KSaneOption *m_optNegative;
152  KSaneOption *m_optFilmType;
153  KSaneOption *m_optMode;
154  KSaneOption *m_optDepth;
155  KSaneOption *m_optRes;
156  KSaneOption *m_optResX;
157  KSaneOption *m_optResY;
158  KSaneOption *m_optTlX;
159  KSaneOption *m_optTlY;
160  KSaneOption *m_optBrX;
161  KSaneOption *m_optBrY;
162  KSaneOption *m_optPreview;
163  KSaneOption *m_optGamR;
164  KSaneOption *m_optGamG;
165  KSaneOption *m_optGamB;
166  LabeledCheckbox *m_splitGamChB;
167  LabeledGamma *m_commonGamma;
168  KSaneOption *m_optWaitForBtn;
169 
170  // preview variables
171  float m_previewWidth;
172  float m_previewHeight;
173  float m_previewDPI;
174  QImage m_previewImg;
175  bool m_isPreview;
176  bool m_autoSelect;
177 
178  int m_selIndex;
179 
180  bool m_scanOngoing;
181  bool m_closeDevicePending;
182 
183  // final image data
184  QByteArray m_scanData;
185 
186  // option handling
187  QTimer m_readValsTmr;
188  QTimer m_updProgressTmr;
189  QTimer m_optionPollTmr;
190  KSaneScanThread *m_scanThread;
191  KSanePreviewThread *m_previewThread;
192 
193  QString m_saneUserName;
194  QString m_sanePassword;
195 
196  FindSaneDevicesThread *m_findDevThread;
197  KSaneAuth *m_auth;
198  KSaneWidget *q;
199  };
200 
201 
202 } // NameSpace KSaneIface
203 
204 #endif // SANE_WIDGET_H
KSaneIface::KSaneWidgetPrivate::m_optFilmType
KSaneOption * m_optFilmType
Definition: ksane_widget_private.h:152
KSaneIface::KSaneWidgetPrivate::m_readValsTmr
QTimer m_readValsTmr
Definition: ksane_widget_private.h:187
KSaneIface::KSaneWidget::ImageFormat
ImageFormat
This enumeration describes the type of the returned data.
Definition: ksane.h:56
ksane_preview_thread.h
QProgressBar
KSaneIface::KSaneWidgetPrivate::m_zOutBtn
QToolButton * m_zOutBtn
Definition: ksane_widget_private.h:129
KSaneIface::KSaneWidgetPrivate::m_autoSelect
bool m_autoSelect
Definition: ksane_widget_private.h:176
KSaneIface::KSaneWidgetPrivate::m_optGamG
KSaneOption * m_optGamG
Definition: ksane_widget_private.h:164
KSaneIface::KSaneWidgetPrivate::m_cancelBtn
KPushButton * m_cancelBtn
Definition: ksane_widget_private.h:139
KSaneIface::KSaneWidgetPrivate::m_activityFrame
QWidget * m_activityFrame
Definition: ksane_widget_private.h:136
QWidget
KSaneIface::KSaneWidgetPrivate::m_zInBtn
QToolButton * m_zInBtn
Definition: ksane_widget_private.h:128
KSaneIface::KSaneWidgetPrivate::clearDeviceOptions
void clearDeviceOptions()
Definition: ksane_widget_private.cpp:97
KSaneIface::KSaneWidgetPrivate::m_optGamB
KSaneOption * m_optGamB
Definition: ksane_widget_private.h:165
KSaneIface::KSaneWidgetPrivate::m_zSelBtn
QToolButton * m_zSelBtn
Definition: ksane_widget_private.h:130
KSaneIface::KSaneWidgetPrivate::m_optList
QList< KSaneOption * > m_optList
Definition: ksane_widget_private.h:148
KSaneIface::KSaneWidgetPrivate::m_optMode
KSaneOption * m_optMode
Definition: ksane_widget_private.h:153
QByteArray
KSaneIface::SplitterCollapser
A button which appears on the side of a splitter handle and allows easy collapsing of the widget on t...
Definition: splittercollapser.h:41
KSaneIface::KSaneScanThread
Definition: ksane_scan_thread.h:45
KSaneIface::KSaneWidgetPrivate::m_basicScrollA
QScrollArea * m_basicScrollA
Definition: ksane_widget_private.h:115
KSaneIface::KSaneWidgetPrivate::signalDevListUpdate
void signalDevListUpdate()
Definition: ksane_widget_private.cpp:159
KSaneIface::KSaneWidgetPrivate::m_optsTabWidget
KTabWidget * m_optsTabWidget
Definition: ksane_widget_private.h:114
KSaneIface::KSanePreviewThread
Definition: ksane_preview_thread.h:46
KSaneIface::KSaneWidgetPrivate::previewScanDone
void previewScanDone()
Definition: ksane_widget_private.cpp:801
ksane.h
KSaneIface::KSaneWidgetPrivate::setBusy
void setBusy(bool busy)
Definition: ksane_widget_private.cpp:1022
ksane_option.h
KSaneIface::KSaneWidgetPrivate::setDefaultValues
void setDefaultValues()
Definition: ksane_widget_private.cpp:488
KSaneIface::KSaneAuth
Definition: ksane_auth.h:44
KSaneIface::KSaneWidgetPrivate::getImgFormat
KSaneWidget::ImageFormat getImgFormat(SANE_Parameters &params)
Definition: ksane_widget_private.cpp:164
KSaneIface::KSaneWidgetPrivate::m_optDepth
KSaneOption * m_optDepth
Definition: ksane_widget_private.h:154
labeled_checkbox.h
KSaneIface::KSaneWidgetPrivate::m_pollList
QList< KSaneOption * > m_pollList
Definition: ksane_widget_private.h:149
KSaneIface::KSaneWidgetPrivate::m_sanePassword
QString m_sanePassword
Definition: ksane_widget_private.h:194
KSaneIface::KSaneWidgetPrivate::getBytesPerLines
int getBytesPerLines(SANE_Parameters &params)
Definition: ksane_widget_private.cpp:197
ksane_scan_thread.h
KSaneIface::KSaneWidgetPrivate
Definition: ksane_widget_private.h:70
KSaneIface::KSaneWidgetPrivate::m_prevBtn
KPushButton * m_prevBtn
Definition: ksane_widget_private.h:134
QObject::name
const char * name() const
KSaneIface::KSaneWidgetPrivate::m_isPreview
bool m_isPreview
Definition: ksane_widget_private.h:175
KSaneIface::KSaneWidgetPrivate::m_otherOptsTab
QWidget * m_otherOptsTab
Definition: ksane_widget_private.h:119
KSaneIface::KSaneWidgetPrivate::m_previewFrame
QWidget * m_previewFrame
Definition: ksane_widget_private.h:125
QTimer
KSaneIface::KSaneWidgetPrivate::m_optTlY
KSaneOption * m_optTlY
Definition: ksane_widget_private.h:159
KSaneIface::KSaneWidgetPrivate::m_closeDevicePending
bool m_closeDevicePending
Definition: ksane_widget_private.h:181
KSaneIface::KSaneWidgetPrivate::m_previewThread
KSanePreviewThread * m_previewThread
Definition: ksane_widget_private.h:191
KSaneIface::KSaneWidgetPrivate::m_splitGamChB
LabeledCheckbox * m_splitGamChB
Definition: ksane_widget_private.h:166
KSaneIface::KSaneWidgetPrivate::m_splitter
QSplitter * m_splitter
Definition: ksane_widget_private.h:122
KSaneIface::KSaneWidgetPrivate::m_zFitBtn
QToolButton * m_zFitBtn
Definition: ksane_widget_private.h:131
QObject
ksane_auth.h
KSaneIface::LabeledGamma
A wrapper for a checkbox.
Definition: labeled_gamma.h:45
KSaneIface::KSaneWidgetPrivate::m_scanData
QByteArray m_scanData
Definition: ksane_widget_private.h:184
KSaneIface::KSaneWidgetPrivate::m_previewImg
QImage m_previewImg
Definition: ksane_widget_private.h:174
KSaneIface::KSaneWidgetPrivate::startFinalScan
void startFinalScan()
Definition: ksane_widget_private.cpp:844
KSaneIface::KSaneWidgetPrivate::m_optionsCollapser
SplitterCollapser * m_optionsCollapser
Definition: ksane_widget_private.h:123
KSaneIface::KSaneWidgetPrivate::m_optionPollTmr
QTimer m_optionPollTmr
Definition: ksane_widget_private.h:189
KSaneIface::KSaneWidgetPrivate::m_scanOngoing
bool m_scanOngoing
Definition: ksane_widget_private.h:180
KSaneIface::KSaneWidgetPrivate::m_selIndex
int m_selIndex
Definition: ksane_widget_private.h:178
ksane_viewer.h
QString
QList
KSaneIface::KSaneWidgetPrivate::m_colorOpts
QWidget * m_colorOpts
Definition: ksane_widget_private.h:117
KSaneIface::KSaneOption
Definition: ksane_option.h:49
KSaneIface::KSaneWidgetPrivate::m_optGamR
KSaneOption * m_optGamR
Definition: ksane_widget_private.h:163
KSaneIface::KSaneWidgetPrivate::m_warmingUp
QLabel * m_warmingUp
Definition: ksane_widget_private.h:137
KSaneIface::KSaneWidgetPrivate::m_optPreview
KSaneOption * m_optPreview
Definition: ksane_widget_private.h:162
KSaneIface::KSaneWidgetPrivate::m_optBrY
KSaneOption * m_optBrY
Definition: ksane_widget_private.h:161
QToolButton
KSaneIface::KSaneViewer
Definition: ksane_viewer.h:37
KSaneIface::KSaneWidgetPrivate::q
KSaneWidget * q
Definition: ksane_widget_private.h:198
KSaneIface::KSaneWidgetPrivate::KSaneWidgetPrivate
KSaneWidgetPrivate(KSaneWidget *)
Definition: ksane_widget_private.cpp:50
KSaneIface::KSaneWidgetPrivate::m_basicOptsTab
QWidget * m_basicOptsTab
Definition: ksane_widget_private.h:116
KSaneIface::KSaneWidgetPrivate::m_scanThread
KSaneScanThread * m_scanThread
Definition: ksane_widget_private.h:190
KSaneIface::KSaneWidgetPrivate::m_optWaitForBtn
KSaneOption * m_optWaitForBtn
Definition: ksane_widget_private.h:168
KSaneIface::KSaneWidgetPrivate::m_progressBar
QProgressBar * m_progressBar
Definition: ksane_widget_private.h:138
KSaneIface::KSaneWidgetPrivate::m_optBrX
KSaneOption * m_optBrX
Definition: ksane_widget_private.h:160
KSaneIface::KSaneWidgetPrivate::m_previewWidth
float m_previewWidth
Definition: ksane_widget_private.h:171
QImage
KSaneIface::LabeledCheckbox
A wrapper for a checkbox.
Definition: labeled_checkbox.h:47
KSaneIface::KSaneWidgetPrivate::m_optRes
KSaneOption * m_optRes
Definition: ksane_widget_private.h:155
KSaneIface::KSaneWidgetPrivate::updateProgress
void updateProgress()
Definition: ksane_widget_private.cpp:1074
QSplitter
KSaneIface::KSaneWidgetPrivate::m_previewDPI
float m_previewDPI
Definition: ksane_widget_private.h:173
ksane_find_devices_thread.h
KSaneIface::KSaneWidgetPrivate::m_previewViewer
KSaneViewer * m_previewViewer
Definition: ksane_widget_private.h:126
KSaneIface::KSaneWidgetPrivate::m_scanBtn
KPushButton * m_scanBtn
Definition: ksane_widget_private.h:133
splittercollapser.h
KSaneIface::KSaneWidgetPrivate::devListUpdated
void devListUpdated()
Definition: ksane_widget_private.cpp:143
KSaneIface::KSaneWidgetPrivate::m_otherScrollA
QScrollArea * m_otherScrollA
Definition: ksane_widget_private.h:118
KSaneIface::KSaneWidgetPrivate::m_devName
QString m_devName
Definition: ksane_widget_private.h:143
KSaneIface::FindSaneDevicesThread
Definition: ksane_find_devices_thread.h:39
KSaneIface::KSaneWidgetPrivate::alertUser
void alertUser(int type, const QString &strStatus)
Definition: ksane_widget_private.cpp:1109
KSaneIface::KSaneWidgetPrivate::m_optSource
KSaneOption * m_optSource
Definition: ksane_widget_private.h:150
KSaneIface::KSaneWidgetPrivate::m_findDevThread
FindSaneDevicesThread * m_findDevThread
Definition: ksane_widget_private.h:196
KSaneIface::KSaneWidgetPrivate::m_invertColors
LabeledCheckbox * m_invertColors
Definition: ksane_widget_private.h:120
KSaneIface::KSaneWidgetPrivate::m_previewHeight
float m_previewHeight
Definition: ksane_widget_private.h:172
KSaneIface::KSaneWidgetPrivate::m_model
QString m_model
Definition: ksane_widget_private.h:145
KSaneIface::KSaneWidgetPrivate::m_updProgressTmr
QTimer m_updProgressTmr
Definition: ksane_widget_private.h:188
KSaneIface::KSaneWidgetPrivate::m_vendor
QString m_vendor
Definition: ksane_widget_private.h:144
KSaneIface::KSaneWidgetPrivate::oneFinalScanDone
void oneFinalScanDone()
Definition: ksane_widget_private.cpp:887
labeled_gamma.h
KSaneIface::KSaneWidgetPrivate::createOptInterface
void createOptInterface()
Definition: ksane_widget_private.cpp:231
KSaneIface::KSaneWidgetPrivate::m_optTlX
KSaneOption * m_optTlX
Definition: ksane_widget_private.h:158
QScrollArea
KSaneIface::KSaneWidgetPrivate::m_optResX
KSaneOption * m_optResX
Definition: ksane_widget_private.h:156
KSaneIface::KSaneWidgetPrivate::m_optResY
KSaneOption * m_optResY
Definition: ksane_widget_private.h:157
QLabel
KSaneIface::KSaneWidgetPrivate::m_auth
KSaneAuth * m_auth
Definition: ksane_widget_private.h:197
KSaneIface::KSaneWidget
This class provides the widget containing the scan options and the preview.
Definition: ksane.h:48
KSaneIface::KSaneWidgetPrivate::m_commonGamma
LabeledGamma * m_commonGamma
Definition: ksane_widget_private.h:167
KSaneIface::KSaneWidgetPrivate::m_btnFrame
QWidget * m_btnFrame
Definition: ksane_widget_private.h:127
KSaneIface::KSaneWidgetPrivate::updatePreviewSize
void updatePreviewSize()
Definition: ksane_widget_private.cpp:646
KSaneIface::KSaneWidgetPrivate::m_clearSelBtn
QToolButton * m_clearSelBtn
Definition: ksane_widget_private.h:132
KSaneIface::KSaneWidgetPrivate::getOption
KSaneOption * getOption(const QString &name)
Definition: ksane_widget_private.cpp:220
KSaneIface::KSaneWidgetPrivate::m_saneUserName
QString m_saneUserName
Definition: ksane_widget_private.h:193
KSaneIface::KSaneWidgetPrivate::m_saneHandle
SANE_Handle m_saneHandle
Definition: ksane_widget_private.h:142
KSaneIface::KSaneWidgetPrivate::m_optNegative
KSaneOption * m_optNegative
Definition: ksane_widget_private.h:151
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:19:47 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

libs/libksane/libksane

Skip menu "libs/libksane/libksane"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdegraphics API Reference

Skip menu "kdegraphics API Reference"
  •     libkdcraw
  •     libkexiv2
  •     libkipi
  •     libksane
  • okular

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal