Gnome kabuğuna bir uzantı geliştiriyorum. Uzantım, durum alanındaki bir göstergeye kaydırıcı çubuğu gerektiriyor. Ayarlamakta bazı problemlerim vardı, bu slightly outdated reference kodumu yazıyordum, ana sorun 'PopupSliderMenuItem' kaynak kodunda eksikti. Bu yüzden biraz araştırma yaptım ve silinmiş olduğunu öğrendim. Bu commit, daha fazla bilgiye sahiptir. addActor bir işlev değil
Yani bu (güncellendi) kodunu takip etmeye çalıştı işlemek:this._slider = new Slider.Slider(0);
this._slider.connect('value-changed', Lang.bind(this, this._sliderChanged));
this._slider.connect('drag-end', Lang.bind(this, this._notifyVolumeChange));
this.item = new PopupMenu.PopupBaseMenuItem({ activate: false });
this.item.addActor(this._slider.actor, { expand: true });
Projemde bu kodu refactored ve şuna benzer:
this.slider = new Slider.Slider(0.5);
this.slider.connect('value-changed', Lang.bind(this, this._sliderChanged));
this.slider.connect('drag-end', Lang.bind(this, this._setNewColorTemperature));
this.sliderContainer = new PopupMenu.PopupBaseMenuItem();
this.sliderContainer.addActor(this.slider.actor, { expand: true });
this.menu.addMenuItem(this.sliderContainer);
ilk bloktur gnome-shell kaynak kodunda (ses seviyesi kaydırıcısını ayarlar). Kodum (ikinci blok) 'addActor' on line bu istisna atıyor:
Gjs-Message: JS LOG: Extension ****censored**** had error: TypeError: sliderContainer.addActor is not a function
herkes bu hata neden oluyor bir fikrin var? En garip olan şey, PopupBaseMenuItem class için kaynak kodun aradığım işleve sahip olmasıdır.
Sağladığınız başka bilgilere ihtiyacınız varsa vermekten mutluluk duyuyorum.
sen Ne söyleyebilirim basit bir tam içerdiği örnek – mplungjan
üretebilir miyim, PopupBaseMenuItem "grabHelper" [1191 Hat] aracılığıyla addActor çağırır (https://git.gnome.org/browse/gnome-shell/tree/js/ui/popupMenu.js#n1191) this._grabHelper.addActor (kaynak); – scottjustin5000
GrabHelper, PopupMenuManager sınıfı içindir, PopupBaseMenuItem için bir şeye ihtiyacım vardı. Ama nevermind, biraz uyku aldıktan sonra çözümü buldum, buraya göndereceğim –