Ticket #254: 20070819 - Ticket 254c.diff

File 20070819 - Ticket 254c.diff, 16.0 KB (added by anxiety, 17 months ago)

Diff file, contains changes for Appearance, Menu, and Tracker

  • src/preferences/appearance/ColorSet.h

     
    3232                bool            ConvertFromMessage(const BMessage *msg); 
    3333 
    3434                void            SetToDefaults(void); 
     35                bool            IsDefaultable(void); 
    3536 
    3637                rgb_color       StringToColor(const char *string); 
    3738                rgb_color       AttributeToColor(int32 which); 
  • src/preferences/appearance/APRView.cpp

     
    146146        fDefaults = new BButton(BRect(0,0,1,1),"DefaultsButton","Defaults", 
    147147                                                        new BMessage(DEFAULT_SETTINGS), 
    148148                                                        B_FOLLOW_LEFT |B_FOLLOW_TOP, B_WILL_DRAW | B_NAVIGABLE); 
    149         fDefaults->ResizeToPreferred();  
     149        fDefaults->ResizeToPreferred(); 
     150        fDefaults->SetEnabled(false); 
    150151        fDefaults->MoveTo((fPicker->Frame().right-(fDefaults->Frame().Width()*2)-20)/2,fPicker->Frame().bottom+20); 
    151152        AddChild(fDefaults); 
    152153         
     
    157158        fRevert = new BButton(cvrect,"RevertButton","Revert",  
    158159                                                new BMessage(REVERT_SETTINGS), 
    159160                                                B_FOLLOW_LEFT |B_FOLLOW_TOP, B_WILL_DRAW | B_NAVIGABLE); 
     161        fRevert->SetEnabled(false); 
    160162        AddChild(fRevert); 
    161         fRevert->SetEnabled(false); 
    162163         
    163164} 
    164165 
    165166APRView::~APRView(void) 
    166167{ 
     168        //BPrivate::set_system_colors(&fCurrentSet); 
    167169        ColorSet::SaveColorSet("/boot/home/config/settings/app_server/system_colors",fCurrentSet); 
    168170} 
    169171 
     
    185187                                           fDefaults->Frame().bottom + 10); 
    186188        LoadSettings(); 
    187189        fAttrList->Select(0); 
     190         
     191        fDefaults->SetEnabled(fCurrentSet.IsDefaultable()); 
    188192} 
    189193 
    190194void 
     
    221225                        // Update current fAttribute in the settings 
    222226                        fCurrentSet.SetColor(fAttrString.String(),col); 
    223227                         
     228                        fDefaults->SetEnabled(fCurrentSet.IsDefaultable()); 
    224229                        fRevert->SetEnabled(true); 
    225230                         
    226231                        break; 
     
    236241                         
    237242                        fAttrString=whichitem->Text(); 
    238243                        UpdateControlsFromAttr(whichitem->Text()); 
     244 
     245                        fDefaults->SetEnabled(fCurrentSet.IsDefaultable()); 
    239246                        break; 
    240247                } 
    241248                case REVERT_SETTINGS: { 
     
    248255                } 
    249256                case DEFAULT_SETTINGS: { 
    250257                        fCurrentSet.SetToDefaults(); 
     258                        fDefaults->SetEnabled(false); 
    251259                         
    252260                        UpdateControlsFromAttr(fAttrString.String()); 
    253261                        BMenuItem *item = fDecorMenu->FindItem("Default"); 
     
    272280        // getting them from the server at this point for testing purposes. 
    273281         
    274282        // Query the server for the current settings 
    275         //BPrivate::get_system_colors(&fCurrentSet); 
     283        // BPrivate::get_system_colors(&fCurrentSet); 
    276284         
    277285        // TODO: remove this and enable the get_system_colors() call 
    278286        if (ColorSet::LoadColorSet("/boot/home/config/settings/app_server/system_colors",&fCurrentSet) != B_OK) { 
  • src/preferences/appearance/ColorSet.cpp

     
    2525        color.alpha = 255; 
    2626} 
    2727 
     28static bool 
     29match_rgb_color(rgb_color& color, uint8 red, uint8 green, uint8 blue) 
     30{ 
     31        return color.red == red 
     32                && color.green == green 
     33                && color.blue == blue; 
     34} 
    2835 
     36 
    2937//      #pragma mark - 
    3038 
    3139 
     
    173181} 
    174182 
    175183/*! 
     184        \brief Checks if the ColorSet can be set to defaults. 
     185*/ 
     186bool 
     187ColorSet::IsDefaultable() 
     188{ 
     189        return !match_rgb_color(panel_background, 216, 216, 216) 
     190                || !match_rgb_color(panel_text, 0, 0, 0) 
     191                || !match_rgb_color(document_background, 255, 255, 255) 
     192                || !match_rgb_color(document_text, 0, 0, 0) 
     193                || !match_rgb_color(control_background, 245, 245, 245) 
     194                || !match_rgb_color(control_text, 0, 0, 0) 
     195                || !match_rgb_color(control_border, 0, 0, 0) 
     196                || !match_rgb_color(control_highlight, 102, 152, 203) 
     197                || !match_rgb_color(keyboard_navigation_base, 0, 0, 229) 
     198                || !match_rgb_color(keyboard_navigation_pulse, 0, 0, 0) 
     199                || !match_rgb_color(shine, 255, 255, 255) 
     200                || !match_rgb_color(shadow, 0, 0, 0) 
     201                || !match_rgb_color(menu_background, 216, 216, 216) 
     202                || !match_rgb_color(menu_selected_background, 115, 120, 184) 
     203                || !match_rgb_color(menu_text, 0, 0, 0) 
     204                || !match_rgb_color(menu_selected_text, 255, 255, 255) 
     205                || !match_rgb_color(menu_selected_border, 0, 0, 0) 
     206                || !match_rgb_color(tooltip_background, 255, 255, 0) 
     207                || !match_rgb_color(tooltip_text, 0, 0, 0) 
     208                || !match_rgb_color(success, 0, 255, 0) 
     209                || !match_rgb_color(failure, 255, 0, 0) 
     210                || !match_rgb_color(window_tab, 255, 203, 0) 
     211                || !match_rgb_color(window_tab_text, 0, 0, 0) 
     212                || !match_rgb_color(inactive_window_tab, 232, 232, 232) 
     213                || !match_rgb_color(inactive_window_tab_text, 80, 80, 80); 
     214} 
     215 
     216/*! 
    176217        \brief Attaches the color set's members as data to the given BMessage 
    177218        \param msg The message to receive the attributes 
    178219*/ 
  • src/preferences/menu/MenuWindow.h

     
    2525                virtual void MessageReceived(BMessage *message); 
    2626                virtual bool QuitRequested(); 
    2727 
    28                 void Update(); 
    29                 void Defaults(); 
    30  
    3128        private:         
    32                 bool            fRevert; 
    33                 ColorWindow* fColorWindow; 
    34                 MenuBar*        fMenuBar; 
    35                 BButton*        fRevertButton; 
     29                ColorWindow*    fColorWindow; 
     30                MenuBar*                fMenuBar; 
     31                BButton*                fDefaultsButton; 
     32                BButton*                fRevertButton; 
    3633}; 
    3734 
    3835#endif  // MENU_WINDOW_H 
  • src/preferences/menu/MenuSettings.cpp

     
    7474        set_menu_info(&fDefaultSettings); 
    7575} 
    7676 
     77 
     78bool 
     79MenuSettings::IsDefaultable() 
     80{ 
     81        menu_info info; 
     82        get_menu_info(&info); 
     83 
     84        return info.font_size !=  fDefaultSettings.font_size 
     85                || info.background_color != fDefaultSettings.background_color 
     86                || info.separator != fDefaultSettings.separator 
     87                || info.click_to_open != fDefaultSettings.click_to_open 
     88                || info.triggers_always_shown != fDefaultSettings.triggers_always_shown; 
     89} 
     90 
  • src/preferences/menu/MenuSettings.h

     
    2121 
    2222                void Revert(); 
    2323                void ResetToDefaults(); 
     24                bool IsDefaultable(); 
    2425 
    2526        private: 
    2627                MenuSettings(); 
  • src/preferences/menu/MenuWindow.cpp

     
    3131                B_NOT_ZOOMABLE | B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS | B_QUIT_ON_WINDOW_CLOSE) 
    3232{ 
    3333        fColorWindow = NULL; 
    34         fRevert = false; 
    3534 
    3635        BView* topView = new BView(Bounds(), "menuView", B_FOLLOW_ALL_SIDES, 
    3736                B_WILL_DRAW); 
     
    4847        BRect buttonFrame(menuBarFrame.left, menuBarFrame.bottom + 10,  
    4948                menuBarFrame.left + 75, menuBarFrame.bottom + 30); 
    5049 
    51         BButton* defaultButton = new BButton(buttonFrame, "Default", "Defaults", 
     50        fDefaultsButton = new BButton(buttonFrame, "Default", "Defaults", 
    5251                new BMessage(MENU_DEFAULT), B_FOLLOW_H_CENTER | B_FOLLOW_BOTTOM, 
    5352                B_WILL_DRAW | B_NAVIGABLE); 
    54         topView->AddChild(defaultButton); 
     53        fDefaultsButton->SetEnabled(false); 
     54        topView->AddChild(fDefaultsButton); 
    5555 
    5656        buttonFrame.OffsetBy(buttonFrame.Width() + 20, 0); 
    5757        fRevertButton = new BButton(buttonFrame, "Revert", "Revert", new BMessage(MENU_REVERT), 
     
    6060        topView->AddChild(fRevertButton); 
    6161 
    6262        topView->MakeFocus(); 
    63  
    64         Update();        
     63        fMenuBar->Update(); 
    6564} 
    6665 
    6766 
     
    7372 
    7473        switch (msg->what) { 
    7574                case MENU_REVERT: 
    76                         fRevert = false; 
    7775                        settings->Revert(); 
    78                         Update(); 
     76 
     77                        fRevertButton->SetEnabled(false); 
     78                        fDefaultsButton->SetEnabled(settings->IsDefaultable()); 
     79                        fMenuBar->Update(); 
    7980                        break; 
    8081 
    8182                case MENU_DEFAULT: 
    82                         fRevert = true; 
    8383                        settings->ResetToDefaults(); 
    84                         Update(); 
     84 
     85                        fDefaultsButton->SetEnabled(false); 
     86                        fMenuBar->Update(); 
    8587                        break; 
    8688 
    8789                case UPDATE_WINDOW: 
    88                         Update(); 
     90                        fMenuBar->Update(); 
    8991                        break; 
    9092 
    9193                case MENU_FONT_FAMILY: 
    9294                case MENU_FONT_STYLE: 
    9395                { 
    94                         fRevert = true; 
    9596                        const font_family *family; 
    9697                        msg->FindString("family", (const char **)&family); 
    9798                        const font_style *style; 
     
    101102                        strlcpy(info.f_family, (const char *)family, B_FONT_FAMILY_LENGTH); 
    102103                        strlcpy(info.f_style, (const char *)style, B_FONT_STYLE_LENGTH); 
    103104                        settings->Set(info); 
    104                         Update(); 
     105 
     106                        fRevertButton->SetEnabled(true); 
     107                        fDefaultsButton->SetEnabled(settings->IsDefaultable()); 
     108                        fMenuBar->Update(); 
    105109                        break; 
    106110                } 
    107111 
    108112                case MENU_FONT_SIZE: 
    109                         fRevert = true; 
    110113                        settings->Get(info); 
    111114                        msg->FindFloat("size", &info.font_size); 
    112115                        settings->Set(info); 
    113                         Update(); 
     116 
     117                        fRevertButton->SetEnabled(true); 
     118                        fDefaultsButton->SetEnabled(settings->IsDefaultable()); 
     119                        fMenuBar->Update(); 
    114120                        break; 
    115121 
    116122                case ALLWAYS_TRIGGERS_MSG: 
    117                         fRevert = true; 
    118123                        settings->Get(info); 
    119124                        info.triggers_always_shown = !info.triggers_always_shown; 
    120125                        settings->Set(info); 
     126 
     127                        fRevertButton->SetEnabled(true); 
     128                        fDefaultsButton->SetEnabled(settings->IsDefaultable()); 
    121129                        fMenuBar->UpdateMenu(); 
    122                         Update(); 
     130                        fMenuBar->Update(); 
    123131                        break; 
    124132 
    125133                case CTL_MARKED_MSG: 
    126                         fRevert = true; 
    127134                        // This might not be the same for all keyboards 
    128135                        set_modifier_key(B_LEFT_COMMAND_KEY, 0x5c); 
    129136                        set_modifier_key(B_RIGHT_COMMAND_KEY, 0x60); 
    130137                        set_modifier_key(B_LEFT_CONTROL_KEY, 0x5d); 
    131138                        set_modifier_key(B_RIGHT_OPTION_KEY, 0x5f); 
    132139                        be_roster->Broadcast(new BMessage(B_MODIFIERS_CHANGED)); 
    133                         Update(); 
     140 
     141                        fRevertButton->SetEnabled(true); 
     142                        fDefaultsButton->SetEnabled(settings->IsDefaultable()); 
     143                        fMenuBar->Update(); 
    134144                        break; 
    135145 
    136146                case ALT_MARKED_MSG: 
    137                         fRevert = true; 
     147 
    138148                        // This might not be the same for all keyboards 
    139149                        set_modifier_key(B_LEFT_COMMAND_KEY, 0x5d); 
    140150                        set_modifier_key(B_RIGHT_COMMAND_KEY, 0x5f); 
     
    142152                        set_modifier_key(B_RIGHT_OPTION_KEY, 0x60); 
    143153 
    144154                        be_roster->Broadcast(new BMessage(B_MODIFIERS_CHANGED)); 
    145                         Update(); 
     155 
     156                        fRevertButton->SetEnabled(true); 
     157                        fDefaultsButton->SetEnabled(settings->IsDefaultable()); 
     158                        fMenuBar->Update(); 
    146159                        break; 
    147160 
    148161                case COLOR_SCHEME_OPEN_MSG: 
     
    158171                        break; 
    159172 
    160173                case MENU_COLOR: 
    161                         fRevert = true; 
    162                         Update(); 
     174                        fRevertButton->SetEnabled(true); 
     175                        fDefaultsButton->SetEnabled(settings->IsDefaultable()); 
     176                        fMenuBar->Update(); 
    163177                        break; 
    164178 
    165179                default: 
     
    180194        return true; 
    181195} 
    182196 
    183  
    184 void 
    185 MenuWindow::Update() 
    186 { 
    187         fRevertButton->SetEnabled(fRevert); 
    188  
    189         // alert the rest of the application to update   
    190         fMenuBar->Update(); 
    191 } 
    192  
  • src/kits/tracker/SettingsViews.cpp

     
    9393 
    9494 
    9595/*! 
     96        This function is used by the window to tell whether 
     97        it can ghost the defaults button or not. It doesn't 
     98        shows the default settings, this function should 
     99        return true. 
     100*/ 
     101bool 
     102SettingsView::IsDefaultable() const 
     103{ 
     104        return true; 
     105} 
     106 
     107 
     108/*! 
    96109        The inherited functions should set the values that was 
    97110        active when the settings window opened. It should also 
    98111        update the UI widgets accordingly, preferrable by calling 
     
    317330} 
    318331 
    319332 
     333bool 
     334DesktopSettingsView::IsDefaultable() const 
     335{ 
     336        TrackerSettings settings; 
     337 
     338        return settings.ShowDisksIcon() != false 
     339                || settings.MountVolumesOntoDesktop() != true 
     340                || settings.MountSharedVolumesOntoDesktop() != true 
     341                || settings.IntegrateNonBootBeOSDesktops() != false 
     342                || settings.EjectWhenUnmounting() != true; 
     343} 
     344 
     345 
    320346void 
    321347DesktopSettingsView::Revert() 
    322348{ 
     
    570596} 
    571597 
    572598 
     599bool 
     600WindowsSettingsView::IsDefaultable() const 
     601{ 
     602        TrackerSettings settings; 
     603 
     604        return settings.ShowFullPathInTitleBar() != false 
     605                || settings.SingleWindowBrowse() != false 
     606                || settings.ShowNavigator() != false 
     607                || settings.TransparentSelection() != true 
     608                || settings.SortFolderNamesFirst() != true; 
     609} 
     610 
     611 
    573612void 
    574613WindowsSettingsView::Revert() 
    575614{ 
     
    843882} 
    844883 
    845884 
     885bool 
     886TimeFormatSettingsView::IsDefaultable() const 
     887{ 
     888        TrackerSettings settings; 
     889 
     890        return settings.TimeFormatSeparator() != kSlashSeparator 
     891                || settings.DateOrderFormat() != kMDYFormat 
     892                || settings.ClockIs24Hr() != false; 
     893} 
     894 
     895 
    846896void 
    847897TimeFormatSettingsView::Revert() 
    848898{ 
     
    11461196} 
    11471197 
    11481198 
     1199bool 
     1200SpaceBarSettingsView::IsDefaultable() const 
     1201{ 
     1202        TrackerSettings settings; 
     1203 
     1204        return settings.ShowVolumeSpaceBar() != false 
     1205                || settings.UsedSpaceColor() != Color(0, 203, 0, 192) 
     1206                || settings.FreeSpaceColor() != Color(255, 255, 255, 192) 
     1207                || settings.WarningSpaceColor() != Color(203, 0, 0, 192); 
     1208} 
     1209 
     1210 
    11491211void 
    11501212SpaceBarSettingsView::Revert() 
    11511213{ 
     
    13071369} 
    13081370 
    13091371 
     1372bool 
     1373TrashSettingsView::IsDefaultable() const 
     1374{ 
     1375        TrackerSettings settings; 
     1376 
     1377        return settings.DontMoveFilesToTrash() != false 
     1378                || settings.AskBeforeDeleteFile() != true; 
     1379} 
     1380 
     1381 
    13101382void 
    13111383TrashSettingsView::Revert() 
    13121384{ 
  • src/kits/tracker/TrackerSettingsWindow.cpp

     
    8888        fDefaultsButton = new BButton(rect, "Defaults", "Defaults", 
    8989                new BMessage(kDefaultsButtonPressed), B_FOLLOW_LEFT | B_FOLLOW_BOTTOM); 
    9090        fDefaultsButton->ResizeToPreferred(); 
     91        fDefaultsButton->SetEnabled(false); 
    9192        fDefaultsButton->MoveBy(0, -fDefaultsButton->Bounds().Height()); 
    9293        topView->AddChild(fDefaultsButton); 
    9394 
     
    240241{ 
    241242        int32 itemCount = fSettingsTypeListView->CountItems(); 
    242243 
     244        bool defaultable = false; 
    243245        bool revertable = false; 
    244246 
    245247        for (int32 i = 0; i < itemCount; i++) { 
     248                defaultable |= _ViewAt(i)->IsDefaultable(); 
    246249                revertable |= _ViewAt(i)->IsRevertable(); 
    247250        } 
    248251 
    249         fSettingsTypeListView->Invalidate();     
     252        fSettingsTypeListView->Invalidate(); 
     253        fDefaultsButton->SetEnabled(defaultable); 
    250254        fRevertButton->SetEnabled(revertable); 
    251255 
    252256        TrackerSettings().SaveSettings(false); 
     
    258262{ 
    259263        int32 itemCount = fSettingsTypeListView->CountItems(); 
    260264         
    261         for (int32 i = 0; i < itemCount; i++) 
    262                 _ViewAt(i)->SetDefaults(); 
     265        for (int32 i = 0; i < itemCount; i++) { 
     266                if (_ViewAt(i)->IsDefaultable()) 
     267                        _ViewAt(i)->SetDefaults(); 
     268        } 
    263269 
    264270        _HandleChangedContents(); 
    265271} 
  • src/kits/tracker/SettingsViews.h

     
    5757                virtual ~SettingsView(); 
    5858 
    5959                virtual void SetDefaults(); 
     60                virtual bool IsDefaultable() const; 
    6061                virtual void Revert(); 
    6162                virtual void ShowCurrentSettings(); 
    6263                virtual void RecordRevertSettings(); 
     
    7576                virtual void GetPreferredSize(float *_width, float *_height); 
    7677 
    7778                virtual void SetDefaults(); 
     79                virtual bool IsDefaultable() const; 
    7880                virtual void Revert(); 
    7981                virtual void ShowCurrentSettings(); 
    8082                virtual void RecordRevertSettings(); 
     
    108110                virtual void GetPreferredSize(float *_width, float *_height); 
    109111 
    110112                virtual void SetDefaults(); 
     113                virtual bool IsDefaultable() const; 
    111114                virtual void Revert(); 
    112115                virtual void ShowCurrentSettings(); 
    113116                virtual void RecordRevertSettings(); 
     
    139142                virtual void GetPreferredSize(float *_width, float *_height); 
    140143 
    141144                virtual void SetDefaults(); 
     145                virtual bool IsDefaultable() const; 
    142146                virtual void Revert(); 
    143147                virtual void ShowCurrentSettings(); 
    144148                virtual void RecordRevertSettings(); 
     
    178182                virtual void GetPreferredSize(float *_width, float *_height); 
    179183 
    180184                virtual void SetDefaults(); 
     185                virtual bool IsDefaultable() const; 
    181186                virtual void Revert(); 
    182187                virtual void ShowCurrentSettings(); 
    183188                virtual void RecordRevertSettings(); 
     
    206211                virtual void GetPreferredSize(float *_width, float *_height); 
    207212 
    208213                virtual void SetDefaults(); 
     214                virtual bool IsDefaultable() const; 
    209215                virtual void Revert(); 
    210216                virtual void ShowCurrentSettings(); 
    211217                virtual void RecordRevertSettings();