@@ -9,18 +9,31 @@ const { FlatList } = Me.imports.components.flatList.flatList
99const { ProjectSelectButtons } = Me . imports . components . gitlab . projectSelectButtons
1010const { ProjectCard } = Me . imports . components . cards . projectCard
1111const { SearchBar } = Me . imports . components . searchBar . searchBar
12- const { Settings } = Me . imports . helpers . settings
12+
13+ const {
14+ Settings,
15+ GITLAB_ACCOUNTS ,
16+ SELECTED_GITLAB_ACCOUNT_INDEX
17+ } = Me . imports . helpers . settings
18+
1319const { Translations } = Me . imports . helpers . translations
1420
1521const GitLabService = Me . imports . services . gitlab
1622
23+ const SETTINGS_KEYS_TO_REFRESH = [
24+ GITLAB_ACCOUNTS ,
25+ SELECTED_GITLAB_ACCOUNT_INDEX
26+ ]
27+
1728var ProjectsScreen = GObject . registerClass ( { } , class ProjectsScreen extends St . BoxLayout {
1829 _init ( ) {
1930 super . _init ( {
2031 style_class : 'screen projects-screen' ,
2132 vertical : true
2233 } )
2334
35+ this . _settingsChangedId = null
36+
2437 const searchBar = new SearchBar ( )
2538 this . _list = new FlatList ( )
2639
@@ -39,8 +52,8 @@ var ProjectsScreen = GObject.registerClass({}, class ProjectsScreen extends St.B
3952
4053 searchBar . connect ( 'text-change' , ( sender , searchText ) => this . _filter_results ( searchText ) )
4154
42- Settings . connect ( 'changed' , ( value , key ) => {
43- if ( key === 'gitlab-accounts' || key === 'selected-gitlab-account-index' ) {
55+ this . _settingsChangedId = Settings . connect ( 'changed' , ( value , key ) => {
56+ if ( SETTINGS_KEYS_TO_REFRESH . includes ( key ) ) {
4457 this . _loadData ( )
4558 }
4659
@@ -54,6 +67,8 @@ var ProjectsScreen = GObject.registerClass({}, class ProjectsScreen extends St.B
5467 }
5568 } ) )
5669
70+ this . connect ( 'destroy' , this . _onDestroy . bind ( this ) )
71+
5772 this . _loadData ( )
5873 }
5974
@@ -108,4 +123,10 @@ var ProjectsScreen = GObject.registerClass({}, class ProjectsScreen extends St.B
108123 this . _list . addItem ( new ProjectCard ( project , latestPipeline ) )
109124 } )
110125 }
126+
127+ _onDestroy ( ) {
128+ if ( this . _settingsChangedId ) {
129+ Settings . disconnect ( this . _settingsChangedId )
130+ }
131+ }
111132} )
0 commit comments