Po nákresech ovladače Steam Controller a puku společnost Valve na svém GitLabu publikovala projekt Inkterface, tj. podrobný návod (PDF, video v mp4) na sestavení předního panelu s e-papírovým displejem pro Steam Machine pro zobrazování systémových informací. Použity jsou součástky od společnosti Adafruit.
V jádře Linux byla nalezena a v dubnu letošního roku v upstreamu opravena kritická zranitelnost Bad Epoll aneb CVE-2026-46242. Jedná se o zranitelnost typu "race-condition use-after-free", která běžnému uživateli umožňuje získat práva roota. Na distribucích Linuxu i na Androidu. Dokonce i zevnitř sandboxu prohlížeče Chrome. Chyba byla do Linuxu zavedena v dubnu 2023, tj. Linux 6.4.
Byla vydána nová verze 10.4 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu důležitých bezpečnostních oprav, vylepšení funkcí a oprav chyb. Vyzkoušet lze experimentální podporu postkvantového algoritmu mldsa44-ed25519.
Open Printer je otevřená kompaktní tiskárna od Open Tools. Brzy by měla být spuštěna kampaň na její podporu na Crowd Supply. Současně by měly být uvolněny zdrojové kódy. Postavena je na Raspberry Pi Zero W a STM32. Používá inkoustové kazety HP 302.
Byla vydána nová verze 3.28.0 FreeRDP, tj. svobodné implementace protokolu RDP (Remote Desktop Protocol). Opraveno bylo 8 zranitelností.
Čeští policisté společně se svými tureckými kolegy zadrželi 51 lidí, kteří se podle kriminalistů podíleli na provozu podvodného call centra v Istanbulu. Skupina je spojena s 1173 případy podvodů na českých občanech, při kterých vznikla škoda přes 553 milionů korun.
Immich byl vydán v nové verzi 3.0.0. Jedná se o alternativu k výchozím aplikacím od Googlu a Applu pro správu fotografií a videí umožňující vlastní hosting serveru Immich. K vyzkoušení je demo. Immich je součástí balíčků open source aplikací FUTO. Zdrojové kódy jsou k dispozici na GitHubu pod licencí AGPL-3.0.
Společnost Juno Computers prodávající počítače s předinstalovaným Linuxem má nově v nabídce linuxový tablet Juno Tab 4 - WiFi. Na výběr je Debian, Ubuntu a Kubuntu. Předobjednat jej lze za 949 liber (26 500 korun).
Podman (Pod Manager), nástroj umožňující vytvářet a provozovat kontejnery, aniž by uživatel potřeboval práva roota, byl vydán v nové major verzi 6.0.0. Přehled novinek v poznámkách k vydání. Řešena je i vážná bezpečnostní chyba CVE-2026-57231.
Společnost Sony oznámila, že od ledna 2028 přestane vydávat nové hry pro PlayStation na fyzických discích. Všechny budoucí tituly budou dostupné výhradně v digitální podobě na PlayStation Store.
Ahoj,
trochu se potykam s problemem removerow v tableView.
Napsal jsem jednoduchou funkci, ktera zjisti aktualni radek a ten se pokusi smazat.
int row = ui->mainTable->currentIndex().row();
mainModel->removeRow(0);
Insertovani noveho radku do modelu provadim takto:
mainModel->record()
r.setValue("date", "2012-04-22");
...
mainModel->insertRecord(-1, r);
Problem ale je, ze maze vice radku nez ma. Podotykam ze tableview je nastaveny tak, aby neumoznoval vyber vice nez jednoho zaznamu.
Data ukladam do SQLite. Uvadim to tu proto, protoze se zda s mym problemem nejak souvisi.
Spustim aplikaci a do SQLite db nasazim 10 radku. Ukoncim aplikaci. Spustim aplikaci podruhe, nasazim do ni dalsich 5 radku (tedy celkem 15). Pokud se pokusim smazat jeden s tech 5ti poslednich radku. smazou se mi vsechny naraz. A to jak z tableView tak samozrejme z DB.
Netrkne vas neco co delam spatne? Neresili uz jste to nekdo? Nejaky commit do db? commit modelu atp?
Diky predem za jakykoliv napad.
jen jeste opravuju jeden omyl. samozrejme ze tam patri
mainModel->removeRow(row);
Takze jak jsem predpokladal. Omyl na me strane.
QSqlTableModel::OnFieldChange = All changes to the model will be applied immediately to the database.
QSqlTableModel::OnRowChange = Changes to a row will be applied when the user selects a different row.
QSqlTableModel::OnManualSubmit = All changes will be cached in the model until either submitAll() or revertAll is called.
Muj problem byl v kombinaci spatne editstrategy a k tomu spatneho comitu.
Tedy model jsem musel nastavit
mainModel->setEditStrategy(QSqlTableModel::OnFieldChange);
A na konci kazdeho smazani pak zavolat
mainModel->submitAll();
Tiskni
Sdílej: