Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 169916 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksUiPreferencePage.java (-2 / +24 lines)
Lines 1-5 Link Here
1
/*******************************************************************************
1
/*******************************************************************************
2
* Copyright (c) 2004, 2008 Tasktop Technologies and others.
2
 * Copyright (c) 2004, 2008 Tasktop Technologies and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 101-106 Link Here
101
101
102
	private Button useRichEditor;
102
	private Button useRichEditor;
103
103
104
	private Button useStrikethrough;
105
104
	private Button useWebBrowser;
106
	private Button useWebBrowser;
105
107
106
	private Text synchScheduleTime = null;
108
	private Text synchScheduleTime = null;
Lines 147-152 Link Here
147
		createTaskRefreshScheduleGroup(container);
149
		createTaskRefreshScheduleGroup(container);
148
		createSchedulingGroup(container);
150
		createSchedulingGroup(container);
149
		createOpenWith(container);
151
		createOpenWith(container);
152
		createTaskListOption(container);
150
		Composite advanced = createAdvancedSection(container);
153
		Composite advanced = createAdvancedSection(container);
151
		createTaskActivityGroup(advanced);
154
		createTaskActivityGroup(advanced);
152
		createTaskDataControl(advanced);
155
		createTaskDataControl(advanced);
Lines 211-217 Link Here
211
		//getPreferenceStore().setValue(TasksUiPreferenceConstants.BACKUP_SCHEDULE, backupScheduleTimeText.getText());
214
		//getPreferenceStore().setValue(TasksUiPreferenceConstants.BACKUP_SCHEDULE, backupScheduleTimeText.getText());
212
215
213
		getPreferenceStore().setValue(ITasksUiPreferenceConstants.EDITOR_TASKS_RICH, useRichEditor.getSelection());
216
		getPreferenceStore().setValue(ITasksUiPreferenceConstants.EDITOR_TASKS_RICH, useRichEditor.getSelection());
214
217
		getPreferenceStore().setValue(ITasksUiPreferenceConstants.USE_STRIKETHROUGH_FOR_COMPLETED,
218
				useStrikethrough.getSelection());
215
		getPreferenceStore().setValue(ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_ENABLED,
219
		getPreferenceStore().setValue(ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_ENABLED,
216
				enableBackgroundSynch.getSelection());
220
				enableBackgroundSynch.getSelection());
217
		long miliseconds = 60000 * Long.parseLong(synchScheduleTime.getText());
221
		long miliseconds = 60000 * Long.parseLong(synchScheduleTime.getText());
Lines 272-277 Link Here
272
		//backupFolderText.setText(TasksUiPlugin.getDefault().getBackupFolderPath());
276
		//backupFolderText.setText(TasksUiPlugin.getDefault().getBackupFolderPath());
273
277
274
		useRichEditor.setSelection(getPreferenceStore().getBoolean(ITasksUiPreferenceConstants.EDITOR_TASKS_RICH));
278
		useRichEditor.setSelection(getPreferenceStore().getBoolean(ITasksUiPreferenceConstants.EDITOR_TASKS_RICH));
279
		useStrikethrough.setSelection(getPreferenceStore().getBoolean(
280
				ITasksUiPreferenceConstants.USE_STRIKETHROUGH_FOR_COMPLETED));
281
275
		// synchQueries.setSelection(getPreferenceStore().getBoolean(
282
		// synchQueries.setSelection(getPreferenceStore().getBoolean(
276
		// TaskListPreferenceConstants.REPOSITORY_SYNCH_ON_STARTUP));
283
		// TaskListPreferenceConstants.REPOSITORY_SYNCH_ON_STARTUP));
277
		enableBackgroundSynch.setSelection(getPreferenceStore().getBoolean(
284
		enableBackgroundSynch.setSelection(getPreferenceStore().getBoolean(
Lines 312-317 Link Here
312
		//backupScheduleTimeText.setText(getPreferenceStore().getDefaultString(TasksUiPreferenceConstants.BACKUP_SCHEDULE));
319
		//backupScheduleTimeText.setText(getPreferenceStore().getDefaultString(TasksUiPreferenceConstants.BACKUP_SCHEDULE));
313
320
314
		useRichEditor.setSelection(getPreferenceStore().getDefaultBoolean(ITasksUiPreferenceConstants.EDITOR_TASKS_RICH));
321
		useRichEditor.setSelection(getPreferenceStore().getDefaultBoolean(ITasksUiPreferenceConstants.EDITOR_TASKS_RICH));
322
		useStrikethrough.setSelection(getPreferenceStore().getDefaultBoolean(
323
				ITasksUiPreferenceConstants.USE_STRIKETHROUGH_FOR_COMPLETED));
315
324
316
		// synchQueries.setSelection(getPreferenceStore().getDefaultBoolean(
325
		// synchQueries.setSelection(getPreferenceStore().getDefaultBoolean(
317
		// TaskListPreferenceConstants.REPOSITORY_SYNCH_ON_STARTUP));
326
		// TaskListPreferenceConstants.REPOSITORY_SYNCH_ON_STARTUP));
Lines 392-397 Link Here
392
		useWebBrowser.setSelection(!getPreferenceStore().getBoolean(ITasksUiPreferenceConstants.EDITOR_TASKS_RICH));
401
		useWebBrowser.setSelection(!getPreferenceStore().getBoolean(ITasksUiPreferenceConstants.EDITOR_TASKS_RICH));
393
	}
402
	}
394
403
404
	private void createTaskListOption(Composite parent) {
405
		Group container = new Group(parent, SWT.SHADOW_ETCHED_IN);
406
		container.setLayout(new GridLayout(3, false));
407
		container.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
408
409
		container.setText("Task List");
410
		useStrikethrough = new Button(container, SWT.CHECK);
411
		useStrikethrough.setText("strikethrough for completed Task (Recommended)");
412
		useStrikethrough.setSelection(getPreferenceStore().getBoolean(
413
				ITasksUiPreferenceConstants.USE_STRIKETHROUGH_FOR_COMPLETED));
414
415
	}
416
395
	private void createTaskDataControl(Composite parent) {
417
	private void createTaskDataControl(Composite parent) {
396
418
397
		Group taskDataGroup = new Group(parent, SWT.SHADOW_ETCHED_IN);
419
		Group taskDataGroup = new Group(parent, SWT.SHADOW_ETCHED_IN);
(-)src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java (+2 lines)
Lines 881-886 Link Here
881
		store.setDefault(ITasksUiPreferenceConstants.NOTIFICATIONS_ENABLED, true);
881
		store.setDefault(ITasksUiPreferenceConstants.NOTIFICATIONS_ENABLED, true);
882
		store.setDefault(ITasksUiPreferenceConstants.FILTER_PRIORITY, PriorityLevel.P5.toString());
882
		store.setDefault(ITasksUiPreferenceConstants.FILTER_PRIORITY, PriorityLevel.P5.toString());
883
		store.setDefault(ITasksUiPreferenceConstants.EDITOR_TASKS_RICH, true);
883
		store.setDefault(ITasksUiPreferenceConstants.EDITOR_TASKS_RICH, true);
884
		store.setDefault(ITasksUiPreferenceConstants.USE_STRIKETHROUGH_FOR_COMPLETED, true);
885
884
		store.setDefault(ITasksUiPreferenceConstants.ACTIVATE_WHEN_OPENED, false);
886
		store.setDefault(ITasksUiPreferenceConstants.ACTIVATE_WHEN_OPENED, false);
885
		store.setDefault(ITasksUiPreferenceConstants.SHOW_TRIM, false);
887
		store.setDefault(ITasksUiPreferenceConstants.SHOW_TRIM, false);
886
		store.setDefault(ITasksUiPreferenceConstants.LOCAL_SUB_TASKS_ENABLED, false);
888
		store.setDefault(ITasksUiPreferenceConstants.LOCAL_SUB_TASKS_ENABLED, false);
(-)src/org/eclipse/mylyn/internal/tasks/ui/ITasksUiPreferenceConstants.java (+2 lines)
Lines 58-63 Link Here
58
58
59
	public static final String EDITOR_TASKS_RICH = "org.eclipse.mylyn.tasks.ui.reporting.open.editor";
59
	public static final String EDITOR_TASKS_RICH = "org.eclipse.mylyn.tasks.ui.reporting.open.editor";
60
60
61
	public static final String USE_STRIKETHROUGH_FOR_COMPLETED = "org.eclipse.mylyn.tasks.ui.strikethrough.for.completed";
62
61
	public static final String REPOSITORY_SYNCH_SCHEDULE_ENABLED = "org.eclipse.mylyn.tasks.ui.repositories.synch.schedule";
63
	public static final String REPOSITORY_SYNCH_SCHEDULE_ENABLED = "org.eclipse.mylyn.tasks.ui.repositories.synch.schedule";
62
64
63
	public static final String REPOSITORY_SYNCH_SCHEDULE_MILISECONDS = "org.eclipse.mylyn.tasks.ui.repositories.synch.schedule.miliseconds";
65
	public static final String REPOSITORY_SYNCH_SCHEDULE_MILISECONDS = "org.eclipse.mylyn.tasks.ui.repositories.synch.schedule.miliseconds";
(-)src/org/eclipse/mylyn/internal/tasks/ui/views/CustomTaskListDecorationDrawer.java (-1 / +34 lines)
Lines 1-5 Link Here
1
/*******************************************************************************
1
/*******************************************************************************
2
* Copyright (c) 2004, 2008 Tasktop Technologies and others.
2
 * Copyright (c) 2004, 2008 Tasktop Technologies and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 28-33 Link Here
28
import org.eclipse.mylyn.tasks.ui.TasksUiImages;
28
import org.eclipse.mylyn.tasks.ui.TasksUiImages;
29
import org.eclipse.swt.SWT;
29
import org.eclipse.swt.SWT;
30
import org.eclipse.swt.graphics.Image;
30
import org.eclipse.swt.graphics.Image;
31
import org.eclipse.swt.graphics.Point;
31
import org.eclipse.swt.graphics.Rectangle;
32
import org.eclipse.swt.graphics.Rectangle;
32
import org.eclipse.swt.widgets.Event;
33
import org.eclipse.swt.widgets.Event;
33
import org.eclipse.swt.widgets.Listener;
34
import org.eclipse.swt.widgets.Listener;
Lines 55-66 Link Here
55
56
56
	private final boolean tweakClipping;
57
	private final boolean tweakClipping;
57
58
59
	private boolean useStrikethroughForCompleted;
60
61
	private final org.eclipse.jface.util.IPropertyChangeListener PROPERTY_LISTENER = new org.eclipse.jface.util.IPropertyChangeListener() {
62
63
		public void propertyChange(org.eclipse.jface.util.PropertyChangeEvent event) {
64
			if (event.getProperty().equals(ITasksUiPreferenceConstants.USE_STRIKETHROUGH_FOR_COMPLETED)) {
65
				if (event.getNewValue() instanceof Boolean) {
66
					useStrikethroughForCompleted = (Boolean) event.getNewValue();
67
					taskListView.refresh();
68
				}
69
			}
70
		}
71
	};
72
58
	CustomTaskListDecorationDrawer(TaskListView taskListView, int activationImageOffset) {
73
	CustomTaskListDecorationDrawer(TaskListView taskListView, int activationImageOffset) {
59
		this.taskListView = taskListView;
74
		this.taskListView = taskListView;
60
		this.activationImageOffset = activationImageOffset;
75
		this.activationImageOffset = activationImageOffset;
61
		this.taskListView.synchronizationOverlaid = TasksUiPlugin.getDefault().getPluginPreferences().getBoolean(
76
		this.taskListView.synchronizationOverlaid = TasksUiPlugin.getDefault().getPluginPreferences().getBoolean(
62
				ITasksUiPreferenceConstants.OVERLAYS_INCOMING_TIGHT);
77
				ITasksUiPreferenceConstants.OVERLAYS_INCOMING_TIGHT);
63
78
79
		useStrikethroughForCompleted = TasksUiPlugin.getDefault().getPluginPreferences().getBoolean(
80
				ITasksUiPreferenceConstants.USE_STRIKETHROUGH_FOR_COMPLETED);
81
		TasksUiPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(PROPERTY_LISTENER);
64
		if (SWT.getPlatform().equals("gtk")) {
82
		if (SWT.getPlatform().equals("gtk")) {
65
			this.platformSpecificSquish = 8;
83
			this.platformSpecificSquish = 8;
66
			this.tweakClipping = true;
84
			this.tweakClipping = true;
Lines 91-96 Link Here
91
				activationImage = taskInactive;
109
				activationImage = taskInactive;
92
			}
110
			}
93
		}
111
		}
112
		if (data instanceof AbstractTask & useStrikethroughForCompleted) {
113
			AbstractTask task = (AbstractTask) data;
114
			if (task.isCompleted()) {
115
				Rectangle bounds = ((TreeItem) event.item).getBounds();
116
				int lineY = bounds.y + (bounds.height / 2);
117
				String itemText = ((TreeItem) event.item).getText();
118
				Point extent = event.gc.textExtent(itemText);
119
				event.gc.drawLine(bounds.x, lineY, bounds.x + extent.x, lineY);
120
			}
121
		}
94
		if (data instanceof ITaskContainer) {
122
		if (data instanceof ITaskContainer) {
95
			switch (event.type) {
123
			switch (event.type) {
96
			case SWT.EraseItem: {
124
			case SWT.EraseItem: {
Lines 274-277 Link Here
274
		// HACK: need a proper blank image
302
		// HACK: need a proper blank image
275
		return CommonImages.OVERLAY_CLEAR;
303
		return CommonImages.OVERLAY_CLEAR;
276
	}
304
	}
305
306
	public void dispose() {
307
		TasksUiPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(PROPERTY_LISTENER);
308
	}
309
277
}
310
}
(-)src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java (-1 / +4 lines)
Lines 424-429 Link Here
424
424
425
	private Color categoryGradientEnd;
425
	private Color categoryGradientEnd;
426
426
427
	private CustomTaskListDecorationDrawer customDrawer;
428
427
	private final IPageListener PAGE_LISTENER = new IPageListener() {
429
	private final IPageListener PAGE_LISTENER = new IPageListener() {
428
		public void pageActivated(IWorkbenchPage page) {
430
		public void pageActivated(IWorkbenchPage page) {
429
			filteredTree.indicateActiveTaskWorkingSet();
431
			filteredTree.indicateActiveTaskWorkingSet();
Lines 705-710 Link Here
705
			themeManager.removePropertyChangeListener(THEME_CHANGE_LISTENER);
707
			themeManager.removePropertyChangeListener(THEME_CHANGE_LISTENER);
706
		}
708
		}
707
709
710
		customDrawer.dispose();
708
		categoryGradientStart.dispose();
711
		categoryGradientStart.dispose();
709
		categoryGradientEnd.dispose();
712
		categoryGradientEnd.dispose();
710
	}
713
	}
Lines 904-910 Link Here
904
		getViewer().setInput(getViewSite());
907
		getViewer().setInput(getViewSite());
905
908
906
		final int activationImageOffset = 20;
909
		final int activationImageOffset = 20;
907
		CustomTaskListDecorationDrawer customDrawer = new CustomTaskListDecorationDrawer(this, activationImageOffset);
910
		customDrawer = new CustomTaskListDecorationDrawer(this, activationImageOffset);
908
		getViewer().getTree().addListener(SWT.EraseItem, customDrawer);
911
		getViewer().getTree().addListener(SWT.EraseItem, customDrawer);
909
		getViewer().getTree().addListener(SWT.PaintItem, customDrawer);
912
		getViewer().getTree().addListener(SWT.PaintItem, customDrawer);
910
913
(-)src/org/eclipse/mylyn/tasks/ui/TaskElementLabelProvider.java (-2 / +2 lines)
Lines 1-5 Link Here
1
/*******************************************************************************
1
/*******************************************************************************
2
* Copyright (c) 2004, 2008 Tasktop Technologies and others.
2
 * Copyright (c) 2004, 2008 Tasktop Technologies and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 268-274 Link Here
268
			if (((AbstractTask) element).isActive()) {
268
			if (((AbstractTask) element).isActive()) {
269
				return CommonFonts.BOLD;
269
				return CommonFonts.BOLD;
270
			} else if (((AbstractTask) element).isCompleted()) {
270
			} else if (((AbstractTask) element).isCompleted()) {
271
				return CommonFonts.STRIKETHROUGH;
271
				return null;
272
			}
272
			}
273
			for (ITask child : ((ITaskContainer) element).getChildren()) {
273
			for (ITask child : ((ITaskContainer) element).getChildren()) {
274
				if (child.isActive() || (child instanceof ITaskContainer && showHasActiveChild((ITaskContainer) child))) {
274
				if (child.isActive() || (child instanceof ITaskContainer && showHasActiveChild((ITaskContainer) child))) {

Return to bug 169916