Changeset b69edd1f9a76705089583267e077d4894eacf5bf


Ignore:
Timestamp:
03/06/09 15:34:09 (4 years ago)
Author:
Matias De la Puente <mfpuente.ar@…>
Children:
6915425a0e86f2ba09bd797739dee20e186f3bb5
Parents:
a2154af920322a7de2aafa577140fa5f7994f7f5
git-committer:
Matias De la Puente <mfpuente.ar@…> (03/06/09 15:34:09)
Message:

Add source files preferences page

This page will be used to configure the font, tab width, auto indent,
highlight current line, insert spaces instead of tabs and show line
numbers of the source files pages

Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • src/Makefile.am

    ra2154af rb69edd1  
    2020        i4ucprojectsmanager.vala \ 
    2121        i4ucprojectspanel.vala \ 
     22        i4ucsourcefilesmanager.vala \ 
     23        i4ucsourcefilespreferencespage.vala \ 
    2224        i4ucsourcepage.vala \ 
    23         i4ucsourcefilesmanager.vala \ 
    2425        $(NULL) 
    2526 
  • src/i4ucconfiguration.vala

    rafdf4fa rb69edd1  
    2323{ 
    2424        private const string _I4UC_CONFIG = "i4uc config"; 
     25        private const string _SOURCE_FILES_CONFIG = "Source files preferences"; 
    2526         
    2627        private static Configuration _config; 
     
    3132        public bool logs_panel_visible { set; get; } 
    3233         
     34        public string source_files_font { set; get; default = "Monospace 11"; } 
     35        public int source_files_tab_width { set; get; default = 8; } 
     36        public bool source_files_auto_indent { set; get; } 
     37        public bool source_files_highlight_current_line { set; get; } 
     38        public bool source_files_insert_spaces_instead_of_tabs { set; get; } 
     39        public bool source_files_show_line_numbers { set; get; } 
     40 
    3341        public static Configuration get_instance () 
    3442        { 
     
    5462                        return false; 
    5563                } 
     64                 
    5665                this.projects_panel_visible = key_file.get_boolean (_I4UC_CONFIG, "projects_panel_visible"); 
    5766                this.logs_panel_visible = key_file.get_boolean (_I4UC_CONFIG, "logs_panel_visible"); 
     67                 
     68                this.source_files_font = key_file.get_string (_SOURCE_FILES_CONFIG, "font"); 
     69                this.source_files_tab_width = key_file.get_integer (_SOURCE_FILES_CONFIG, "tab_width"); 
     70                this.source_files_auto_indent = key_file.get_boolean (_SOURCE_FILES_CONFIG, "auto_indent"); 
     71                this.source_files_highlight_current_line = key_file.get_boolean (_SOURCE_FILES_CONFIG, "highlight_current_line"); 
     72                this.source_files_insert_spaces_instead_of_tabs = key_file.get_boolean (_SOURCE_FILES_CONFIG, "insert_spaces_instead_of_tabs"); 
     73                this.source_files_show_line_numbers = key_file.get_boolean (_SOURCE_FILES_CONFIG, "show_line_numbers"); 
     74                 
    5875                this.is_open = true; 
    5976                return true; 
     
    6380        { 
    6481                var key_file = new KeyFile (); 
     82                 
    6583                key_file.set_boolean (_I4UC_CONFIG, "projects_panel_visible", _projects_panel_visible); 
    6684                key_file.set_boolean (_I4UC_CONFIG, "logs_panel_visible", _logs_panel_visible); 
     85                 
     86                key_file.set_string (_SOURCE_FILES_CONFIG, "font", _source_files_font); 
     87                key_file.set_integer (_SOURCE_FILES_CONFIG, "tab_width", _source_files_tab_width); 
     88                key_file.set_boolean (_SOURCE_FILES_CONFIG, "auto_indent", _source_files_auto_indent); 
     89                key_file.set_boolean (_SOURCE_FILES_CONFIG, "highlight_current_line", _source_files_highlight_current_line); 
     90                key_file.set_boolean (_SOURCE_FILES_CONFIG, "insert_spaces_instead_of_tabs", _source_files_insert_spaces_instead_of_tabs); 
     91                key_file.set_boolean (_SOURCE_FILES_CONFIG, "show_line_numbers", _source_files_show_line_numbers); 
     92                 
    6793                FileUtils.set_contents (_filename, key_file.to_data (null)); 
    6894        } 
  • src/i4ucmainwindow.vala

    ra2154af rb69edd1  
    2828                        { "QuitAction", STOCK_QUIT, null, null, null, on_quit }, 
    2929                { "EditMenuAction", null, N_("_Edit") }, 
    30                         { "PreferencesAction", STOCK_PREFERENCES, null, null, null, on_preferences }, 
     30                { "PreferencesMenuAction", STOCK_PREFERENCES }, 
    3131                { "ViewMenuAction", null, N_("_View") }, 
    3232                { "HelpMenuAction", null, N_("_Help") }, 
     
    206206        { 
    207207                _pages_manager.current_page.paste_action (); 
    208         } 
    209          
    210         private void on_preferences () 
    211         { 
    212                  
    213208        } 
    214209         
  • src/i4ucsourcefilesmanager.vala

    rb56be56 rb69edd1  
    2727        { 
    2828                { "NewAction", STOCK_NEW, null, null, null, on_new }, 
    29                 { "OpenAction", STOCK_OPEN, null, null, null, on_open } 
     29                { "OpenAction", STOCK_OPEN, null, null, null, on_open }, 
     30                { "SourceFilesPreferencesAction", null, N_("Source files preferences"), null, null, on_source_files_preferences } 
    3031        }; 
    3132         
     
    9596                source_page.tab_title = Path.get_basename (title.printf (i)); 
    9697                source_page.tab_tooltip = _("<b>Name:</b> %s").printf (title.printf (i)); 
    97                 source_page.font = "Monospace 11"; 
    9898                source_page.close_action.connect ((page) => { 
    9999                        close_page (page as SourcePage); 
     
    185185        } 
    186186         
     187        private void on_source_files_preferences () 
     188        { 
     189                SourceFilesPreferencesPage preferences_page = null; 
     190                foreach (var page in _pages_manager.list_pages ()) 
     191                        if (page.title == "Source files preferences") 
     192                                preferences_page = page as SourceFilesPreferencesPage; 
     193                if (preferences_page == null) 
     194                { 
     195                        preferences_page = new SourceFilesPreferencesPage (); 
     196                        preferences_page.title = "Source files preferences"; 
     197                        preferences_page.tab_title = _("Source files preferences"); 
     198                        preferences_page.close_action.connect ((preferences_page) => { 
     199                                _pages_manager.remove_page (preferences_page); 
     200                        }); 
     201                        _pages_manager.add_page (preferences_page); 
     202                } 
     203                _pages_manager.show_page (preferences_page); 
     204        } 
     205         
    187206        public void open_file (string filename) 
    188207        { 
     
    195214                        source_page.title = filename; 
    196215                        source_page.tab_title = Path.get_basename (filename); 
     216                        source_page.tab_tooltip = _("<b>Name:</b> %s").printf (filename); 
    197217                        if (filename.has_suffix (".asm") || filename.has_suffix (".inc")) 
    198218                                source_page.language = LanguageType.ASM; 
     
    201221                        if (filename.has_suffix (".vala")) 
    202222                                source_page.language = LanguageType.VALA; 
    203                         source_page.font = "Monospace 11"; 
    204223                        string source_content; 
    205224                        FileUtils.get_contents (filename, out source_content); 
  • src/i4ucsourcepage.vala

    r3b5402b rb69edd1  
    6969        } 
    7070         
    71         public string font 
    72         { 
    73                 set { _source_view.modify_font (Pango.FontDescription.from_string (value)); } 
    74         } 
    75          
    7671        public bool is_new { set; get; } 
    7772         
     
    8883                 
    8984                _source_view = new SourceView.with_buffer (_source_buffer); 
    90                 _source_view.show_line_numbers = true; 
    91                 _source_view.auto_indent = true; 
     85                 
     86                _source_view.modify_font (Pango.FontDescription.from_string (Configuration.get_instance ().source_files_font)); 
     87                _source_view.tab_width = Configuration.get_instance ().source_files_tab_width; 
     88                _source_view.auto_indent = Configuration.get_instance ().source_files_show_line_numbers; 
     89                _source_view.highlight_current_line = Configuration.get_instance ().source_files_highlight_current_line; 
     90                _source_view.insert_spaces_instead_of_tabs = Configuration.get_instance ().source_files_insert_spaces_instead_of_tabs; 
     91                _source_view.show_line_numbers = Configuration.get_instance ().source_files_show_line_numbers; 
     92                 
     93                Configuration.get_instance ().notify["source-files-font"].connect (() => { 
     94                        _source_view.modify_font (Pango.FontDescription.from_string (Configuration.get_instance ().source_files_font)); 
     95                }); 
     96                Configuration.get_instance ().notify["source-files-tab-width"].connect (() => { 
     97                        _source_view.tab_width = Configuration.get_instance ().source_files_tab_width; 
     98                }); 
     99                Configuration.get_instance ().notify["source-files-auto-indent"].connect (() => { 
     100                        _source_view.auto_indent = Configuration.get_instance ().source_files_show_line_numbers; 
     101                }); 
     102                Configuration.get_instance ().notify["source-files-highlight-current-line"].connect (() => { 
     103                        _source_view.highlight_current_line = Configuration.get_instance ().source_files_highlight_current_line; 
     104                }); 
     105                Configuration.get_instance ().notify["source-files-insert-spaces-instead-of-tabs"].connect (() => { 
     106                        _source_view.insert_spaces_instead_of_tabs = Configuration.get_instance ().source_files_insert_spaces_instead_of_tabs; 
     107                }); 
     108                Configuration.get_instance ().notify["source-files-show-line-numbers"].connect (() => { 
     109                        _source_view.show_line_numbers = Configuration.get_instance ().source_files_show_line_numbers; 
     110                }); 
    92111                 
    93112                var scrolled_window = new ScrolledWindow (null, null); 
  • ui/i4ucmainwindowui.xml

    r9e0e07d rb69edd1  
    1919                        <placeholder name="EditMenuOps"/> 
    2020                        <separator/> 
    21                         <menuitem action="PreferencesAction"/> 
     21                        <menu name="PreferencesMenu" action="PreferencesMenuAction"> 
     22                                <placeholder name="PreferencesOps"/> 
     23                        </menu> 
    2224                </menu> 
    2325                 
  • ui/i4ucsourcefilesmanagerui.xml

    rabf1640 rb69edd1  
    2323                                <separator/> 
    2424                        </placeholder> 
     25                        <menu name="PreferencesMenu" action="PreferencesMenuAction"> 
     26                                <placeholder name="PreferencesOps"> 
     27                                        <menuitem action="SourceFilesPreferencesAction"/> 
     28                                </placeholder> 
     29                        </menu> 
    2530                </menu> 
    2631        </menubar> 
Note: See TracChangeset for help on using the changeset viewer.