Commit 84de4e30 authored by Bram Schoenmakers's avatar Bram Schoenmakers

Merge branch 'column-ui' of github.com:bram85/topydo into column-ui/master

parents 38b822d0 a2aba8b9
...@@ -18,6 +18,9 @@ import configparser ...@@ -18,6 +18,9 @@ import configparser
import os import os
import shlex import shlex
def home_config_path(p_filename):
return os.path.join(os.path.expanduser('~'), p_filename)
class ConfigError(Exception): class ConfigError(Exception):
def __init__(self, p_text): def __init__(self, p_text):
self.text = p_text self.text = p_text
...@@ -120,7 +123,8 @@ class _Config: ...@@ -120,7 +123,8 @@ class _Config:
files = [ files = [
"/etc/topydo.conf", "/etc/topydo.conf",
self._home_config_path(), home_config_path('.config/topydo/config'),
home_config_path('.topydo'),
".topydo", ".topydo",
"topydo.conf", "topydo.conf",
"topydo.ini", "topydo.ini",
...@@ -143,9 +147,6 @@ class _Config: ...@@ -143,9 +147,6 @@ class _Config:
if not self.cp.has_section(section): if not self.cp.has_section(section):
self.cp.add_section(section) self.cp.add_section(section)
def _home_config_path(self):
return os.path.join(os.path.expanduser('~'), '.topydo')
def default_command(self): def default_command(self):
return self.cp.get('topydo', 'default_command') return self.cp.get('topydo', 'default_command')
...@@ -310,7 +311,6 @@ class _Config: ...@@ -310,7 +311,6 @@ class _Config:
""" Returns the list format used by `ls` """ """ Returns the list format used by `ls` """
return self.cp.get('ls', 'list_format') return self.cp.get('ls', 'list_format')
def config(p_path=None, p_overrides=None): def config(p_path=None, p_overrides=None):
""" """
Retrieve the config instance. Retrieve the config instance.
......
# Topydo - A todo.txt client written in Python.
# Copyright (C) 2014 - 2015 Bram Schoenmakers <me@bramschoenmakers.nl>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import configparser
from topydo.lib.Config import home_config_path
def columns():
"""
Returns list with complete column configuration dicts.
"""
def _get_column_dict(p_cp, p_column):
column_dict = dict()
column_dict['title'] = p_cp.get(p_column, 'title')
column_dict['filterexpr'] = p_cp.get(p_column, 'filterexpr')
column_dict['sortexpr'] = p_cp.get(p_column, 'sortexpr')
column_dict['show_all'] = p_cp.getboolean(p_column, 'show_all')
return column_dict
defaults = {
'title': 'Yet another column',
'filterexpr': '',
'sortexpr': 'desc:prio',
'show_all': '0',
}
cp = configparser.RawConfigParser(defaults)
files = [
"/etc/topydo_columns.conf",
home_config_path('.config/topydo/columns'),
home_config_path('.topydo_columns'),
".topydo_columns",
"topydo_columns.conf",
"topydo_columns.ini",
]
cp.read(files)
column_list = []
for column in cp.sections():
column_list.append(_get_column_dict(cp, column))
return column_list
...@@ -23,6 +23,7 @@ from topydo.ui.CommandLineWidget import CommandLineWidget ...@@ -23,6 +23,7 @@ from topydo.ui.CommandLineWidget import CommandLineWidget
from topydo.ui.ConsoleWidget import ConsoleWidget from topydo.ui.ConsoleWidget import ConsoleWidget
from topydo.ui.TodoListWidget import TodoListWidget from topydo.ui.TodoListWidget import TodoListWidget
from topydo.ui.ViewWidget import ViewWidget from topydo.ui.ViewWidget import ViewWidget
from topydo.ui.ColumnLayout import columns
from topydo.lib.Config import config from topydo.lib.Config import config
from topydo.lib.Sorter import Sorter from topydo.lib.Sorter import Sorter
from topydo.lib.Filter import get_filter_list, RelevanceFilter, DependencyFilter from topydo.lib.Filter import get_filter_list, RelevanceFilter, DependencyFilter
...@@ -318,8 +319,13 @@ class UIApplication(CLIApplicationBase): ...@@ -318,8 +319,13 @@ class UIApplication(CLIApplicationBase):
return user_input[0] return user_input[0]
def run(self): def run(self):
layout = columns()
if len(layout) > 0:
for column in layout:
self._add_column(self._viewdata_to_view(column))
else:
dummy = { dummy = {
"title": "View 1", "title": "All tasks",
"sortexpr": "desc:prio", "sortexpr": "desc:prio",
"filterexpr": "", "filterexpr": "",
"show_all": True, "show_all": True,
......
[all]
title = All tasks
filterexpr =
[today]
title = Due today
filterexpr = due:tod
[overdue]
title = Overdue tasks
filterexpr = due:<tod
sortexpr = desc:due
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment