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í
×
dnes 16:11 | Komunita

Vývojáři relačního databázového systému PostgreSQL oznámili, že schválili svůj Code of Conduct (CoC) aneb kodex chování vývojářů PostgreSQL.

Ladislav Hagara | Komentářů: 2
dnes 14:44 | Nová verze

Byla vydána verze 1.0 poštovního serveru Courier (Wikipedie). Aktualizovány byly také související balíčky jako Courier authentication library, Courier-IMAP, SqWebMail, maildrop nebo Cone.

Ladislav Hagara | Komentářů: 0
dnes 02:22 | Zajímavý software

Společnost ​Versity Software otevřela svůj archivační souborový systém ScoutFS. Zdrojové kódy jsou k dispozici na GitHubu (kernel space, user space) pod licencí GPLv2.

Ladislav Hagara | Komentářů: 18
dnes 00:44 | Nová verze

Byla vydána verze 4.2 programovacího jazyka Swift (Wikipedie). Zdrojové kódy jsou k dispozici na GitHubu. Ke stažení jsou oficiální binární balíčky pro Ubuntu 18.04, Ubuntu 16.04 a Ubuntu 14.04. Přehled novinek ve videozáznamu přednášky z WWDC 2018.

Ladislav Hagara | Komentářů: 1
včera 17:55 | Nová verze

Po třech a půl letech od vydání verze 3.4.1 byla vydána nová verze 3.4.2 programu pro filtrování spamu Apache SpamAssassin (Wikipedie). Z novinek lze zmínit 4 nové pluginy. Pravidla budou ověřována pomocí SHA-256 a SHA-512 místo SHA-1. Řešeny jsou také 4 bezpečnostní chyby. Například chyba CVE-2018-11780 v pluginu PDFInfo zneužitelná ke vzdálenému spuštění kódů (RCE).

Ladislav Hagara | Komentářů: 0
včera 16:22 | Pozvánky

Díky openSUSE Video Teamu lze sledovat živý přenos většiny prezentací z letošní SUSE Labs Conference. Záznamy proběhlých prezentací budou postupně přidávány na kanál SUSE Labs na YouTube.

Michal Kubeček | Komentářů: 0
včera 10:22 | Pozvánky

Na webových stránkách konference LinuxDays byl zveřejněn program přednášek a workshopů. Současně byla spuštěna registrace. Konference proběhne o víkendu 6. a 7. října 2018 v Praze v areálu ČVUT v Dejvicích na Fakultě informačních technologií.

Ladislav Hagara | Komentářů: 0
včera 02:22 | Komunita

Linus Torvalds se v oznámení o vydání 4. rc verze Linuxu 4.19 omlouvá za své chování. Posledním commitem před zvýšením rc3 na rc4 bylo odstranění souboru s Code of Conflict a přidání souboru s Contributor Covenant Code of Conduct vycházejícího z Contributor Covenant. Vývoj Linuxu 4.19 dokončí Greg Kroah-Hartman. Linus Torvalds si bere volno a bude pracovat na svém chování. Pravděpodobně vylepší svého poštovního klienta, aby mu nedovolil odesílat emaily obsahující nadávky.

Ladislav Hagara | Komentářů: 40
16.9. 11:33 | Nová verze

Byla vydána verze 1.23 open source nástroje pro on-the-fly šifrování (OTFE) dat VeraCrypt. Přehled novinek v nejnovější verzi tohoto nástupce TrueCryptu v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
15.9. 11:11 | Nová verze

Byly vydány verze 3.0.3 a 3.16 softwaru Wine (Wikipedie), tj. softwaru vytvářejícího aplikační rozhraní umožňující chod aplikací pro Microsoft Windows také pod GNU/Linuxem. Stabilní verze 3.0.3 je třetí opravnou verzí verze 3.0 vydané v lednu. Opravuje 52 chyb. Z novinek vývojové verze 3.16 lze zmínit například počáteční implementaci OPC Services (Open Packaging Conventions).

Ladislav Hagara | Komentářů: 1
Na optické médium (CD, DVD, BD aj.) jsem naposledy vypaloval(a) data před méně než
 (13%)
 (15%)
 (21%)
 (23%)
 (24%)
 (3%)
 (1%)
Celkem 351 hlasů
 Komentářů: 33, poslední 16.9. 11:55
Rozcestník

KDE pro programátory – úvod

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

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: 68
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: 68
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: 38 | 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: 38 | 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: 38 | 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: 38 | 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: 68
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: 38 | 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: 38 | 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: 68
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: 68
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.