Showing
11 changed files
with
51 additions
and
52 deletions
@@ -333,7 +333,7 @@ class MultiPage extends Page { | @@ -333,7 +333,7 @@ class MultiPage extends Page { | ||
333 | 'You probably need a SpanningWidget or use a single page layout'); | 333 | 'You probably need a SpanningWidget or use a single page layout'); |
334 | } | 334 | } |
335 | 335 | ||
336 | - final span = child as SpanningWidget; | 336 | + final span = child; |
337 | 337 | ||
338 | if (savedContext != null) { | 338 | if (savedContext != null) { |
339 | // Restore saved context | 339 | // Restore saved context |
@@ -317,10 +317,10 @@ class PrintingPlugin extends PrintingPlatform { | @@ -317,10 +317,10 @@ class PrintingPlugin extends PrintingPlatform { | ||
317 | js.context['document'].createElement('canvas'); | 317 | js.context['document'].createElement('canvas'); |
318 | 318 | ||
319 | final context = canvas.getContext('2d') as html.CanvasRenderingContext2D?; | 319 | final context = canvas.getContext('2d') as html.CanvasRenderingContext2D?; |
320 | - final _pages = | 320 | + final computedPages = |
321 | pages ?? Iterable<int>.generate(numPages, (index) => index); | 321 | pages ?? Iterable<int>.generate(numPages, (index) => index); |
322 | 322 | ||
323 | - for (final pageIndex in _pages) { | 323 | + for (final pageIndex in computedPages) { |
324 | final page = | 324 | final page = |
325 | await promiseToFuture<PdfJsPage>(doc.getPage(pageIndex + 1)); | 325 | await promiseToFuture<PdfJsPage>(doc.getPage(pageIndex + 1)); |
326 | try { | 326 | try { |
@@ -237,14 +237,14 @@ class PdfPageFormatAction extends StatelessWidget { | @@ -237,14 +237,14 @@ class PdfPageFormatAction extends StatelessWidget { | ||
237 | final theme = Theme.of(context); | 237 | final theme = Theme.of(context); |
238 | final iconColor = theme.primaryIconTheme.color ?? Colors.white; | 238 | final iconColor = theme.primaryIconTheme.color ?? Colors.white; |
239 | final data = PdfPreviewController.listen(context); | 239 | final data = PdfPreviewController.listen(context); |
240 | - final _pageFormats = <String, PdfPageFormat>{...pageFormats}; | 240 | + final allPageFormats = <String, PdfPageFormat>{...pageFormats}; |
241 | 241 | ||
242 | var format = data.pageFormat; | 242 | var format = data.pageFormat; |
243 | final orientation = data.horizontal; | 243 | final orientation = data.horizontal; |
244 | 244 | ||
245 | - if (!_pageFormats.values.contains(data.pageFormat)) { | 245 | + if (!allPageFormats.values.contains(data.pageFormat)) { |
246 | var found = false; | 246 | var found = false; |
247 | - for (final f in _pageFormats.values) { | 247 | + for (final f in allPageFormats.values) { |
248 | if (format.portrait == f.portrait) { | 248 | if (format.portrait == f.portrait) { |
249 | format = f; | 249 | format = f; |
250 | found = true; | 250 | found = true; |
@@ -252,11 +252,11 @@ class PdfPageFormatAction extends StatelessWidget { | @@ -252,11 +252,11 @@ class PdfPageFormatAction extends StatelessWidget { | ||
252 | } | 252 | } |
253 | } | 253 | } |
254 | if (!found) { | 254 | if (!found) { |
255 | - _pageFormats['---'] = format; | 255 | + allPageFormats['---'] = format; |
256 | } | 256 | } |
257 | } | 257 | } |
258 | 258 | ||
259 | - final keys = _pageFormats.keys.toList()..sort(); | 259 | + final keys = allPageFormats.keys.toList()..sort(); |
260 | 260 | ||
261 | return DropdownButton<PdfPageFormat>( | 261 | return DropdownButton<PdfPageFormat>( |
262 | dropdownColor: theme.primaryColor, | 262 | dropdownColor: theme.primaryColor, |
@@ -266,10 +266,10 @@ class PdfPageFormatAction extends StatelessWidget { | @@ -266,10 +266,10 @@ class PdfPageFormatAction extends StatelessWidget { | ||
266 | ), | 266 | ), |
267 | value: format, | 267 | value: format, |
268 | items: List<DropdownMenuItem<PdfPageFormat>>.generate( | 268 | items: List<DropdownMenuItem<PdfPageFormat>>.generate( |
269 | - _pageFormats.length, | 269 | + allPageFormats.length, |
270 | (int index) { | 270 | (int index) { |
271 | final key = keys[index]; | 271 | final key = keys[index]; |
272 | - final val = _pageFormats[key]!; | 272 | + final val = allPageFormats[key]!; |
273 | return DropdownMenuItem<PdfPageFormat>( | 273 | return DropdownMenuItem<PdfPageFormat>( |
274 | value: val, | 274 | value: val, |
275 | child: Text(key, style: TextStyle(color: iconColor)), | 275 | child: Text(key, style: TextStyle(color: iconColor)), |
@@ -67,12 +67,9 @@ class PdfPreviewData extends ChangeNotifier { | @@ -67,12 +67,9 @@ class PdfPreviewData extends ChangeNotifier { | ||
67 | PdfPageFormat get actualPageFormat => _onComputeActualPageFormat(); | 67 | PdfPageFormat get actualPageFormat => _onComputeActualPageFormat(); |
68 | 68 | ||
69 | String get localPageFormat { | 69 | String get localPageFormat { |
70 | - // Flutter 3 workaround | ||
71 | - // ignore: omit_local_variable_types | ||
72 | - final WidgetsBinding? wbi = WidgetsBinding.instance; | ||
73 | - final locale = wbi!.window.locale; | ||
74 | - // ignore: unnecessary_cast | ||
75 | - final cc = (locale as Locale?)?.countryCode ?? 'US'; | 70 | + final wbi = WidgetsBinding.instance; |
71 | + final locale = wbi.window.locale; | ||
72 | + final cc = locale.countryCode ?? 'US'; | ||
76 | 73 | ||
77 | if (cc == 'US' || cc == 'CA' || cc == 'MX') { | 74 | if (cc == 'US' || cc == 'CA' || cc == 'MX') { |
78 | return 'Letter'; | 75 | return 'Letter'; |
@@ -157,9 +157,9 @@ class PdfPreviewCustomState extends State<PdfPreviewCustom> | @@ -157,9 +157,9 @@ class PdfPreviewCustomState extends State<PdfPreviewCustom> | ||
157 | void didChangeDependencies() { | 157 | void didChangeDependencies() { |
158 | if (!infoLoaded) { | 158 | if (!infoLoaded) { |
159 | infoLoaded = true; | 159 | infoLoaded = true; |
160 | - Printing.info().then((PrintingInfo _info) { | 160 | + Printing.info().then((PrintingInfo printingInfo) { |
161 | setState(() { | 161 | setState(() { |
162 | - info = _info; | 162 | + info = printingInfo; |
163 | raster(); | 163 | raster(); |
164 | }); | 164 | }); |
165 | }); | 165 | }); |
@@ -182,8 +182,8 @@ class PdfPreviewCustomState extends State<PdfPreviewCustom> | @@ -182,8 +182,8 @@ class PdfPreviewCustomState extends State<PdfPreviewCustom> | ||
182 | return _showError(error!); | 182 | return _showError(error!); |
183 | } | 183 | } |
184 | 184 | ||
185 | - final _info = info; | ||
186 | - if (_info != null && !_info.canRaster) { | 185 | + final printingInfo = info; |
186 | + if (printingInfo != null && !printingInfo.canRaster) { | ||
187 | return _showError(_errorMessage); | 187 | return _showError(_errorMessage); |
188 | } | 188 | } |
189 | 189 |
@@ -228,10 +228,10 @@ class PdfPreview extends StatefulWidget { | @@ -228,10 +228,10 @@ class PdfPreview extends StatefulWidget { | ||
228 | final CustomPdfPagesBuilder? _pagesBuilder; | 228 | final CustomPdfPagesBuilder? _pagesBuilder; |
229 | 229 | ||
230 | @override | 230 | @override |
231 | - _PdfPreviewState createState() => _PdfPreviewState(); | 231 | + PdfPreviewState createState() => PdfPreviewState(); |
232 | } | 232 | } |
233 | 233 | ||
234 | -class _PdfPreviewState extends State<PdfPreview> { | 234 | +class PdfPreviewState extends State<PdfPreview> { |
235 | final previewWidget = GlobalKey<PdfPreviewCustomState>(); | 235 | final previewWidget = GlobalKey<PdfPreviewCustomState>(); |
236 | late PdfPreviewData previewData; | 236 | late PdfPreviewData previewData; |
237 | 237 | ||
@@ -305,9 +305,9 @@ class _PdfPreviewState extends State<PdfPreview> { | @@ -305,9 +305,9 @@ class _PdfPreviewState extends State<PdfPreview> { | ||
305 | void didChangeDependencies() { | 305 | void didChangeDependencies() { |
306 | if (!infoLoaded) { | 306 | if (!infoLoaded) { |
307 | infoLoaded = true; | 307 | infoLoaded = true; |
308 | - Printing.info().then((PrintingInfo _info) { | 308 | + Printing.info().then((PrintingInfo printingInfo) { |
309 | setState(() { | 309 | setState(() { |
310 | - info = _info; | 310 | + info = printingInfo; |
311 | }); | 311 | }); |
312 | }); | 312 | }); |
313 | } | 313 | } |
@@ -100,10 +100,10 @@ mixin PdfPreviewRaster on State<PdfPreviewCustom> { | @@ -100,10 +100,10 @@ mixin PdfPreviewRaster on State<PdfPreviewCustom> { | ||
100 | } | 100 | } |
101 | _rastering = true; | 101 | _rastering = true; |
102 | 102 | ||
103 | - Uint8List _doc; | 103 | + Uint8List doc; |
104 | 104 | ||
105 | - final _info = info; | ||
106 | - if (_info != null && !_info.canRaster) { | 105 | + final printingInfo = info; |
106 | + if (printingInfo != null && !printingInfo.canRaster) { | ||
107 | assert(() { | 107 | assert(() { |
108 | if (kIsWeb) { | 108 | if (kIsWeb) { |
109 | FlutterError.reportError(FlutterErrorDetails( | 109 | FlutterError.reportError(FlutterErrorDetails( |
@@ -122,7 +122,7 @@ mixin PdfPreviewRaster on State<PdfPreviewCustom> { | @@ -122,7 +122,7 @@ mixin PdfPreviewRaster on State<PdfPreviewCustom> { | ||
122 | } | 122 | } |
123 | 123 | ||
124 | try { | 124 | try { |
125 | - _doc = await widget.build(pageFormat); | 125 | + doc = await widget.build(pageFormat); |
126 | } catch (exception, stack) { | 126 | } catch (exception, stack) { |
127 | InformationCollector? collector; | 127 | InformationCollector? collector; |
128 | 128 | ||
@@ -159,7 +159,7 @@ mixin PdfPreviewRaster on State<PdfPreviewCustom> { | @@ -159,7 +159,7 @@ mixin PdfPreviewRaster on State<PdfPreviewCustom> { | ||
159 | try { | 159 | try { |
160 | var pageNum = 0; | 160 | var pageNum = 0; |
161 | await for (final PdfRaster page in Printing.raster( | 161 | await for (final PdfRaster page in Printing.raster( |
162 | - _doc, | 162 | + doc, |
163 | dpi: dpi, | 163 | dpi: dpi, |
164 | pages: widget.pages, | 164 | pages: widget.pages, |
165 | )) { | 165 | )) { |
@@ -74,9 +74,9 @@ mixin Printing { | @@ -74,9 +74,9 @@ mixin Printing { | ||
74 | Rect? bounds, | 74 | Rect? bounds, |
75 | String? title, | 75 | String? title, |
76 | }) async { | 76 | }) async { |
77 | - final _info = await info(); | 77 | + final printingInfo = await info(); |
78 | 78 | ||
79 | - if (_info.canListPrinters) { | 79 | + if (printingInfo.canListPrinters) { |
80 | final printers = await listPrinters(); | 80 | final printers = await listPrinters(); |
81 | printers.sort((a, b) { | 81 | printers.sort((a, b) { |
82 | if (a.isDefault) { | 82 | if (a.isDefault) { |
@@ -88,6 +88,7 @@ mixin Printing { | @@ -88,6 +88,7 @@ mixin Printing { | ||
88 | return a.name.compareTo(b.name); | 88 | return a.name.compareTo(b.name); |
89 | }); | 89 | }); |
90 | 90 | ||
91 | + // ignore: use_build_context_synchronously | ||
91 | return await showDialog<Printer>( | 92 | return await showDialog<Printer>( |
92 | context: context, | 93 | context: context, |
93 | builder: (context) => SimpleDialog( | 94 | builder: (context) => SimpleDialog( |
@@ -144,31 +144,32 @@ class WidgetWrapper extends pw.ImageProvider { | @@ -144,31 +144,32 @@ class WidgetWrapper extends pw.ImageProvider { | ||
144 | child: widget, | 144 | child: widget, |
145 | ); | 145 | ); |
146 | 146 | ||
147 | - final _properties = DiagnosticPropertiesBuilder(); | ||
148 | - widget.debugFillProperties(_properties); | 147 | + final prop = DiagnosticPropertiesBuilder(); |
148 | + widget.debugFillProperties(prop); | ||
149 | 149 | ||
150 | - if (_properties.properties.isEmpty) { | 150 | + if (prop.properties.isEmpty) { |
151 | throw ErrorDescription('Unable to get the widget properties'); | 151 | throw ErrorDescription('Unable to get the widget properties'); |
152 | } | 152 | } |
153 | 153 | ||
154 | - final _constraints = _properties.properties | 154 | + final computedConstraints = prop.properties |
155 | .whereType<DiagnosticsProperty<BoxConstraints>>() | 155 | .whereType<DiagnosticsProperty<BoxConstraints>>() |
156 | .first | 156 | .first |
157 | .value; | 157 | .value; |
158 | 158 | ||
159 | - if (_constraints == null || | ||
160 | - !_constraints.hasBoundedWidth || | ||
161 | - !_constraints.hasBoundedWidth) { | 159 | + if (computedConstraints == null || |
160 | + !computedConstraints.hasBoundedWidth || | ||
161 | + !computedConstraints.hasBoundedWidth) { | ||
162 | throw Exception('Unable to convert an unbounded widget.'); | 162 | throw Exception('Unable to convert an unbounded widget.'); |
163 | } | 163 | } |
164 | 164 | ||
165 | - final _repaintBoundary = RenderRepaintBoundary(); | 165 | + final repaintBoundary = RenderRepaintBoundary(); |
166 | 166 | ||
167 | final renderView = RenderView( | 167 | final renderView = RenderView( |
168 | child: RenderPositionedBox( | 168 | child: RenderPositionedBox( |
169 | - alignment: Alignment.center, child: _repaintBoundary), | 169 | + alignment: Alignment.center, child: repaintBoundary), |
170 | configuration: ViewConfiguration( | 170 | configuration: ViewConfiguration( |
171 | - size: Size(_constraints.maxWidth, _constraints.maxHeight), | 171 | + size: |
172 | + Size(computedConstraints.maxWidth, computedConstraints.maxHeight), | ||
172 | devicePixelRatio: ui.window.devicePixelRatio), | 173 | devicePixelRatio: ui.window.devicePixelRatio), |
173 | window: ui.window, | 174 | window: ui.window, |
174 | ); | 175 | ); |
@@ -177,8 +178,8 @@ class WidgetWrapper extends pw.ImageProvider { | @@ -177,8 +178,8 @@ class WidgetWrapper extends pw.ImageProvider { | ||
177 | renderView.prepareInitialFrame(); | 178 | renderView.prepareInitialFrame(); |
178 | 179 | ||
179 | final buildOwner = BuildOwner(focusManager: FocusManager()); | 180 | final buildOwner = BuildOwner(focusManager: FocusManager()); |
180 | - final _rootElement = RenderObjectToWidgetAdapter<RenderBox>( | ||
181 | - container: _repaintBoundary, | 181 | + final rootElement = RenderObjectToWidgetAdapter<RenderBox>( |
182 | + container: repaintBoundary, | ||
182 | child: Directionality( | 183 | child: Directionality( |
183 | textDirection: TextDirection.ltr, | 184 | textDirection: TextDirection.ltr, |
184 | child: IntrinsicHeight(child: IntrinsicWidth(child: widget)), | 185 | child: IntrinsicHeight(child: IntrinsicWidth(child: widget)), |
@@ -186,7 +187,7 @@ class WidgetWrapper extends pw.ImageProvider { | @@ -186,7 +187,7 @@ class WidgetWrapper extends pw.ImageProvider { | ||
186 | ).attachToRenderTree(buildOwner); | 187 | ).attachToRenderTree(buildOwner); |
187 | 188 | ||
188 | buildOwner | 189 | buildOwner |
189 | - ..buildScope(_rootElement) | 190 | + ..buildScope(rootElement) |
190 | ..finalizeTree(); | 191 | ..finalizeTree(); |
191 | 192 | ||
192 | pipelineOwner | 193 | pipelineOwner |
@@ -194,7 +195,7 @@ class WidgetWrapper extends pw.ImageProvider { | @@ -194,7 +195,7 @@ class WidgetWrapper extends pw.ImageProvider { | ||
194 | ..flushCompositingBits() | 195 | ..flushCompositingBits() |
195 | ..flushPaint(); | 196 | ..flushPaint(); |
196 | 197 | ||
197 | - final image = await _repaintBoundary.toImage(pixelRatio: pixelRatio); | 198 | + final image = await repaintBoundary.toImage(pixelRatio: pixelRatio); |
198 | final bytes = await image.toByteData(format: ui.ImageByteFormat.rawRgba); | 199 | final bytes = await image.toByteData(format: ui.ImageByteFormat.rawRgba); |
199 | if (bytes == null) { | 200 | if (bytes == null) { |
200 | throw Exception('Unable to read image data'); | 201 | throw Exception('Unable to read image data'); |
@@ -12,8 +12,8 @@ screenshots: | @@ -12,8 +12,8 @@ screenshots: | ||
12 | version: 5.10.0 | 12 | version: 5.10.0 |
13 | 13 | ||
14 | environment: | 14 | environment: |
15 | - sdk: ">=2.12.0 <3.0.0" | ||
16 | - flutter: ">=1.16.0" | 15 | + sdk: ">=2.18.0 <3.0.0" |
16 | + flutter: ">=3.7.0" | ||
17 | 17 | ||
18 | dependencies: | 18 | dependencies: |
19 | ffi: ">=1.1.0 <3.0.0" | 19 | ffi: ">=1.1.0 <3.0.0" |
@@ -22,17 +22,17 @@ dependencies: | @@ -22,17 +22,17 @@ dependencies: | ||
22 | flutter_web_plugins: | 22 | flutter_web_plugins: |
23 | sdk: flutter | 23 | sdk: flutter |
24 | http: ^0.13.0 | 24 | http: ^0.13.0 |
25 | - image: ^4.0.0 | 25 | + image: ^4.0.02 |
26 | js: ^0.6.3 | 26 | js: ^0.6.3 |
27 | meta: ">=1.3.0 <2.0.0" | 27 | meta: ">=1.3.0 <2.0.0" |
28 | pdf: ^3.9.0 | 28 | pdf: ^3.9.0 |
29 | - plugin_platform_interface: ^2.0.0 | 29 | + plugin_platform_interface: ^2.1.0 |
30 | 30 | ||
31 | dev_dependencies: | 31 | dev_dependencies: |
32 | - flutter_lints: ^1.0.4 | 32 | + flutter_lints: ^2.0.1 |
33 | flutter_test: | 33 | flutter_test: |
34 | sdk: flutter | 34 | sdk: flutter |
35 | - mockito: ^5.0.0 | 35 | + mockito: ^5.3.2 |
36 | 36 | ||
37 | dependency_overrides: | 37 | dependency_overrides: |
38 | pdf: | 38 | pdf: |
-
Please register or login to post a comment