abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

včera 14:33 | Zajímavý projekt

Blender Animation Studio zveřejnilo první epizodu z připravovaného animovaného seriálu The Daily Dweebs o domácím mazlíčkovi jménem Dixey. Ke zhlédnutí také ve 3D s rozlišením 8K.

Ladislav Hagara | Komentářů: 0
včera 12:34 | Komunita

Aktualizovanou počítačovou hru Warhammer 40,000: Dawn of War III v ceně 39,99 eur běžící také na Linuxu lze o víkendu na Steamu hrát zdarma a případně ještě v pondělí koupit s 50% slevou. Do soboty 19:00 lze na Humble Bundle získat zdarma Steam klíč k počítačové hře Sid Meier's Civilization® III v ceně 4,99 eur běžící také ve Wine.

Ladislav Hagara | Komentářů: 0
včera 00:22 | Nasazení Linuxu

Společnost Samsung oznámila, že skrze dokovací stanici DeX a aplikaci Linux on Galaxy bude možno na Samsung Galaxy S8 a S8+ a Galaxy Note 8 provozovat Linux. Distribuce nebyly blíže upřesněny.

Phantom Alien | Komentářů: 10
19.10. 23:55 | Komunita

Společnost Purism na svém blogu oznámila, že její notebooky Librem jsou nově dodávány se zrušeným (neutralized and disabled) Intel Management Engine (ME). Aktualizací corebootu na již prodaných noteboocích lze Management Engine také zrušit. Více v podrobném článku.

Ladislav Hagara | Komentářů: 0
19.10. 21:44 | Nová verze

Organizace Apache Software Foundation (ASF) na svém blogu slaví páté výročí kancelářského balíku Apache OpenOffice jako jejího Top-Level projektu. Při této příležitosti byl vydán Apache OpenOffice 4.1.4 (AOO 4.1.4). Podrobnosti v poznámkách k vydání. Dlouhé čekání na novou verzi tak skončilo.

Ladislav Hagara | Komentářů: 6
19.10. 19:22 | Pozvánky

Již příští týden - 26. a 27. října se v Praze v hotelu Olšanka odehraje OpenWRT Summit. Na webu konference naleznete program a možnost zakoupení lístků - ty stojí 55 dolarů. Čtvrtek bude přednáškový a v pátek se budou odehrávat převážně workshopy a meetingy.

Miška | Komentářů: 1
19.10. 13:44 | Nová verze

Bylo vydáno Ubuntu 17.10 s kódovým názvem Artful Aardvark. Ke stažení jsou Ubuntu Desktop a Server, Ubuntu Cloud Images, Ubuntu Netboot, Kubuntu, Lubuntu a Lubuntu Alternate, Lubuntu Next, Ubuntu Budgie, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio a Xubuntu. Podrobnosti v poznámkách k vydání.

Ladislav Hagara | Komentářů: 22
19.10. 13:00 | Komunita

MojeFedora.cz informuje, že Fedora 27 dostane podporu pro AAC. Podpora multimediálních formátů je ve výchozí instalaci Fedory tradičně limitovaná kvůli softwarovým patentům, ale desktopový tým Red Hatu se ji i tak snaží v poslední době co nejvíce rozšířit. Už nějaký čas obsahuje kodeky pro MP3, H.264, AC3 a nyní byl přidán také kodek pro další velmi rozšířený zvukový formát – AAC.

Ladislav Hagara | Komentářů: 2
18.10. 23:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených technologií a otevřeného přístupu na 145. brněnský sraz, který proběhne v pátek 20. října od 18:00 hodin v restauraci Time Out na adrese Novoměstská 2 v Řečkovicích. Jedná se o poslední sraz před konferencí OpenAlt 2017, jež proběhne o víkendu 4. a 5. listopadu 2017 na FIT VUT v Brně. Běží registrace účastníků.

Ladislav Hagara | Komentářů: 0
18.10. 21:44 | Nová verze

Byla vydána verze 5.2.0 multiplatformního virtualizačního nástroje Oracle VM VirtualBox. Jedná se o první stabilní verzi z nové větve 5.2. Z novinek lze zmínit například možnost exportování VM do Oracle Cloudu, bezobslužnou instalaci hostovaného systému nebo vylepšené GUI. Podrobnosti v seznamu změn. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 2
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (10%)
 (1%)
 (1%)
 (1%)
 (75%)
 (12%)
Celkem 144 hlasů
 Komentářů: 7, poslední 19.10. 23:06
    Rozcestník

    KDE pro programátory – úvod

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

    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: 67
    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: 67
    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: 67
    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: 67
    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: 67
    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.