From: <arn...@us...> - 2008-04-07 22:00:58
|
Revision: 1131 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=1131&view=rev Author: arnetheduck Date: 2008-04-07 15:00:55 -0700 (Mon, 07 Apr 2008) Log Message: ----------- SettingsDialog and Tree clean-up Modified Paths: -------------- dcplusplus/trunk/changelog.txt dcplusplus/trunk/dwt/src/widgets/Tree.cpp dcplusplus/trunk/win32/SettingsDialog.cpp dcplusplus/trunk/win32/SettingsDialog.h Property Changed: ---------------- dcplusplus/trunk/ Property changes on: dcplusplus/trunk ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-04-03 23:31:24.709000111 +0200 committer: Jacek Sieka <arn...@gm...> properties: branch-nick: dcplusplus + timestamp: 2008-04-04 02:24:06.740000010 +0200 committer: poy <po...@12...> properties: branch-nick: bzr Name: bzr:revision-id:v3-trunk1 - 1027 arn...@gm...-20080323183926-schknwnkgeo7ivdn 1028 zouzou123gen-20080323220411-r8usuc3qxwuh7zsn 1029 zouzou123gen-20080323221249-0su72zaj13e706mk 1030 arn...@gm...-20080324140623-muba1dl46m000o8c 1031 zouzou123gen-20080324141933-qbgr93ugpe0297m6 1032 arn...@gm...-20080324153706-siidja05n84i00b1 1033 arn...@gm...-20080324153823-lhn3awurnu77riln 1034 arn...@gm...-20080324165650-zapppziji67yf5a2 1035 zouzou123gen-20080324175936-4mqc2kh0lo5wtdu2 1036 zouzou123gen-20080325004602-6wdsoym95mjuhwd3 1037 arn...@gm...-20080325100659-8fqy6q65itmghlep 1038 zouzou123gen-20080325175216-s297sdiucukfvijh 1039 arn...@gm...-20080325210137-3dfqyoi8ykosy087 1040 arn...@gm...-20080325211747-nwwy1eb33r071sca 1041 arn...@gm...-20080326084110-qbselrjckku275xi 1042 zouzou123gen-20080326123631-35642mgbk2i4ty32 1043 zouzou123gen-20080326124345-f4xwn2d3ty8ubd6r 1044 arn...@gm...-20080326162031-il0nyms30w0mky43 1045 arn...@gm...-20080326164801-8dru8mjc06xgzjpv 1046 arn...@gm...-20080326170438-uzl2rx8fqnohak7g 1047 zouzou123gen-20080326172821-d6uqcbmfb0c6rwlv 1048 arn...@gm...-20080326213257-qlgdh7m2712p2l0q 1049 arn...@gm...-20080326214313-ktnoekgk3s0wmatz 1050 arn...@gm...-20080326215256-0j1iqrf286b9g7zf 1051 arn...@gm...-20080327082121-hoi22wh1gwjdfbyd 1052 arn...@gm...-20080327120639-um3tukdt374rwvgm 1053 zouzou123gen-20080327130703-6vtek6uxy3vua543 1054 arn...@gm...-20080327215831-dmg5mkufskabwkro 1055 arn...@gm...-20080327231459-cdztcv25alsuyqmf 1056 arn...@gm...-20080328085925-gceybsr53oml1p24 1057 arn...@gm...-20080328200512-1sjuu6bcnl2dyd2a 1058 arn...@gm...-20080328210347-bussqjrm5mfswh7o 1059 arn...@gm...-20080329055630-braiir1dskv7a4qm 1060 arn...@gm...-20080329061558-rck8dz60wpj3c5ja 1061 arn...@gm...-20080329081253-if6o5jn329mbzfpl 1062 arn...@gm...-20080329081619-cb4x930j8sp55cs0 1063 arn...@gm...-20080329103216-hgjzo7ra2zixbztd 1064 arn...@gm...-20080329124042-q3aw4iodmo5kafyp 1065 arn...@gm...-20080329124926-2je1z18p0272zpua 1066 arn...@gm...-20080329150901-ehj9t32en7eps2dp 1067 zouzou123gen-20080329153653-36xlvpik2ns9r84r 1068 zouzou123gen-20080329162703-51xr8hg073pg7wq5 1069 zouzou123gen-20080329234706-8ddipdqu0xeudkql 1070 arn...@gm...-20080330081232-ubqr1171ewalrd4q 1071 zouzou123gen-20080330131607-yppbs3mgyjef1cux 1072 zouzou123gen-20080330134835-yv1nogy77ib1uehd 1073 zouzou123gen-20080331124549-alyw7vugdn30piqy 1074 zouzou123gen-20080331135108-q8frtqsin5bosfzm 1075 zouzou123gen-20080331140757-u94q52yccl5lsifk 1076 zouzou123gen-20080331152513-ue1x5qhigcw51348 1077 arn...@gm...-20080331184436-a8g6chibmg8nswls 1078 arn...@gm...-20080331220648-81485k28qmwruwz6 1079 zouzou123gen-20080401081001-2yjn07cf8s5sxr3a 1080 zouzou123gen-20080401081247-f3p4hdjojnd460jw 1081 zouzou123gen-20080401084117-24a454g8o0x656kg 1082 zouzou123gen-20080401133146-jabb5i8870fg6f66 1083 zouzou123gen-20080401154610-mxdqoo5bksru93e6 1084 arn...@gm...-20080401185530-lqj4tflt5ldmx46f 1085 arn...@gm...-20080401212616-ffl7m0xm8gt15knk 1086 arn...@gm...-20080402084515-ofmnwihzv159jton 1087 arn...@gm...-20080402133105-y70soi38owzl76i9 1088 arn...@gm...-20080402142417-rn2dbkx19wfz3vae 1089 arn...@gm...-20080402144459-u3z3hqvl8aqjc4a0 1090 zouzou123gen-20080402145051-zi8tmvy8u3r2mzu8 1091 arn...@gm...-20080402152137-f397uz1yp9qjvfwh 1092 zouzou123gen-20080402170355-29wda40wk3cy7lu5 1093 arn...@gm...-20080402180628-ipos9li0c4bsmq1h 1094 arn...@gm...-20080402181235-s2a6f4ww4lzayl46 1095 arn...@gm...-20080402193851-6mu64vgep6tijith 1096 arn...@gm...-20080402203810-86zpxsx69q83zf3r 1097 arn...@gm...-20080402204331-so2e8n892o23pejr 1098 poy-20080402224153-225qylr2cfwhqrg7 1099 mrmikejj-20080403125112-o8polh8rkn62umyh 1100 arn...@gm...-20080403125139-8xub76j1xazhfxna 1101 po...@12...-20080403140544-13kockkjho883nb4 1102 po...@12...-20080403143012-bxghtoodiolugpbs 1103 arn...@gm...-20080403190809-bbi4bz5rfcvjnt20 1104 arn...@gm...-20080403205410-czxru1vcg1s4wcws 1105 arn...@gm...-20080403213124-54spdrwszgyimd90 + 1027 arn...@gm...-20080323183926-schknwnkgeo7ivdn 1028 zouzou123gen-20080323220411-r8usuc3qxwuh7zsn 1029 zouzou123gen-20080323221249-0su72zaj13e706mk 1030 arn...@gm...-20080324140623-muba1dl46m000o8c 1031 zouzou123gen-20080324141933-qbgr93ugpe0297m6 1032 arn...@gm...-20080324153706-siidja05n84i00b1 1033 arn...@gm...-20080324153823-lhn3awurnu77riln 1034 arn...@gm...-20080324165650-zapppziji67yf5a2 1035 zouzou123gen-20080324175936-4mqc2kh0lo5wtdu2 1036 zouzou123gen-20080325004602-6wdsoym95mjuhwd3 1037 arn...@gm...-20080325100659-8fqy6q65itmghlep 1038 zouzou123gen-20080325175216-s297sdiucukfvijh 1039 arn...@gm...-20080325210137-3dfqyoi8ykosy087 1040 arn...@gm...-20080325211747-nwwy1eb33r071sca 1041 arn...@gm...-20080326084110-qbselrjckku275xi 1042 zouzou123gen-20080326123631-35642mgbk2i4ty32 1043 zouzou123gen-20080326124345-f4xwn2d3ty8ubd6r 1044 arn...@gm...-20080326162031-il0nyms30w0mky43 1045 arn...@gm...-20080326164801-8dru8mjc06xgzjpv 1046 arn...@gm...-20080326170438-uzl2rx8fqnohak7g 1047 zouzou123gen-20080326172821-d6uqcbmfb0c6rwlv 1048 arn...@gm...-20080326213257-qlgdh7m2712p2l0q 1049 arn...@gm...-20080326214313-ktnoekgk3s0wmatz 1050 arn...@gm...-20080326215256-0j1iqrf286b9g7zf 1051 arn...@gm...-20080327082121-hoi22wh1gwjdfbyd 1052 arn...@gm...-20080327120639-um3tukdt374rwvgm 1053 zouzou123gen-20080327130703-6vtek6uxy3vua543 1054 arn...@gm...-20080327215831-dmg5mkufskabwkro 1055 arn...@gm...-20080327231459-cdztcv25alsuyqmf 1056 arn...@gm...-20080328085925-gceybsr53oml1p24 1057 arn...@gm...-20080328200512-1sjuu6bcnl2dyd2a 1058 arn...@gm...-20080328210347-bussqjrm5mfswh7o 1059 arn...@gm...-20080329055630-braiir1dskv7a4qm 1060 arn...@gm...-20080329061558-rck8dz60wpj3c5ja 1061 arn...@gm...-20080329081253-if6o5jn329mbzfpl 1062 arn...@gm...-20080329081619-cb4x930j8sp55cs0 1063 arn...@gm...-20080329103216-hgjzo7ra2zixbztd 1064 arn...@gm...-20080329124042-q3aw4iodmo5kafyp 1065 arn...@gm...-20080329124926-2je1z18p0272zpua 1066 arn...@gm...-20080329150901-ehj9t32en7eps2dp 1067 zouzou123gen-20080329153653-36xlvpik2ns9r84r 1068 zouzou123gen-20080329162703-51xr8hg073pg7wq5 1069 zouzou123gen-20080329234706-8ddipdqu0xeudkql 1070 arn...@gm...-20080330081232-ubqr1171ewalrd4q 1071 zouzou123gen-20080330131607-yppbs3mgyjef1cux 1072 zouzou123gen-20080330134835-yv1nogy77ib1uehd 1073 zouzou123gen-20080331124549-alyw7vugdn30piqy 1074 zouzou123gen-20080331135108-q8frtqsin5bosfzm 1075 zouzou123gen-20080331140757-u94q52yccl5lsifk 1076 zouzou123gen-20080331152513-ue1x5qhigcw51348 1077 arn...@gm...-20080331184436-a8g6chibmg8nswls 1078 arn...@gm...-20080331220648-81485k28qmwruwz6 1079 zouzou123gen-20080401081001-2yjn07cf8s5sxr3a 1080 zouzou123gen-20080401081247-f3p4hdjojnd460jw 1081 zouzou123gen-20080401084117-24a454g8o0x656kg 1082 zouzou123gen-20080401133146-jabb5i8870fg6f66 1083 zouzou123gen-20080401154610-mxdqoo5bksru93e6 1084 arn...@gm...-20080401185530-lqj4tflt5ldmx46f 1085 arn...@gm...-20080401212616-ffl7m0xm8gt15knk 1086 arn...@gm...-20080402084515-ofmnwihzv159jton 1087 arn...@gm...-20080402133105-y70soi38owzl76i9 1088 arn...@gm...-20080402142417-rn2dbkx19wfz3vae 1089 arn...@gm...-20080402144459-u3z3hqvl8aqjc4a0 1090 zouzou123gen-20080402145051-zi8tmvy8u3r2mzu8 1091 arn...@gm...-20080402152137-f397uz1yp9qjvfwh 1092 zouzou123gen-20080402170355-29wda40wk3cy7lu5 1093 arn...@gm...-20080402180628-ipos9li0c4bsmq1h 1094 arn...@gm...-20080402181235-s2a6f4ww4lzayl46 1095 arn...@gm...-20080402193851-6mu64vgep6tijith 1096 arn...@gm...-20080402203810-86zpxsx69q83zf3r 1097 arn...@gm...-20080402204331-so2e8n892o23pejr 1098 poy-20080402224153-225qylr2cfwhqrg7 1099 mrmikejj-20080403125112-o8polh8rkn62umyh 1100 arn...@gm...-20080403125139-8xub76j1xazhfxna 1101 po...@12...-20080403140544-13kockkjho883nb4 1102 po...@12...-20080403143012-bxghtoodiolugpbs 1103 arn...@gm...-20080403190809-bbi4bz5rfcvjnt20 1104 arn...@gm...-20080403205410-czxru1vcg1s4wcws 1105 arn...@gm...-20080403213124-54spdrwszgyimd90 1106 po...@12...-20080404002406-aj74x5tngi6mmmj1 Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2008-04-07 22:00:19 UTC (rev 1130) +++ dcplusplus/trunk/changelog.txt 2008-04-07 22:00:55 UTC (rev 1131) @@ -4,7 +4,7 @@ * Fixed out of focus window when restoring from icon (poy) * [L#203865] Fixed multiple instances (poy) * Context-sensitive help (poy) -* Updated help files (poy) +* Updated help files (poy, mikejj) * Fixed toolbar separators (poy) * Upgraded to bzip2 1.0.5 (thanks mikejj) * Fixed background color of drop-down controls @@ -22,6 +22,8 @@ * [L#209277] Fixed crash on bad translation (thanks poy) * More controls now use the font defined in settings (poy) * [L#211164] Fixed bug when a new tab row is created while DC++ is minimized (poy) +* [L#211480] Fixed duplicated settings pages on bad translations (poy) +* Added the title of the currently selected page in settings (poy) -- 0.705 2008-03-14 -- * Several patches for better *nix compatibility of the core (thanks steven sheehy et al) Modified: dcplusplus/trunk/dwt/src/widgets/Tree.cpp =================================================================== --- dcplusplus/trunk/dwt/src/widgets/Tree.cpp 2008-04-07 22:00:19 UTC (rev 1130) +++ dcplusplus/trunk/dwt/src/widgets/Tree.cpp 2008-04-07 22:00:55 UTC (rev 1131) @@ -48,12 +48,7 @@ HTREEITEM Tree::insert( const SmartUtil::tstring & text, HTREEITEM parent, LPARAM param, int iconIndex, int selectedIconIndex ) { - TVINSERTSTRUCT tv = { 0 }; - tv.hParent = parent; - tv.hInsertAfter = TVI_LAST; - - TVITEMEX t = { 0 }; - t.mask = TVIF_TEXT; + TVITEMEX t = { TVIF_TEXT }; if ( param != 0 ) { t.mask |= TVIF_PARAM; @@ -66,17 +61,18 @@ t.iSelectedImage = ( selectedIconIndex == - 1 ? t.iImage : selectedIconIndex ); } t.pszText = const_cast < TCHAR * >( text.c_str() ); + + TVINSERTSTRUCT tv = { parent, TVI_LAST }; #ifdef WINCE tv.item = t; #else tv.itemex = t; #endif - return reinterpret_cast< HTREEITEM >( this->sendMessage(TVM_INSERTITEM, 0, reinterpret_cast< LPARAM >( & tv ) ) ); + return TreeView_InsertItem(this->handle(), &tv); } SmartUtil::tstring Tree::getSelectedText() { - HTREEITEM hSelItem = TreeView_GetSelection( this->handle() ); - return getText( hSelItem ); + return getText(TreeView_GetSelection(this->handle())); } SmartUtil::tstring Tree::getText( HTREEITEM node ) @@ -85,9 +81,7 @@ return SmartUtil::tstring(); } - TVITEMEX item; - item.mask = TVIF_HANDLE | TVIF_TEXT; - item.hItem = node; + TVITEMEX item = { TVIF_HANDLE | TVIF_TEXT, node }; TCHAR buffer[1024]; buffer[0] = '\0'; item.cchTextMax = 1022; @@ -126,8 +120,7 @@ } LPARAM Tree::getDataImpl(HTREEITEM item) { - TVITEM tvitem = { TVIF_PARAM | TVIF_HANDLE }; - tvitem.hItem = item; + TVITEM tvitem = { TVIF_PARAM | TVIF_HANDLE, item }; if(!TreeView_GetItem(this->handle(), &tvitem)) { return 0; } @@ -135,8 +128,7 @@ } void Tree::setDataImpl(HTREEITEM item, LPARAM lParam) { - TVITEM tvitem = { TVIF_PARAM | TVIF_HANDLE }; - tvitem.hItem = item; + TVITEM tvitem = { TVIF_PARAM | TVIF_HANDLE, item }; tvitem.lParam = lParam; TreeView_SetItem(this->handle(), &tvitem); } Modified: dcplusplus/trunk/win32/SettingsDialog.cpp =================================================================== --- dcplusplus/trunk/win32/SettingsDialog.cpp 2008-04-07 22:00:19 UTC (rev 1130) +++ dcplusplus/trunk/win32/SettingsDialog.cpp 2008-04-07 22:00:55 UTC (rev 1131) @@ -71,7 +71,7 @@ setText(T_("Settings")); attachChild(pageTree, IDC_SETTINGS_PAGES); - pageTree->onSelectionChanged(std::tr1::bind(&SettingsDialog::selectionChanged, this)); + pageTree->onSelectionChanged(std::tr1::bind(&SettingsDialog::handleSelectionChanged, this)); { ButtonPtr button = attachChild<Button>(IDOK); @@ -88,115 +88,74 @@ } addPage(T_("Personal information"), new GeneralPage(this)); + addPage(T_("Connection settings"), new NetworkPage(this)); - addPage(T_("Downloads"), new DownloadPage(this)); - addPage(T_("Downloads\\Favorites"), new FavoriteDirsPage(this)); - addPage(T_("Downloads\\Queue"), new QueuePage(this)); + + { + HTREEITEM item = addPage(T_("Downloads"), new DownloadPage(this)); + addPage(T_("Favorites"), new FavoriteDirsPage(this), item); + addPage(T_("Queue"), new QueuePage(this), item); + } + addPage(T_("Sharing"), new UploadPage(this)); - addPage(T_("Appearance"), new AppearancePage(this)); - addPage(T_("Appearance\\Colors and sounds"), new Appearance2Page(this)); - addPage(T_("Appearance\\Tabs"), new TabsPage(this)); - addPage(T_("Appearance\\Windows"), new WindowsPage(this)); - addPage(T_("Advanced"), new AdvancedPage(this)); - addPage(T_("Advanced\\Logs"), new LogPage(this)); - addPage(T_("Advanced\\Experts only"), new Advanced3Page(this)); - addPage(T_("Advanced\\User Commands"), new UCPage(this)); - addPage(T_("Advanced\\Security Certificates"), new CertificatesPage(this)); - + + { + HTREEITEM item = addPage(T_("Appearance"), new AppearancePage(this)); + addPage(T_("Colors and sounds"), new Appearance2Page(this), item); + addPage(T_("Tabs"), new TabsPage(this), item); + addPage(T_("Windows"), new WindowsPage(this), item); + } + + { + HTREEITEM item = addPage(T_("Advanced"), new AdvancedPage(this)); + addPage(T_("Logs"), new LogPage(this), item); + addPage(T_("Experts only"), new Advanced3Page(this), item); + addPage(T_("User Commands"), new UCPage(this), item); + addPage(T_("Security Certificates"), new CertificatesPage(this), item); + } + + updateTitle(); + return false; } +HTREEITEM SettingsDialog::addPage(const tstring& title, PropPage* page, HTREEITEM parent) { + pages.push_back(page); + + HTREEITEM item = pageTree->insert(title, parent, reinterpret_cast<LPARAM>(page)); + pageTree->expand(parent); + return item; +} + void SettingsDialog::handleHelp(HWND hWnd, unsigned id) { if(id == IDH_STARTPAGE && currentPage) id = currentPage->getHelpId(); WinUtil::help(hWnd, id); } -void SettingsDialog::addPage(const tstring& title, PropPage* page) { - pages.push_back(page); - addChild(title, TVI_ROOT, page); -} - -void SettingsDialog::handleOKClicked() { - write(); - endDialog(IDOK); -} - -void SettingsDialog::selectionChanged() { - HTREEITEM item = TreeView_GetSelection(pageTree->handle()); - if(item == NULL) { - showPage(0); - } else { - TVITEM tvitem = { TVIF_PARAM | TVIF_HANDLE }; - tvitem.hItem = item; - if(!TreeView_GetItem(pageTree->handle(), &tvitem)) { - showPage(0); - } else { - showPage(reinterpret_cast<PropPage*>(tvitem.lParam)); +void SettingsDialog::handleSelectionChanged() { + PropPage* page = reinterpret_cast<PropPage*>(pageTree->getData(pageTree->getSelected())); + if(page) { + if(currentPage) { + currentPage->setVisible(false); + currentPage = 0; } - } -} -void SettingsDialog::showPage(PropPage* page) { - if(currentPage) { - ::ShowWindow(dynamic_cast<SmartWin::Widget*>(currentPage)->handle(), SW_HIDE); - currentPage = 0; - } - if(page) { - ::ShowWindow(dynamic_cast<SmartWin::Widget*>(page)->handle(), SW_SHOW); + page->setVisible(true); currentPage = page; + + updateTitle(); } } -HTREEITEM SettingsDialog::addChild(const tstring& str, HTREEITEM parent, PropPage* page) { - TVINSERTSTRUCT tvi; - tvi.hInsertAfter = TVI_LAST; - tvi.hParent = parent; - - HTREEITEM first = (parent == TVI_ROOT) ? TreeView_GetRoot(pageTree->handle()) : TreeView_GetChild(pageTree->handle(), parent); - - string::size_type i = str.find(SEPARATOR); - if(i == string::npos) { - // Last dir, the actual page - HTREEITEM item = find(str, first); - if(item == NULL) { - // Doesn't exist, add - tvi.item.mask = TVIF_PARAM | TVIF_TEXT; - tvi.item.pszText = const_cast<LPTSTR>(str.c_str()); - tvi.item.lParam = reinterpret_cast<LPARAM>(page); - item = TreeView_InsertItem(pageTree->handle(), &tvi); - TreeView_Expand(pageTree->handle(), parent, TVE_EXPAND); - return item; - } else { - // Update page - if(pageTree->getData(item) == 0) - pageTree->setData(item, reinterpret_cast<LPARAM>(page)); - return item; - } - } else { - tstring name = str.substr(0, i); - HTREEITEM item = find(name, first); - if(item == NULL) { - // Doesn't exist, add... - tvi.item.mask = TVIF_PARAM | TVIF_TEXT; - tvi.item.lParam = 0; - tvi.item.pszText = const_cast<LPTSTR>(name.c_str()); - item = TreeView_InsertItem(pageTree->handle(), &tvi); - } - TreeView_Expand(pageTree->handle(), parent, TVE_EXPAND); - // Recurse... - return addChild(str.substr(i+1), item, page); - } +void SettingsDialog::handleOKClicked() { + write(); + endDialog(IDOK); } -HTREEITEM SettingsDialog::find(const tstring& str, HTREEITEM start) { - while(start != NULL) { - if(pageTree->getText(start) == str) { - return start; - } - start = TreeView_GetNextSibling(pageTree->handle(), start); - } - return start; +void SettingsDialog::updateTitle() { + tstring title = pageTree->getSelectedText(); + setText(title.empty() ? T_("Settings") : T_("Settings") + _T(" - [") + title + _T("]")); } void SettingsDialog::write() { Modified: dcplusplus/trunk/win32/SettingsDialog.h =================================================================== --- dcplusplus/trunk/win32/SettingsDialog.h 2008-04-07 22:00:19 UTC (rev 1130) +++ dcplusplus/trunk/win32/SettingsDialog.h 2008-04-07 22:00:55 UTC (rev 1131) @@ -38,17 +38,14 @@ TreePtr pageTree; - void addPage(const tstring& title, PropPage* page); + HTREEITEM addPage(const tstring& title, PropPage* page, HTREEITEM parent = TVI_ROOT); + void updateTitle(); void write(); bool initDialog(); void handleHelp(HWND hWnd, unsigned id); + void handleSelectionChanged(); void handleOKClicked(); - void selectionChanged(); - void showPage(PropPage* page); - - HTREEITEM addChild(const tstring& str, HTREEITEM parent, PropPage* page); - HTREEITEM find(const tstring& str, HTREEITEM start); }; #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |