convert_options_provider.dart 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. import 'package:ConversionFlutterDemo/models/convert_contain_options_bean.dart';
  2. import 'package:ConversionFlutterDemo/models/convert_type.dart';
  3. import 'package:ConversionFlutterDemo/widgets/options/convert_excel_options_widget.dart';
  4. import 'package:flutter/material.dart';
  5. ///record convert format options
  6. class ConvertOptionsProvider extends ChangeNotifier {
  7. ConvertType convertType = ConvertType.none;
  8. ConvertOptionsBean pptOptions =
  9. ConvertOptionsBean(containImages: true, containAnnotations: true);
  10. ConvertOptionsBean wordOptions =
  11. ConvertOptionsBean(containImages: true, containAnnotations: true);
  12. ConvertOptionsBean excelOptions = ConvertOptionsBean(
  13. containImages: true,
  14. containAnnotations: false,
  15. workSheetOptions: ExcelWorkSheetOptions.ForEachPage,
  16. contentOptions: ContentOptions.AllContent);
  17. ConvertOptionsBean imageOptions = ConvertOptionsBean(
  18. containImages: true,
  19. containAnnotations: true,
  20. imageDpi: 300,
  21. imagePageOptions: ImagePageOptions.PNG);
  22. ConvertOptionsBean csvOptions = ConvertOptionsBean(mergeCSV: false);
  23. ConvertOptionsBean rtfOptions =
  24. ConvertOptionsBean(containImages: true, containAnnotations: true);
  25. ConvertOptionsBean htmlOptions = ConvertOptionsBean(
  26. containImages: true,
  27. containAnnotations: false,
  28. htmlPageOptions: HtmlPageOptions.SinglePage);
  29. ConvertOptionsBean getOptions() {
  30. switch (convertType) {
  31. case ConvertType.ppt:
  32. return pptOptions;
  33. case ConvertType.word:
  34. return wordOptions;
  35. case ConvertType.excel:
  36. return excelOptions;
  37. case ConvertType.image:
  38. return imageOptions;
  39. case ConvertType.csv:
  40. return csvOptions;
  41. case ConvertType.rtf:
  42. return rtfOptions;
  43. case ConvertType.html:
  44. return htmlOptions;
  45. default:
  46. return ConvertOptionsBean();
  47. }
  48. }
  49. void changeConvertType(ConvertType convertType) {
  50. this.convertType = convertType;
  51. notifyListeners();
  52. }
  53. void changePPTOptions({bool? containImages, bool? containAnnotations}) {
  54. if (containImages != null) {
  55. pptOptions.containImages = containImages;
  56. }
  57. if (containAnnotations != null) {
  58. pptOptions.containAnnotations = containAnnotations;
  59. }
  60. notifyListeners();
  61. }
  62. void changeWordOptions({bool? containImages, bool? containAnnotations}) {
  63. if (containImages != null) {
  64. wordOptions.containImages = containImages;
  65. }
  66. if (containAnnotations != null) {
  67. wordOptions.containAnnotations = containAnnotations;
  68. }
  69. notifyListeners();
  70. }
  71. void changeExcelOptions(
  72. {bool? containImages,
  73. bool? containAnnotations,
  74. ExcelWorkSheetOptions? workSheetOptions,
  75. ContentOptions? contentOptions}) {
  76. if (containImages != null) {
  77. excelOptions.containImages = containImages;
  78. }
  79. if (containAnnotations != null) {
  80. excelOptions.containAnnotations = containAnnotations;
  81. }
  82. if (workSheetOptions != null) {
  83. excelOptions.workSheetOptions = workSheetOptions;
  84. }
  85. if (contentOptions != null) {
  86. excelOptions.contentOptions = contentOptions;
  87. }
  88. notifyListeners();
  89. }
  90. void changeImageOptions(
  91. {bool? containImages,
  92. bool? containAnnotations,
  93. int? imageDpi,
  94. ImagePageOptions? imagePageOptions}) {
  95. if (containImages != null) {
  96. imageOptions.containImages = containImages;
  97. }
  98. if (containAnnotations != null) {
  99. imageOptions.containAnnotations = containAnnotations;
  100. }
  101. if (imageDpi != null) {
  102. imageOptions.imageDpi = imageDpi;
  103. }
  104. if (imagePageOptions != null) {
  105. imageOptions.imagePageOptions = imagePageOptions;
  106. }
  107. notifyListeners();
  108. }
  109. void changeCSVOptions(bool mergeCSV) {
  110. csvOptions.mergeCSV = mergeCSV;
  111. notifyListeners();
  112. }
  113. void changeRTFOptions({bool? containImages, bool? containAnnotations}) {
  114. if (containImages != null) {
  115. rtfOptions.containImages = containImages;
  116. }
  117. if (containAnnotations != null) {
  118. rtfOptions.containAnnotations = containAnnotations;
  119. }
  120. notifyListeners();
  121. }
  122. void changeHtmlOptions({bool? containImages, bool? containAnnotations,
  123. HtmlPageOptions? htmlPageOptions}) {
  124. if (containImages != null) {
  125. htmlOptions.containImages = containImages;
  126. }
  127. if (containAnnotations != null) {
  128. htmlOptions.containAnnotations = containAnnotations;
  129. }
  130. if (htmlPageOptions != null) {
  131. htmlOptions.htmlPageOptions = htmlPageOptions;
  132. }
  133. notifyListeners();
  134. }
  135. }