abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:22 | IT novinky

    VASA-1, výzkumný projekt Microsoftu. Na vstupu stačí jediná fotka a zvukový záznam. Na výstupu je dokonalá mluvící nebo zpívající hlava. Prý si technologii nechá jenom pro sebe. Žádné demo, API nebo placená služba. Zatím.

    Ladislav Hagara | Komentářů: 0
    dnes 04:44 | Nová verze

    Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 140 (pdf) a HackSpace 77 (pdf).

    Ladislav Hagara | Komentářů: 0
    dnes 01:00 | Nová verze

    ESPHome, tj. open source systém umožňující nastavovat zařízení s čipy ESP (i dalšími) pomocí konfiguračních souborů a připojit je do domácí automatizace, například do Home Assistantu, byl vydán ve verzi 2024.4.0.

    Ladislav Hagara | Komentářů: 0
    včera 22:11 | IT novinky Ladislav Hagara | Komentářů: 0
    včera 20:55 | Nová verze

    Neziskové průmyslové konsorcium Khronos Group vydalo verzi 1.1 specifikace OpenXR (Wikipedie), tj. standardu specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro AR (rozšířenou realitu) a VR (virtuální realitu). Do základu se z rozšíření dostalo XR_EXT_local_floor. Společnost Collabora implementuje novou verzi specifikace do platformy Monado, tj. open source implementace OpenXR.

    Ladislav Hagara | Komentářů: 2
    včera 17:22 | Nová verze

    Byla vydána nová verze 0.38.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 4.4 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 13
    včera 17:11 | Nová verze

    ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzích 1.3.1, 1.2.3 a 1.0.6. Ve verzi 1.3.1 je mimo jiné řešena bezpečnostní chyba CVE-2024-20380.

    Ladislav Hagara | Komentářů: 2
    včera 12:11 | IT novinky

    Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.

    Ladislav Hagara | Komentářů: 10
    včera 05:11 | Komunita

    #HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.

    Ladislav Hagara | Komentářů: 2
    17.4. 17:55 | IT novinky

    Společnost Volla Systeme stojící za telefony Volla spustila na Kickstarteru kampaň na podporu tabletu Volla Tablet s Volla OS nebo Ubuntu Touch.

    Ladislav Hagara | Komentářů: 3
    KDE Plasma 6
     (68%)
     (10%)
     (2%)
     (20%)
    Celkem 562 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    KDE pro programátory – úvod

    26. 1. 2011 | Dan Vrátil | Programování | 8075×

    Tento seriál je zaměřen zejména na programátory v Qt. Jeho cílem je ukázat, proč psát aplikace pro KDE a nejen pro čisté Qt a představit některé základní technologie KDE jako jsou KParts, Akonadi, Strigi nebo KIO.

    Obsah

    Úvod

    link

    V rámci toho seriálu budu poředpokládat alespoň základní znalost frameworku Qt. Základy pužívání Qt můžete nastudovat v seriálu o konzolových a grafických aplikacích v Qt. Dodatečné informace a návody k tomu, o čem budeme v tomto seriálu mluvit, jsou k dispozici na KDE TechBase. Podrobnou dokumentaci API najdete na api.kde.org. V rámci seriálu budu používat a odkazovat na stabilní API z KDE 4.5.

    Na úplný začátek si ukážeme jak vypadá standardní KDE aplikace, jak používat okno a snadno nadefinovat menu a panely, následně si ukážeme pár zajímavých dialogů, kterými KDE oproti Qt disponuje. Záměrně nebudu zmiňovat základní grafické prvky jako tlačítka, vstupní pole nebo MVC, protože ty jsou téměř identické s  těmi, které jsou dostupné v Qt, akorát místo na Q začínají na K.

    Okno a menu

    link

    Než se dostaneme k některým zajímavějším technologiím, ukážeme si, jak snadno a rychle vytvořit jednoduchou KDE aplikaci s menu. Je to totiž trochu jiné, než jak jsme zvyklí z Qt.

    Základem každé grafické aplikace je okno. V nabídce jsou dvě třídy, klasické KMainWindow, které se používá téměr stejně jako QMainWindow a třída KXmlGuiWindow. Její výhoda oprotí první zmíněné je ta, že hierarchii menu a panelů můžete definovat v externím XML souboru. Pro příklad, vytvořme si třídu MainWindow odvozenou od KXmlGuiWindow a nadefinujme pro ni jednoduché menu a toolbar:

    mainwindow.h

    link
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <KXmlGuiWindow>
    
    class MainWindow : public KXmlGuiWindow
    {
      Q_OBJECT
    
    public:
      MainWindow();
      ~MainWindow() {};
    
    };
    
    #endif
    

    mainwindow.cpp

    link
    #include <KAction>
    #include <KActionCollection>
    #include <KLocale>
    #include <KStandardShortcut>
    
    #include "mainwindow.h"
    
    MainWindow::MainWindow()
        : KXmlGuiWindow()
    {
      // Vytvori menu Soubor -> Ukoncit
      KStandardAction::quit(this, SLOT(close()), actionCollection());
    
      // Vytvorime KAction pro polozku "Zmena hesla"
      KAction *action = actionCollection()->addAction("set_passwd");
      action->setText(i18n("Změna hesla"));
    
      // Vytvorime KAction pro polozku "Otevrit v programu"
      action = actionCollection()->addAction("open_in");
      action->setText(i18n("Otevřít v programu..."));
    
      // Vytvorime KAction pro zaskrtavaci polozku "Zobrazovat tip dne"
      action = actionCollection()->addAction("tip_of_day");
      action->setText(i18n("Zobrazovat tip dne"));
      action->setCheckable(true);
    
      // Vytvorime toolbar, pridame dialog pro klavesove zkratky a vytvorime GUI
      setupGUI(ToolBar|Keys|Create);
    }
    

    Všimněte si, že nikde není určeno, do jakého menu se mají akce umisťovat. Rodičem všech akcí je KActionCollection, přičemž každé okno v KDE má vlastní takovou kolekci. Ta se postará o rozložení akcí do menu, na panelu atd.

    Nyní vytvoříme příslušný XML soubor, ve kterém definujeme rozložení menu a toolbarů.

    dialogui.rc

    link
    <?xml version="1.0" encoding="UTf-8"?>
    <gui name="dialogs"
         version="1"
         xmlns="http://www.kde.org/standards/kxmlgui/1.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.kde.org/standards/kxmlgui/1.0
                             http://www.kde.org/standards/kxmlgui/1.0/kxmlgui.xsd">
    
    <MenuBar>
      <Menu name="dialogs"><text>&Dialogy</text>
        <Action name="set_passwd"/>
        <Action name="open_in"/>
        <Separator/>
        <Action name="tip_of_day"/>
     </Menu>
    </MenuBar>
    
    <ToolBar name="mainToolBar">
      <text>Main Toolbar</text>
      <Action name="set_passwd"/>
      <Action name="open_in"/>
    </ToolBar>
    </gui>
    

    Syntaxe je celkem jednoznačná. Všimněte si, že atribut name odpovídá argumentu funkce addAction() v mainwindow.cpp. Tagem <text> se definuje popis položky, který se použije, pokud nenastavíte jiný pomocí metody setText().

    Aby to ale nebylo příliš jednoduché, musí se v každé KDE aplikací ve funkci main() nastavit určité parametry. Jedním z nich je i interní název aplikace. Atribut name v tagu gui pak musí tomuto názvu odpovídat. Také název .rc souboru nemůže být libovolný, ale musí být nazevaplikaceui.rc.

    main.cpp

    link
    #include <KAboutData>
    #include <KApplication>
    #include <KCmdLineArgs>
    
    #include "mainwindow.h"
    
    int main(int argc, char **argv)
    {
      // Kazda KDE aplikace musi mit KAboutData
      KAboutData aboutData("dialogs",			// interni nazev aplikace - viz atribut name v <gui> a nazev .rc souboru
                           0,
                           ki18n("Dialogy"),		// plny nazev aplikace (musi byt prekladatelny)
                           "1.0",				// verze aplikace
                           ki18n("Ukázka dialogů v KDE"),	// strucny popis (musi byt prekladatelny)
                           KAboutData::License_GPL);	// licence
      aboutData.addAuthor(ki18n("Dan Vrátil"));		// autor, take musi byt prekladatelny
    
      KCmdLineArgs::init( argc, argv, &aboutData );	// prida do aplikace prepinace --help, --help-kde, --help-qt atd
    
      KApplication app;
    
      MainWindow *mainWindow = new MainWindow();
      mainWindow->show();
    
      return app.exec();
    }
    

    Podstatné části jsou okomentované, zbytek je stejný jako v Qt aplikacích. KAboutData může obsahovat mnoho dalších informací, včetně seznamu autorů, kreditů, loga, adresi bugtrackeru a mnoha dalších, vizte dokumentaci.

    Pokud teď zkusíte kód přeložit, žádné menu ani panel se vám nezobrazí. Je to proto, že KDE hledá .rc soubor v jedné velmi specifické lokalitě, a to v  /usr/(local/)share/apps/nazevaplikace/. I před samotným testováním je tedy potřeba projekt nainstalovat. Nebo alespon zkopírovat .rc soubor do příslušného adresáře, například pomocí CMake.

    CMakeLists.txt

    link
    # Nazev projektu, mel by se shodovat s internim oznacenim aplikace
    project(dialogs)
    
    # Najde KDE a nastavi promenne
    find_package(KDE4 REQUIRED)
    
    add_definitions(${QT_DEFINITIONS} ${KDE_DEFINITIONS})
    
    include_directories(${KDE4_INCLUDES})
    
    set(dialogs_SRCS
        main.cpp
        mainwindow.cpp
    )
    
    kde4_add_executable(dialogs ${dialogs_SRCS})
    
    target_link_libraries(dialogs  ${KDE4_KDEUI_LIBS})
    
    # Nainstaluje binarku do BIN_INSTALL_DIR, standardne tedy /usr/(local/)bin
    install(TARGETS dialogs DESTINATION ${BIN_INSTALL_DIR})
    # Nainstaluje .rc soubor do /usr/(local/)share/apps/dialogs
    install(FILES dialogsui.rc DESTINATION ${DATA_INSTALL_DIR}/dialogs)
    

    Po spuštění se zobrazí okno s připraveným menu a toolbarem. Všimněte si, že KDE za nás samo přidalo uniformní nabídky Nápověda a Nastavení s možností konfigurace klávesových zkratek pro jednotlivé akce a konfiguraci panelu. Stejně tak spuštění příkazu dialogs --help zobrazí standardní přepínače pro KDE aplikace. V dialogu O Aplikace se pak zobrazí právě ty informace, které jsme nastavili v KAboutData. Dost funkcí na těch pár řádek kódu, co?

    KDE pro programátory

    Dialogy

    link

    V Qt jsou k dispozici dialogy pro otevírání/ukládání souborů, tisk, nastavení barvy nebo písma. Ty jsou v KDE samozřejmě taky, ale kromě nich existují i dialogy pro  zadání nebo změnu hesla, dialog "Otevřít v...", otravný dialog s tipem dne nebo dialog pro hledání a nahrazení. Samozřejmě všechny takové dialogy není problém vytvořit v Qt odvozením od QDialog. To ale vede k tomu, že v každém programu pak dialogy vypadají a ovládájí se jinak. Použítím existujících dialogů se toto chování sjednocuje a je identické s tím, na co jsou uživatelé zvyklí.

    KPasswordDialog a KNewPasswordDialog

    link

    Jako první si představíme dialogy pro práci s hesly. Nepodporují žádné šifrování, ukládání nebo autentizaci, jde pouze o dialogy pro zadání údajů. Předchozí aplikaci tedy rozšíříme o dialog pro změnu hesla a oveření hesla při spuštění programu. Heslo nebudeme nijak šifrovat, uložíme ho v plaintextu do globálního konfiguračního souboru aplikace.

    ...
    #include <knewpassworddialog.h>  // /usr/include/KDE/KNewPasswordDialog neexistuje
    ...
    ...
    void MainWindow::showChangePassword()
    {
      // Vytvori dialog
      KNewPasswordDialog dialog(this);
      // Zakaze prazdne heslo
      dialog.setAllowEmptyPasswords(false);
      // Minimalni delka hesla je 8
      dialog.setMinimumPasswordLength(8);
      // Popiska
      dialog.setPrompt(i18n("Heslo nebo život!"));
      // Modalne zobrazi dialog, pri potvrzeni vraci TRUE
      if (dialog.exec())
        setPassword(dialog.password());
    }
    
    void MainWindow::setPassword(QString newPassword)
    {
      // Ziska ukazatel na vychozi konfiguraci aplikace
      KSharedConfig::Ptr config = KGlobal::config();
      config->group("Security").writeEntry("Password", newPassword);
    }
    

    V konstruktoru je ještě potřeba spojit signál triggered() příslušné akce s vytvořeným slotem, aby to celé fungovalo.

    Alternativní možností je použít nemodální dialog, ten se otevírá metodou show(). Při potvrzení se vyvolá signál newPassword(QString newPassword), při odmítnutí se vyvolá rejected().

    Reimplementací virtuální metody checkPassword() lze definovat vlastní pravidla pro platnost hesla.

    Při spuštění budeme heslo ověřovat dialogem KPasswordDialog. Pokud není žádné heslo nastavené, požádáme o zadání nového.

    ..
    #include <KPasswordDialog>
    ..
    ..
    MainWindow::MainWindow()
        : KXmlGuiWindow()
    {
      KSharedConfig::Ptr config = KGlobal::config();
      QString pass = config->group("Security").readEntry("Password", QString());
    
      // Pri prazdnem hesle zobrazi dialog nastaveni noveho hesla, jinak pozada o zadani hesla
      if (pass.isEmpty()) {
        showChangePassword();
      } else {
        // Vyvori dialog s checkboxy "Zapamatovat si heslo" a "Prihlasit anonymne"
        KPasswordDialog dialog(this, KPasswordDialog::ShowKeepPassword | 
    				 KPasswordDialog::ShowAnonymousLoginCheckBox);
        dialog.setPrompt(i18n("Zadejte heslo nebo se přihlašte anonymně"));
    
        while (dialog.exec() && (dialog.password() != pass)) {
    	// Nastavi dialogu chybovou hlasku "Spatne heslo";
    	dialog.showErrorMessage(i18n("Znovu a lépe...)", KPasswordDialog::PasswordError);
        }
      }
      ...
      ...
    }
    

    Pokud bychom přihlašovací dialog řešili nemodálně, informaci o přijetí dialogu bychom získali signálem gotPassword(QString pass), respektive gotUsernameAndPassword(QString username, QString pass). Přítomnost vstupu pro uživatelské jméno se ovlivňuje příznaky v konstruktoru, kompletní přehled najdete v dokumentaci.

    KDE pro programátory

    KTipOfDay

    link

    Otravný dialog, který nám při spuštění programu prozradí nějakou zajímavou klávesovou zratku, známe všichni. No někdy to může být užitečné, tak proč bychom si ho do programu nepřidali také! Dialog zobrazíme již v konstruktoru, ihned po autentizaci uživatele. Navíc ho zobrazíme nemodálně, aby se stihl vytvořit zbytek okna, než si dialog přečteme.

    ...
    #include 
    ...
    ...
    MainWindow::MainWindow()
        : KXmlGuiWindow()
    {
      // Autentizace uzivatele
      ...
      ...
      
      KTipDialog::showTip(this, QString(), false);
    
      // Vytvoreni menu
      ...
      ...
      // Vytvorime KAction pro zaskrtavaci polozku "Zobrazovat tip dne"
      action = actionCollection()->addAction("tip_of_day");
      action->setText(i18n("Zobrazovat tip dne"));
      action->setCheckable(true);
      // Zaskrtne akci podle nastaveni TipOfDay/RunOnStart
      action->setChecked(config->group("TipOfDay").readEntry("RunOnStart", true));
      connect(action, SIGNAL(toggled(bool)),
    	  this, SLOT(toggleShowTipOfDay(bool)));  
      ...
      ...
    }
    ...
    ...
    void MainWindow::toggleShowTipOfDay(bool enable)
    {
       KTipDialog::setShowOnStart(enable);
    }
    
    

    Jednoduché, že? Druhý parametr je cesta k alternativnímu souboru s tipy. Pokud je prázdný, použije se soubor /usr/(local/)share/apps/nazevaplikace/tips. Třetí parametr určuje, jestli jsme dialog vyvolali násilně nebo ne. Pokud nebyl vyvolán násilně, zobrazí se jen tehdy, pokud je zaškrtnuté "Zobrazovat tip dne při spuštění". Při násilném vyvoláni se dialog zobrazí bez ohledu na to, co nastavil uživatel. Uložení nastavení probíhá automaticky.

    Formát souboru tips je zdruba následující:

    <tip category="Dialogs|app">
    <html>
    <p>Tento program v sobě ukrývá závažnou <strong>bezpečnostní chybu</strong>. Už jste ji objevili?</p>
    </html>
    <tip category="Dialogs|app">
    <html>
    <p>Už jste zkusili odmítnout přihlášení?</p>
    </html>
    ...
    

    V CMakeLists.txt je ještě potřeba změnit dva řádky, aby se aplikace přeložila a nainstaloval se soubor s tipy:

    ...
    ...
    # Pridejte ${KDE4_KIO_LIBS} (kvuli KFileDialog a KRun)
    target_link_libraries(dialogs  ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS})
    ...
    ...
    # Pridejte soubor tips do souboru k nainstalovani
    install(FILES dialogsui.rc tips DESTINATION ${DATA_INSTALL_DIR}/dialogs)
    

    KDE pro programátory

    KOpenWithDialog

    link

    V tomto dialogu má uživatel možnost vybrat aplikaci, ve které chce otevřít nějaký soubor. Přímé použití tohoto dialogu je ale nevhodné, protože dialog sám neumí spustit vybranou aplikaci. Lepším řešením je použít třídu KRun, konkrétně funkci displayOpenWithDialog(). V menu našeho ukázkového programu už máme akci "Otevřít v programu...", takže stačí napsat příslušný slot.

    ...
    #include <KRun>
    #include <KFileDialog>
    #include <KUrl>
    ...
    ...
    void MainWindow::showOpenWithDialog()
    {
       KUrl url = KFileDialog::getOpenUrls().first();
       if (!url.isEmpty()) {
         KRun::displayOpenWithDialog(url, this);
       }
    }
    

    Když už tu máme KFileDialog, ještě zmíním existenci KEncondingFileDialog, který kromě výběru souboru umožňuje vybrat i vnější kódování, ve kterém se má soubor otevřít.

    KDE pro programátory

    Nakonec ještě tarball s kompletními zdrojovými kódy.

    Závěrem

    link

    Jak je vidět z příkladu, KDE se nám snaží spoustu věcí usnadnit tím, že je definuje a dodělává za nás. Zároveň je tím zajištěna uniformnost uživatelského rozhraní. Tohle ale není ani zdaleka vše, co KDE umí. Příště se už podíváme na pokročilejší technologie umožňující použití složitějších prvků napříč aplikacemi a zajišťující lepší integraci aplikací s prostředím KDE ale i s ostatními aplikacemi.

           

    Hodnocení: 92 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    Josef Kufner avatar 26.1.2011 00:15 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: KDE pro programátory – úvod
    A jak to vypadá s multiplatformností? Slyšel jsem, že to prý funguje, ale pokud budu něco vytvářet, tak by to mělo běhat na co nejvíce platformách a s co nejméně komplikacema.
    Hello world ! Segmentation fault (core dumped)
    progdan avatar 26.1.2011 00:36 progdan | skóre: 34 | blog: Archař | Teplice/Brno
    Rozbalit Rozbalit vše Re: KDE pro programátory – úvod

    Nemůžu říct, jak je to s přenostitelností na MacOS. Existuje sice mac.kde.org, ale nepřijde mi to moc živé.

    Na Windows je KDE for Windows. Problém je akorát s kompilátorem (aplikace musí být zkompilována stejným kompilátorem jako zbytek KDE), navíc ne všechny části KDE už jsou naportované na Windows. Také to je nepohodlné, protože je potřeba mít nainstalované minimálně kdelibs, které si samy přitáhnou spustu závislosti z GNU světa.

    Ale závislosti se dají řešit produkováním staticky linkovaných binárek, případně distribucí potřebných knihoven spolu s programem (jak je to na Windows víceméně zvykem). Málo z uživatelů Windows bude mít zájem si cokoliv kompilovat, takže širší nasazení aplikace stejně bude vyžadovat vydávání binárních balíčků pro Windows, a tam si stačí udělat jeden buildroot s konfigurací a pak je to jen otázka toho nastartovat jednou za čas VirtualBox, aktualizovat zdrojáky a modlit se, aby se to přeložilo (vlastní zkušnosti :-) ).

    Poslední věcí platformou je Symbian a na ten nejspíš můžete zapomenout :)

    Zcela jiným prvkem je stabilita. Té bych se asi na Windows bál. Základní věci (kdelibs) už budou odlazené, ale některé obskurnější funkce budou podle mě ještě hodně problematické.

    No celkově z tohohle románu vyplývá, že s multiplatformností to není nejhorší, ale čísté Qt je lepší volba.

    Collecting data is only the first step toward wisdom, but sharing data is the first step toward the community.
    Josef Kufner avatar 26.1.2011 00:43 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: KDE pro programátory – úvod
    Nojo, ani mě to nepřekvapuje. Btw, binární balíčky jsou nutnost tak jako tak, jinak by to používalo jen pár bláznů s Gentoo.
    Hello world ! Segmentation fault (core dumped)
    Luboš Doležel (Doli) avatar 26.1.2011 00:54 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: KDE pro programátory – úvod
    Stačí si najít lidi, kteří to budou zajišťovat pro jednotlivé distribuce. Jen mám obavy, že MSFT tohle nenabízí :-D
    26.1.2011 21:49 mimi.vx | skóre: 37 | blog: Mimi.VX | Praha
    Rozbalit Rozbalit vše Re: KDE pro programátory – úvod

    4.5.4 testuji uz pres tyden a ani amarok a ani digikam nemaji pod win7 zadne problemy .... zatim zadny pad ... coz sem celkem cumel ...

     

    jen konqueror nejak nechce brat flash .....

    USE="-gnome -kde";turris
    26.1.2011 20:44 mimi.vx | skóre: 37 | blog: Mimi.VX | Praha
    Rozbalit Rozbalit vše Re: KDE pro programátory – úvod

    mam kde 4.6.0 v gentooo a 4.5.4 v win7 a oboje behaji bez problemu .... takze zalezi na programatorovy aplikace jak multiplatforme to napise ... Qt a KDElibs s tim problem nemaji

    USE="-gnome -kde";turris
    26.1.2011 10:57 rini17
    Rozbalit Rozbalit vše akonadi, strigi :-(
    to som velmi zvedavy co to je akonadi... lebo kym som tomu nevytvoril a nenastavil databazu v systemovom mysql, tak kmail 4.4.7 si zakazdym spustal mysql sam, co sa mu nedarilo a padal. O tom s velkou preciznostou informoval zmateneho uzivatela modalnym oknom. Potom som s velkou zvedavostou pozrel do tej databazy..a zistil ze tam prakticky NIC nie je (cca 5 tabuliek s 8 zaznamami spolu)!

    a tiez sa divim preco doteraz nebol nikto schopny vytvorit nejake UI na vyhladavanie cez strigi...
    progdan avatar 26.1.2011 11:19 progdan | skóre: 34 | blog: Archař | Teplice/Brno
    Rozbalit Rozbalit vše Re: akonadi, strigi :-(

    to som velmi zvedavy co to je akonadi... lebo kym som tomu nevytvoril a nenastavil databazu v systemovom mysql, tak kmail 4.4.7 si zakazdym spustal mysql sam, co sa mu nedarilo a padal. O tom s velkou preciznostou informoval zmateneho uzivatela modalnym oknom. Potom som s velkou zvedavostou pozrel do tej databazy..a zistil ze tam prakticky NIC nie je (cca 5 tabuliek s 8 zaznamami spolu)!

    Akonadi je nejen ta databaze, je to i sada tzv. "resources" (nenapada me ted vhodny preklad, "zdroj" mi prijde divny), ktere se staraji o ziskavani dat (napr. z emailove schranky), ukladani a opetovne zpristupnovani (napr. emailovemu klientu).

    a tiez sa divim preco doteraz nebol nikto schopny vytvorit nejake UI na vyhladavanie cez strigi...

    Jestli to nebude tim, ze Strigi je sluzba, ktera se stara pouze o indexovani dat. Pro hledani v techto datech je sluzba Nepomuk. Vyhledavat pomoci Nepomuku muzete napriklad v KRunneru nebo od KDE 4.6 i v Dolphinu.

     

    Collecting data is only the first step toward wisdom, but sharing data is the first step toward the community.
    26.1.2011 13:22 rini17
    Rozbalit Rozbalit vše Re: akonadi, strigi :-(

    a tiez sa divim preco doteraz nebol nikto schopny vytvorit nejake UI na vyhladavanie cez strigi...

    Jestli to nebude tim, ze Strigi je sluzba, ktera se stara pouze o indexovani dat. Pro hledani v techto datech je sluzba Nepomuk. Vyhledavat pomoci Nepomuku muzete napriklad v KRunneru nebo od KDE 4.6 i v Dolphinu.

     

    Chapem to dobre ze kym konecne nepride stabilne KDE 4.6 o rok ci dva, tak budem musiet stale pouzivat find/locate/grep na hladanie suborov? Hoci tieto informacie v databaze strigi/nepomuk su? Je to taky problem na to spravit jednoduche GUI pouzitelne uz teraz v 4.4? Napriklad KRunner neponuka subory podla mena alebo obsahu, aspon u mna.
    progdan avatar 26.1.2011 14:01 progdan | skóre: 34 | blog: Archař | Teplice/Brno
    Rozbalit Rozbalit vše Re: akonadi, strigi :-(

    No KDE 4.6 melo puvodne vyjit jeste ted v lednu, za rok uz se bude blizit KDE 4.7 :-).

    Nevim jak to bylo v KDE 4.4, ale v 4.5 uz to slape bez problemu pres KRunner, vyhledava i podle obsahu. V KDE 4.6 uz pujde filtrovat a vyhledavat i v Dolphinu.

    Collecting data is only the first step toward wisdom, but sharing data is the first step toward the community.
    26.1.2011 20:46 mimi.vx | skóre: 37 | blog: Mimi.VX | Praha
    Rozbalit Rozbalit vše Re: akonadi, strigi :-)

    to dnes vyslo ... , ten rok ale ubehl co? a jak bylo psano drive , krunner umi hledat v indexu strigi, nepomuk take a gui pro strigi je tez

    USE="-gnome -kde";turris
    26.1.2011 20:46 mimi.vx | skóre: 37 | blog: Mimi.VX | Praha
    Rozbalit Rozbalit vše Re: akonadi, strigi :-)

    to dnes vyslo ... , ten rok ale ubehl co? a jak bylo psano drive , krunner umi hledat v indexu strigi, nepomuk take a gui pro strigi je tez

    USE="-gnome -kde";turris
    Josef Kufner avatar 26.1.2011 12:38 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: akonadi, strigi :-(
    Akonadi je jedna z nejlepších věcí, která se v KDE4 objvila. Jen ještě není moc dodělaná.

    V podstatě jde o to, že všechny věci na desktopu, které mají pracovat s tvými údaji jako je kalendář, maily, kontakty a prostě vše co spadá pod PIM, tak nemusí umět hromady protokolů, zjišťovat jak se dostat k tvé schránce, hlídat, co se kde změnilo a tak vůbec.

    Místo toho použijí Akonadi. Například si necháš na ploše plasmoid zobrazující kalendář. Bez Akonadi bys mu musel nastavit, kde je tvůj kalendář a plasmoid by se k němu musel umět připojit. Takle si vytáhne události z Akonadi a má to skoro bez práce.

    Navíc to umožní jednoduše vytvářet nové PIM aplikace, které budou schopné spolupracovat a budou naprosto přirozeně synchronizované. Jo a ta mysql prý časem zmizí – nějaké lokální úložiště se už chystá. Tu mysql máš prázdnou proto, že máš maily uložené někde jinde. Akonadi skládá dohromady data z různých míst (lokální i vzdálená) a aplikace nemusí řešit, kde co je.
    Hello world ! Segmentation fault (core dumped)
    progdan avatar 26.1.2011 13:01 progdan | skóre: 34 | blog: Archař | Teplice/Brno
    Rozbalit Rozbalit vše Re: akonadi, strigi :-(
    Jo a ta mysql prý časem zmizí – nějaké lokální úložiště se už chystá.

    Pry se pracuje na podpore pro Virtuoso, cili stejnou databazi jako pouziva Strigi.

    Collecting data is only the first step toward wisdom, but sharing data is the first step toward the community.
    26.1.2011 20:50 mimi.vx | skóre: 37 | blog: Mimi.VX | Praha
    Rozbalit Rozbalit vše Re: akonadi, strigi :-(

    ono uz je tam misto mysql Virtuoso .... , ale ma byt podpora pro vice backendu .. od sqlite po vetsi databaze ...

    USE="-gnome -kde";turris
    progdan avatar 26.1.2011 21:10 progdan | skóre: 34 | blog: Archař | Teplice/Brno
    Rozbalit Rozbalit vše Re: akonadi, strigi :-(
    Ve zdrojacich sice neco o Virtuosu je, je tam i SQLite, ale rekl bych, ze se na tom bude muset jeste hodne zapracovat. V KDE 4.6 je porad na vyber jen MySQL a PostgreSQL.
    Collecting data is only the first step toward wisdom, but sharing data is the first step toward the community.
    26.1.2011 21:50 mimi.vx | skóre: 37 | blog: Mimi.VX | Praha
    Rozbalit Rozbalit vše Re: akonadi, strigi :-(

    nevim proc mam na gentoo kde 4.5 s virtuosem a po mysql ani stopa ....

     

    a 4.6 v dep tree taky neni ani stopa pro mysql

    USE="-gnome -kde";turris
    progdan avatar 26.1.2011 22:01 progdan | skóre: 34 | blog: Archař | Teplice/Brno
    Rozbalit Rozbalit vše Re: akonadi, strigi :-(

    Tak ted jsem z toho nejaky zmateny. Prikaz akonadictl status mi vyplivnul Akonadi Server Search Support: available (backend: Virtuoso), ale v kcm_akonadi je na vyber pouze MySQL a PostgreSQL a data z PIM aplikaci jsou opravdu ulozena v MySQL.

    Collecting data is only the first step toward wisdom, but sharing data is the first step toward the community.
    27.1.2011 12:41 Kaa
    Rozbalit Rozbalit vše Re: akonadi, strigi :-(
    Akonadi, nepomuk, strigi .. to jsou veci, co ihned po instalaci KDE odebiram a s nimi i ty (pro mne zbytecne) zavisle veci (KDE-PIM, Kmail). Nevim, proc bych kvuli "nicemu" mel mit a bezet na stroji i mysql. :-) Ja totiz pouzivam pc s KDE proste jako poracovni prostredi pro aplikace s pro mne vyhodnymi ergonomickymi ficurami. Na plose nepotrebuju mit zadne bejkarny z pim. Maximalne tak Garfielda pro lepsi naladu. Proste to je vec osobnich priorit a vyberu. A proto mam rad Linux/KDE a spol. Jen verim ze zachovaji moznost vyberu a nebudou nic nutit natvrdo.
    26.1.2011 18:27 migel
    Rozbalit Rozbalit vše Re: KDE pro programátory – úvod
    Bude se tento seriál věnovat i pokročilejším tématům a technikám nebo to je další z řady "úvodů programování v <doplň>API</doplň> pro uklízečky a chovance Jedličkova ústavu ?".

    Jinými slovy, čím se zaobírá poslední už hotová část seriálu ?

    progdan avatar 26.1.2011 19:06 progdan | skóre: 34 | blog: Archař | Teplice/Brno
    Rozbalit Rozbalit vše Re: KDE pro programátory – úvod

    Nechci jen popisovat API, chci ty technologie podrobneji predstavit, ukazat jejich vyhody (a pripadne nevyhody), poukazat na nejaky problemy a zakernosti. Urcite ale neplanuju rozebirat vnitrni fungovani tech technologii (to nikoho moc nezajima).

    Zatim jsou planu jsou KParts, KIO, Akonadi, KWallet, Sonnet.

    Co presne si vy predstavujete pod pokrocilejsimi tematy a technikami?

    Collecting data is only the first step toward wisdom, but sharing data is the first step toward the community.
    Saljack avatar 26.1.2011 22:18 Saljack | skóre: 28 | blog: Saljack | Praha
    Rozbalit Rozbalit vše Re: KDE pro programátory – úvod
    Bude se tento seriál věnovat i pokročilejším tématům a technikám nebo to je další z řady "úvodů programování v <doplň>API</doplň> pro uklízečky a chovance Jedličkova ústavu ?".
    Tak tohle mě dneska opravdu pobavilo :-D. Ale bohužel máš pravdu, že hodně tutoriálů takových je :-(. Celkem se těším na další díly.

    Co byste doporučili na vývoj KDevelop nebo Qt Creator?

    Sex, Drugs & Rock´n Roll.
    progdan avatar 26.1.2011 22:32 progdan | skóre: 34 | blog: Archař | Teplice/Brno
    Rozbalit Rozbalit vše Re: KDE pro programátory – úvod
    Ja osobne pisu ukazkove kody v KDevelopu. QtCreator je zcela luxusni nastroj pro Qt aplikace, ale pro KDE mi vic vyhovuje KDevelop, hlavne protoze zvyraznuje i "K" tridy. QtCreator umi jen "Q" tridy.
    Collecting data is only the first step toward wisdom, but sharing data is the first step toward the community.
    Josef Kufner avatar 26.1.2011 22:39 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: KDE pro programátory – úvod
    Tak napiš bugreport do Nokie.
    Hello world ! Segmentation fault (core dumped)
    progdan avatar 26.1.2011 22:52 progdan | skóre: 34 | blog: Archař | Teplice/Brno
    Rozbalit Rozbalit vše Re: KDE pro programátory – úvod

    Ja to beru jako logickou zalezitost - jednou je to QtCreator, tak proc by mel zvyrazonovat tridy KDE?

    Collecting data is only the first step toward wisdom, but sharing data is the first step toward the community.
    Josef Kufner avatar 26.1.2011 22:55 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: KDE pro programátory – úvod
    Třeba by mohl mít možnost doplnění libovolných tříd pro další knihovny i s otevíráním dokumentace jako to dělá u Qt.
    Hello world ! Segmentation fault (core dumped)
    28.1.2011 08:54 JS
    Rozbalit Rozbalit vše Re: KDE pro programátory – úvod
    Diky za clanek (a dalsi dily).

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.