openFile method

Future<void> openFile(
  1. WidgetRef widgetRef
)

Implementation

Future<void> openFile(WidgetRef widgetRef) async {
  final selectedFile = await fs.openFile(acceptedTypeGroups: [
    const fs.XTypeGroup(label: 'SMCAT', extensions: ['smcat'])
  ]);
  if (selectedFile == null) {
    log('User cancelled the file open');
    return;
  }

  final pathToSelected = selectedFile.path;
  _smcatFolder = SMCatFolder(
      folderPath: p.dirname(pathToSelected),
      basename: SMCatFolder.getBasename(pathToSelected));
  await _smcatFolder.generateAll(force: true);

  final smcatFile = SMCatFile(pathToSelected);

  widgetRef.read(smcatPageProvider).loadPages(_smcatFolder.list);

  widgetRef.read(currentPageProvider).pageNo = max(0, smcatFile.pageNo - 1);

  await WatchFolder(
          pathTo: _smcatFolder.folderPath,
          extension: 'smcat',
          onChanged: (file, action) async => reload(widgetRef, file, action))
      .watch();
}