Widget _settingsDialog()

in dashboard/lib/build_dashboard_page.dart [99:190]


  Widget _settingsDialog(BuildContext context, BuildState _buildState) {
    final ThemeData theme = Theme.of(context);
    return Center(
      child: Container(
        decoration: BoxDecoration(
          color: theme.dialogBackgroundColor.withAlpha(0xe0),
          borderRadius: BorderRadius.circular(20.0),
        ),
        child: Material(
          color: Colors.transparent,
          child: FocusTraversalGroup(
            child: Column(
              mainAxisSize: MainAxisSize.min,
              children: <Widget>[
                DropdownButton<String>(
                  value: _buildState.currentRepo,
                  icon: const Icon(
                    Icons.arrow_downward,
                  ),
                  iconSize: 24,
                  elevation: 16,
                  underline: Container(
                    height: 2,
                  ),
                  onChanged: (String selectedRepo) {
                    repo = selectedRepo;
                    _updateNavigation(context);
                  },
                  items: _buildState.repos.map<DropdownMenuItem<String>>((String value) {
                    return DropdownMenuItem<String>(
                      value: value,
                      child: Text(value, style: theme.primaryTextTheme.bodyText1),
                    );
                  }).toList(),
                ),
                DropdownButton<String>(
                  value: _buildState.currentBranch,
                  icon: const Icon(
                    Icons.arrow_downward,
                  ),
                  iconSize: 24,
                  elevation: 16,
                  underline: Container(
                    height: 2,
                  ),
                  onChanged: (String selectedBranch) {
                    branch = selectedBranch;
                    _updateNavigation(context);
                  },
                  items: _buildState.branches.map<DropdownMenuItem<String>>((String value) {
                    return DropdownMenuItem<String>(
                      value: value,
                      child: Text(value, style: theme.primaryTextTheme.bodyText1),
                    );
                  }).toList(),
                ),
                TextButton(
                  child: const Text('Vacuum GitHub Commits'),
                  onPressed: _buildState.refreshGitHubCommits,
                ),
                FilterPropertySheet(_filter),
                Row(
                  mainAxisSize: MainAxisSize.min,
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    TextButton(
                      child: const Text('Defaults'),
                      onPressed: _filter.isDefault ? null : () => _filter.reset(),
                    ),
                    TextButton(
                      child: const Text('Apply'),
                      onPressed: _filter == _settingsBasis ? null : () => _updateNavigation(context),
                    ),
                    TextButton(
                      child: const Text('Cancel'),
                      onPressed: () {
                        if (_filter != _settingsBasis) {
                          _filter.reset();
                          _filter.applyMap(_settingsBasis.toMap(includeDefaults: false));
                        }
                        _removeSettingsDialog();
                      },
                    ),
                  ],
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }