Noutăți în domeniul proiectării Noiembrie 2019

Noutăti despre proiectarea Gajim

Noutăți în domeniul proiectării Noiembrie 2019

Noutăti despre proiectarea Gajim

Aceasta este a doua postare dintr-o serie de știri despre dezvoltarea Gajim. În aceste postări eu (wurstsalat) voi încerca să rezum o lună de dezvoltare în jurul Gajim. Uneori, aceste postări vor acoperi și python-nbxmpp și XMPP în general. Dezvoltarea din noiembrie a adus îmbunătățiri la chat-urile de grup, la tematică, la acțiunile de drag and drop, la OMEMO și multe altele. Nu ezitați să vă alăturați gajim@conference.gajim.org pentru a discuta cu noi.

Schimbări în Gajim

Discuții de grup

Fereastra de chat în grup a primit un număr mare de modificări de design. În afară de noua listă de participanți menționată în October’s development news, majoritatea dialogurilor legate de chat-ul de grup au fost înlocuite cu ‘pages’ care se suprapun peste fereastra de chat. Ideea a apărut pentru prima dată când căutam un loc unde să afișăm informații despre chat-ul de grup (care pot fi destul de multe). Un exemplu de afișare a acestor informații în viitor poate fi văzut în captura de ecran de mai jos.

Informații despre chat-ul de grup din gajim@conference.gajim.org

Informații despre chat-ul de grup din gajim@conference.gajim.org

În ultimele câteva luni, tot mai multe dialoguri au fost migrate către această nouă abordare. Din interiorul ferestrei de chat, utilizatorii au acum posibilitatea de a:

  • schimba pseudonimul lor
  • schimbați subiectul chat-ului de grup
  • să dea afară/interzică utilizatori
  • introduceți parole/capitole
  • distrugeți chat-ul de grup
  • redenumiți grupul de chat (local)

Gajim este acum capabil să afișeze numele grupului de chat (cel ales de creator) (#5406) în lista de contacte, în file și în zona de banner de deasupra chat-ului. Dacă utilizatorul alege un nume diferit (ceea ce este acum posibil atât din lista de contacte, cât și din interiorul chat-ului de grup (#9783), acesta va fi folosit în locul lui.

Drag and drop, teme, informații despre server

În ultimele luni au existat multe îmbunătățiri de tip drag and drop pentru Gajim. Acum este posibil să invitați un contact la un chat de grup prin glisare și fixare. Aruncarea unui fișier în lista de contacte începe acum un transfer de fișiere către contactul pe care a fost aruncat fișierul.

Mulți utilizatori se plângeau de ușurința de utilizare a ferestrei Theme. Am încercat să simplificăm fluxul de lucru prin automatizarea etapelor manuale pe care le ceream anterior utilizatorilor să le facă (#9886). Dacă un utilizator dorește să schimbe o setare a unei teme (de exemplu, dimensiunea fontului), acum este suficient un simplu clic pe “Add Setting” (Adăugare setare), care va a) adăuga o temă nouă, b) trece la acea temă nou adăugată și c) adaugă setarea dorită. Acest lucru permite, de asemenea, utilizatorilor să vadă o previzualizare în direct a modificărilor pe care intenționează să le facă. Îndepărtarea unei teme active în prezent va reveni acum automat la tema implicită, fără a cere mai întâi schimbarea.

În Gajim 1.0, a fost introdusă o fereastră de dialog cu informații despre server. Această fereastră de dialog ajută utilizatorii să evalueze capacitățile serviciului pe care îl folosesc, enumerând caracteristicile suportate de server. În plus față de lista de caracteristici, acum sunt afișate și informații despre conexiune (de exemplu, securitatea transportului, cifrul ales, proxy-ul utilizat) (#6096). Certificatul serverului poate fi, de asemenea, vizualizat din caseta de dialog Server Info. Unele servere oferă adrese de contact pentru asistență, feedback sau întrebări de administrare. Aceste adrese de contact sunt acum și ele afișate (#9848).

În efortul de a unifica dialogurile pe care Gajim le afișează atunci când are nevoie de confirmarea sau introducerea datelor de către utilizator, vechiul sistem de dialog este înlocuit pas cu pas. Multe dintre vechile dialoguri au fost deja eliminate sau înlocuite, rezultând un aspect mai consistent.

Codul lui Gajim pentru setarea internă a scurtăturilor a fost îmbunătățit. Acest lucru ne aduce cu un pas mai aproape de a oferi în viitor scurtături personalizabile. De asemenea, am adăugat Ctrl+E pentru a deschide fereastra Plugins și Ctrl+Shift+X pentru a vizualiza consola XML. Multe dintre comenzile rapide disponibile în Gajim sunt listate în About > Shortcuts .

Versiunea Flatpak a lui Gajim a avut, de asemenea, câteva actualizări în această lună, inclusiv o remediere a unei erori de deschidere a link-urilor și o actualizare pentru plugin-uri și dependențele acestora. Atât mesajele automate de stare, cât și detectarea screensaver-ului au fost reelaborate pentru versiunea Flatpak.

Pentru a putea remedia erorile, este adesea necesar ca dezvoltatorii să adune jurnalele de depanare. Este posibil să se afișeze un astfel de jurnal de depanare atunci când Gajim este pornit prin intermediul terminalului (folosind parametrii potriviți). Pentru că acest lucru este puțin tehnic și pentru că am dori să permitem fiecărui utilizator să adune aceste jurnale, Gajim are o setare de preferințe (Preferințe > Avansat) pentru a stoca jurnalele de depanare într-un fișier. Pentru a simplifica și mai mult acești pași, am adăugat un buton pentru a naviga rapid la dosarul care conține jurnalele de depanare stocate.

În această lună, o mulțime de coduri au fost curățate. Aceasta include eliminarea codului nefolosit, precum și corectarea multor erori de linting, făcând codul mai ușor de înțeles.

Ce s-a mai întâmplat

  • A fost eliminată funcția de conversie a textului restructurat (rst) în XHTML
  • A fost eliminată setarea pentru aplicațiile personalizate ‘open with’ (în locul acesteia se va folosi cea implicită a sistemului)
  • A eliminat rămășițele codului de transfer de fișiere SI (această metodă este depreciată)
  • A fost eliminată posibilitatea de a alege o resursă atunci când se deschide un chat folosind meniul contextual (#8471)
  • Baza de date de jurnale a lui Gajim (unde este salvat, printre altele, istoricul chat-ului) a primit câteva îmbunătățiri de performanță și acum va stoca atât mesaje cât și date XHTML
  • Deschiderea fișierelor din Gajim a fost refăcută
  • Data de emitere/expirare a unui certificat este acum afișată în limba locală a utilizatorului
  • Consola XML a lui Gajim are acum o bară de căutare (Ctrl+F pentru căutare, F3 pentru căutarea următoare)
  • Corecție de eroare pentru mesajele private care apar în mod greșit în fereastra de chat a unui chat de grup (#9488)
  • Gajim folosește acum JID-uri goale atunci când trimite mesaje către un grup de contacte (#9738)
  • Atunci când se blochează un grup de contacte, se va afișa dialogul corect (#7524)
  • Corecții pentru avertismente de import (#9874)

Actualizări de plugin-uri

Această lună a adus multe corecturi de erori pentru plugin-ul OMEMO al lui Gajim. Primirea unui mesaj care nu a fost criptat pentru dispozitivul utilizatorului va declanșa acum un mesaj de eroare (#452). A fost reparată o eroare prin care un mesaj de arhivă (MAM) nu putea fi mapat la un JID (#457) și o eroare în dialogul de configurare a plugin-ului (care se întâmpla dacă nu exista un cont disponibil). În plus, Gajim va detecta acum toate modificările de configurare a chat-urilor de grup și va fi mai consecvent cu privire la chat-urile de grup compatibile cu OMEMO (#445).În plus față de vizualizarea unui fișier criptat OMEMO, acum este posibilă și deschiderea dosarului care conține fișierul (#430, #425).

Modificări în python-nbxmpp

În timp ce lucra la dialogul de eliminare a contului lui Gajim, python-nbxmpp a primit suport pentru înregistrarea în bandă (XEP-0077) și alte corecturi de erori pentru gestionarea stării.

Unul dintre avantajele utilizării XMPP este libertatea de alegere. Utilizatorii sunt liberi să aleagă serverul pe care doresc să îl folosească (sau chiar să găzduiască singuri unul) și pot alege dintre many available clients. Uneori, această libertate de alegere vine și cu clienți care nu se comportă după specificațiile protocolului. Gajim trebuie să se ocupe de asta, desigur. Unul dintre aceste cazuri, în care un client trimitea strofe malformate, a fost rezolvat recent (#89).