SASGIS - SAS.Планета |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0000917 | SAS.Планета | [All Projects] Хотелка | public | 17-08-2011 05:46 | 07-01-2013 10:04 |
|
Reporter | sheavy | |
Assigned To | vdemidov | |
Priority | normal | Severity | tweak | Reproducibility | always |
Status | resolved | Resolution | fixed | |
Platform | Windows | OS | XP | OS Version | SP3 |
Product Version | 110427.Beta | |
Target Version | 131111 | Fixed in Version | 131111 | |
|
Summary | 0000917: Изменение видимости дочерних категорий |
Description | См. Скриншот: если снять галочку видимости с главной категории, метка, принадлежащая вложеной подкатегории останеться видимой. Кажется, было бы логично и интуитивно понятно, что если убирается галочка на главной категории, что она должна сниматься и со всех подчиненных. Иначе приходиться пробегаться по всем вложенным категориям. Чекбокс "Все" здесь тоже не помогает, т.к. сбрасывает флаг Visible и в других категориях, которых достаточно много. |
Steps To Reproduce | См. Скриншот: |
Additional Information | Аналогично сделано во многих программах, где требуется сканирование диска (антивирусы, восстановители удаленных файлов и т.п.)
Понятно, что на самом деле вложенности в Category.sml нет и нужно улучшать обработчих кнопки "ОК" и "Применить" или делать новый чекбокс рядом с чекбоксом "Все" (менее предпочтительно) |
Tags | sml, категории |
Relationships | related to | 0000137 | closed | vdemidov | Вложенные категории | related to | 0000919 | closed | vdemidov | Порядок создания главных и вложенных категорий влияет на их отображение в окне "Управление метками" |
|
Attached Files | 2011-08-17_092532.jpg (28,459) 17-08-2011 05:46 https://bugtracker.sasgis.org/file_download.php?file_id=415&type=bug
|
|
Issue History |
Date Modified | Username | Field | Change |
17-08-2011 05:46 | sheavy | New Issue | |
17-08-2011 05:46 | sheavy | File Added: 2011-08-17_092532.jpg | |
17-08-2011 06:29 | Tolik | Note Added: 0003478 | |
17-08-2011 07:28 | sheavy | Note Added: 0003484 | |
17-08-2011 07:31 | sheavy | Note Added: 0003485 | |
17-08-2011 07:39 | sheavy | Note Added: 0003487 | |
17-08-2011 07:40 | sheavy | Note Deleted: 0003484 | |
17-08-2011 07:40 | sheavy | Note Deleted: 0003485 | |
17-08-2011 07:40 | sheavy | Note Edited: 0003487 | bug_revision_view_page.php?rev_id=1747 |
17-08-2011 07:41 | sheavy | Note Edited: 0003487 | bug_revision_view_page.php?rev_id=1748 |
17-08-2011 07:41 | sheavy | Note Edited: 0003487 | bug_revision_view_page.php?rev_id=1749 |
17-08-2011 07:42 | Tolik | Note Added: 0003488 | |
17-08-2011 07:42 | sheavy | Note Edited: 0003487 | bug_revision_view_page.php?rev_id=1750 |
17-08-2011 07:42 | Tolik | File Added: Cat.GIF | |
17-08-2011 07:44 | sheavy | Note Added: 0003489 | |
17-08-2011 07:44 | sheavy | Note Deleted: 0003489 | |
17-08-2011 07:46 | sheavy | Note Added: 0003490 | |
17-08-2011 07:51 | sheavy | Note Edited: 0003490 | bug_revision_view_page.php?rev_id=1752 |
17-08-2011 07:52 | sheavy | Note Edited: 0003490 | bug_revision_view_page.php?rev_id=1753 |
17-08-2011 07:52 | sheavy | Note Edited: 0003490 | bug_revision_view_page.php?rev_id=1754 |
17-08-2011 07:53 | Fetser | Note Added: 0003491 | |
17-08-2011 07:55 | Tolik | Note Added: 0003493 | |
17-08-2011 07:59 | Tolik | Status | new => acknowledged |
17-08-2011 08:07 | vdemidov | Note Added: 0003494 | |
17-08-2011 09:26 | vdemidov | File Deleted: Cat.GIF | |
17-08-2011 09:26 | vdemidov | Note Deleted: 0003494 | |
17-08-2011 09:27 | vdemidov | Note Deleted: 0003493 | |
17-08-2011 09:27 | vdemidov | Note Deleted: 0003491 | |
17-08-2011 09:27 | vdemidov | Note Deleted: 0003490 | |
17-08-2011 09:27 | vdemidov | Note Deleted: 0003488 | |
17-08-2011 09:27 | vdemidov | Note Deleted: 0003487 | |
17-08-2011 09:27 | vdemidov | Note Deleted: 0003478 | |
17-08-2011 09:28 | sheavy | Tag Attached: категории | |
17-08-2011 09:28 | sheavy | Tag Attached: sml | |
17-08-2011 09:29 | vdemidov | Target Version | => 40xxxx |
17-08-2011 09:29 | vdemidov | Summary | Определение приоритета видимости категорий => Изменение видимости дочерних категорий |
17-08-2011 09:29 | vdemidov | Status | acknowledged => confirmed |
17-08-2011 09:29 | vdemidov | Product Version | => 110427.Beta |
18-08-2011 04:09 | gpsMax | Relationship added | related to 0000137 |
18-08-2011 04:11 | gpsMax | Note Added: 0003513 | |
18-08-2011 04:15 | gpsMax | Relationship added | related to 0000919 |
19-08-2011 07:18 | zOn | Note Added: 0003547 | |
19-08-2011 07:51 | Tolik | Note Added: 0003555 | |
19-08-2011 07:54 | zOn | Note Added: 0003556 | |
02-01-2013 05:43 | Fed | Note Added: 0010290 | |
02-01-2013 05:45 | Fed | Note Edited: 0010290 | bug_revision_view_page.php?bugnote_id=10290#r5043 |
02-01-2013 05:45 | Fed | Note Edited: 0010290 | bug_revision_view_page.php?bugnote_id=10290#r5044 |
02-01-2013 06:12 | Fed | Note Edited: 0010290 | bug_revision_view_page.php?bugnote_id=10290#r5045 |
02-01-2013 06:49 | vdemidov | Note Added: 0010292 | |
02-01-2013 06:58 | Fed | Note Added: 0010293 | |
02-01-2013 07:19 | vdemidov | Note Added: 0010294 | |
02-01-2013 10:21 | Fed | Note Added: 0010295 | |
02-01-2013 10:24 | Fed | Note Edited: 0010295 | bug_revision_view_page.php?rev_id=5047 |
02-01-2013 10:28 | vdemidov | Note Added: 0010296 | |
02-01-2013 10:34 | Fed | Note Edited: 0010295 | bug_revision_view_page.php?rev_id=5048 |
02-01-2013 10:45 | Fed | File Added: Bitbucket_Import.jpg | |
02-01-2013 10:52 | Fed | Note Added: 0010297 | |
02-01-2013 10:55 | Fed | Note Edited: 0010297 | bug_revision_view_page.php?rev_id=5050 |
02-01-2013 10:56 | Fetser | File Added: 1.jpg | |
02-01-2013 10:57 | Fetser | Note Added: 0010298 | |
02-01-2013 11:04 | Fed | Note Added: 0010299 | |
02-01-2013 11:05 | Fetser | Note Added: 0010300 | |
02-01-2013 11:07 | Fetser | Note Edited: 0010300 | bug_revision_view_page.php?rev_id=5052 |
02-01-2013 11:17 | Fed | Note Added: 0010301 | |
02-01-2013 11:17 | vdemidov | Note Added: 0010302 | |
02-01-2013 11:21 | vdemidov | Note Added: 0010303 | |
02-01-2013 11:27 | Fetser | Note Deleted: 0010298 | |
02-01-2013 11:28 | Fetser | Note Deleted: 0010300 | |
02-01-2013 12:36 | Fed | Note Added: 0010304 | |
02-01-2013 12:56 | Fetser | Note Added: 0010305 | |
02-01-2013 13:02 | zed | Note Added: 0010306 | |
02-01-2013 18:04 | vdemidov | Note Deleted: 0010305 | |
02-01-2013 18:04 | vdemidov | Note Deleted: 0010304 | |
02-01-2013 18:04 | vdemidov | Note Deleted: 0010303 | |
02-01-2013 18:04 | vdemidov | Note Deleted: 0010302 | |
02-01-2013 18:04 | vdemidov | Note Deleted: 0010301 | |
02-01-2013 18:04 | vdemidov | Note Deleted: 0010299 | |
02-01-2013 18:05 | vdemidov | Note Deleted: 0010297 | |
02-01-2013 18:05 | vdemidov | Note Deleted: 0010296 | |
02-01-2013 18:05 | vdemidov | Note Deleted: 0010295 | |
02-01-2013 18:05 | vdemidov | Note Deleted: 0010294 | |
02-01-2013 18:05 | vdemidov | Note Deleted: 0010293 | |
02-01-2013 18:05 | vdemidov | Note Deleted: 0010292 | |
02-01-2013 18:06 | vdemidov | Note Deleted: 0010306 | |
05-01-2013 10:28 | Garl | Note Added: 0010327 | |
05-01-2013 11:59 | vdemidov | Note Added: 0010329 | |
06-01-2013 20:36 | Fed | Note Added: 0010347 | |
06-01-2013 21:07 | vdemidov | Note Added: 0010348 | |
06-01-2013 22:38 | Fed | Note Added: 0010349 | |
07-01-2013 04:10 | Fed | Note Edited: 0010349 | bug_revision_view_page.php?rev_id=5064 |
07-01-2013 05:19 | Fed | Note Deleted: 0010349 | |
07-01-2013 05:30 | Fed | Note Added: 0010350 | |
07-01-2013 09:27 | Fed | Note Edited: 0010290 | bug_revision_view_page.php?bugnote_id=10290#r5067 |
07-01-2013 10:03 | vdemidov | Note Added: 0010351 | |
07-01-2013 10:04 | vdemidov | Note Added: 0010352 | |
07-01-2013 10:04 | vdemidov | Status | confirmed => resolved |
07-01-2013 10:04 | vdemidov | Fixed in Version | => 131111 |
07-01-2013 10:04 | vdemidov | Resolution | open => fixed |
07-01-2013 10:04 | vdemidov | Assigned To | => vdemidov |
07-01-2013 10:04 | vdemidov | Target Version | 40xxxx => 131111 |
07-01-2013 10:04 | vdemidov | File Deleted: 1.jpg | |
07-01-2013 10:04 | vdemidov | File Deleted: Bitbucket_Import.jpg | |
Notes |
|
(0003513)
|
gpsMax
|
18-08-2011 04:11
|
|
Да, надо было давно это вынести отдельным тикетом, спасибо.
Из 137-й хотелки:
Типа [галки] два - включена/выключена. Но при включении/выключении галки одновременно с этим включаются/выключаются галки для всех вложенных категорий. Вложенность же определяется динамически, из структуры категорий, а не из файла данных в готовом виде, поэтому менять его не потребуется.
Тупо рекурсия: при включении/выключении галки пробегаем по вложенным категориям и применяем эту же операцию на них. |
|
|
(0003547)
|
zOn
|
19-08-2011 07:18
|
|
Не стал создавать отдельный баг, т.к. это видимо взаимосвязано:
если поставить курсор на подкатегорию и нажать - удалить, то удалится и категория и подкатегория. |
|
|
(0003555)
|
Tolik
|
19-08-2011 07:51
|
|
только если в этой категории нет других подкатегорий. |
|
|
(0003556)
|
zOn
|
19-08-2011 07:54
|
|
|
|
(0010290)
|
Fed
|
02-01-2013 05:43
(edited on: 07-01-2013 09:27) |
|
Решил эту задачу переделав в frm_MarksExplorer.pas 2 процедуры CategoryTreeViewKeyUp и CategoryTreeViewMouseUp и добавив новую CategoryTreeViewVisible:
----------------------
Процедура TfrmMarksExplorer.CategoryTreeViewVisible:
procedure TfrmMarksExplorer.CategoryTreeViewVisible(Node: TTreeNode);
var
VCategoryOld: IMarkCategory;
VCategoryNew: IMarkCategory;
VTreeNode: TTreeNode;
VVisible: Boolean;
VIndex,VLevel,VNum: Integer;
begin
VCategoryOld := IMarkCategory(Node.Data);
if VCategoryOld <> nil then begin
// VVisible, VIndex - для визуализации узлов.
if Node.StateIndex=1 then begin
VVisible := False;
VIndex:=2;
end else begin
VVisible := True;
VIndex:=1;
end;
// Изменение значения Visible текущего узла категории меток
VCategoryNew := FMarkDBGUI.MarksDb.CategoryDB.Factory.ModifyVisible(VCategoryOld, VVisible);
Node.StateIndex:=VIndex;
if not VCategoryOld.IsEqual(VCategoryNew) then begin
FMarkDBGUI.MarksDb.CategoryDB.UpdateCategory(VCategoryOld, VCategoryNew);
end;
// Изменение значения Visible дочерних узла категории меток
// CheckBox3 включает/выклучает функцию каскадной визуализации.
if CheckBox3.Checked then begin
// VLevel - уровень глубины узла. VNum - номер узла изменения видимости.
CategoryTreeView.Visible := False;
VLevel:=Node.Level;
// Цикл продолжается пока не перейдём на новую ветвь (пока уровень глубины узлов не станет как наша)
// Или до конца ветвей
for VNum:=Node.AbsoluteIndex+1 to CategoryTreeView.Items.Count - 1 do
if CategoryTreeView.Items[VNum].Level>VLevel then begin
VTreeNode := CategoryTreeView.Items[VNum];
VCategoryOld := IMarkCategory(VTreeNode.Data);
if VCategoryOld <> nil then begin
VCategoryNew := FMarkDBGUI.MarksDb.CategoryDB.Factory.ModifyVisible(VCategoryOld, VVisible);
VTreeNode.StateIndex:=VIndex;
if not VCategoryOld.IsEqual(VCategoryNew) then begin
FMarkDBGUI.MarksDb.CategoryDB.UpdateCategory(VCategoryOld, VCategoryNew);
end;
end;
end else break; // Прерываем цикл так, как уровень глубины узлов стал как наш или выше.
CategoryTreeView.Visible := True;
end;
end;
end;
----------------------
Процедура TfrmMarksExplorer.CategoryTreeViewKeyUp:
procedure TfrmMarksExplorer.CategoryTreeViewKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
VCategoryOld: IMarkCategory;
VCategoryNew: IMarkCategory;
begin
If key=VK_DELETE then begin
VCategoryOld := GetSelectedCategory;
if VCategoryOld <> nil then begin
FMarkDBGUI.DeleteCategoryModal(VCategoryOld, Self.Handle);
end;
end;
if Key=VK_SPACE then
CategoryTreeViewVisible(CategoryTreeView.Selected);
end;
----------------------
Процедура TfrmMarksExplorer.CategoryTreeViewMouseUp:
procedure TfrmMarksExplorer.CategoryTreeViewMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
VCategoryOld: IMarkCategory;
VCategoryNew: IMarkCategory;
VTreeNode: TTreeNode;
begin
if htOnStateIcon in CategoryTreeView.GetHitTestInfoAt(X,Y) then
CategoryTreeViewVisible(CategoryTreeView.GetNodeAt(X,Y));
end;
----------------------
|
|
|
(0010327)
|
Garl
|
05-01-2013 10:28
|
|
проверил, по логике и работе - всё ок!
добавлять вышеуказанный код в исходник? |
|
|
|
>добавлять вышеуказанный код в исходник?
Ну я бы дал автору кода еще пару попыток сделать чистый пул реквест, который будет принят. |
|
|
(0010347)
|
Fed
|
06-01-2013 20:36
|
|
>>добавлять вышеуказанный код в исходник?
>Ну я бы дал автору кода еще пару попыток сделать чистый пул реквест, который будет принят.
Подскажите, пожалуйста, что значит "*чистый пул реквест*"?
Спасибо, за помощь. |
|
|
|
Ну претензии к прошлой попытке я в комментарии написал. С тех пор ветка уже ушла вперед, так что нужно сделать новый коммит и пул реквест. |
|
|
(0010350)
|
Fed
|
07-01-2013 05:30
|
|
Создал новый pull request.
Сейчас правильно сделал?
Спасибо, за помощь. |
|
|
|
Теперь лучше, но есть пару замечаний:
1. Оставлять неиспользуемые переменные на которые вылазят варнинги не стоит. Я это поправил на этот раз, но следующий раз просто не приму пул реквест.
2. Контролам нужно давать осмысленные имена, а не CheckBox2, Panel1, CheckBox3. То что один из этих контролов уже существовал с таким именем - не оправдание. |
|
|
|
Спасибо за вклад в разработку. |
|