Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Kate(KDE) modifizieren/erweitern

  1. #1
    lichtschicht
    Gast

    Kate(KDE) modifizieren/erweitern

    Vorweg:
    Ich bin – was das Programmieren im Allgemeinen angeht – noch relativ grün hinter den Ohren. Ich bitte um etwas Nachsicht, was z.B. die Terminologie angeht.

    Problemstellung:
    Das Ziel besteht darin, Aktionen in Kate (KDE) in einem Fenster synchron mit zu protokollieren.
    („Aktionen“ sind z.B. „Kopieren“, „Einfügen“, „Ausschneiden“, „Speichern“, usw., also alles, was in der Menüleiste zu finden ist oder durch Shortcuts angesteuert wird.)
    Das Protokoll soll die Aktionen und die zugehörigen Uhrzeiten auflisten.

    Ansatz:
    Nach Betrachten des Source Codes ist meine grundsätzliche Idee, die zu den Aktionen zugehörigen Funktionen als SIGNALs zu benutzen, um eine/mehrere Protokollierfunktionen als SLOTs anzusteuern (Qt).

    Fragen:
    1.Ist der Ansatz überhaupt zweckmäßig?

    Wenn ja:
    2.Wo finde ich die „Aktionen“? (Ich denke, dass ich an entsprechender Stelle gewisse SIGNALs einrichten müsste, oder?)
    3.Wie erstelle ich ein Fenster für das Protokoll?

    Würde mich über Feedback freuen.
    Geändert von lichtschicht (02-11-2008 um 11:17 Uhr) Grund: Redundanz

  2. #2
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Ähmm... Starte bei KDE3 mal kdcop wenn du ein Kate Dokument geöffnet hast und sehe dir die *Interfaces an.
    Kate basiert auf der ktexteditor engine.
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  3. #3
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Alle Actions (KAction Subklassen) in einer KDE Applikation sind normalerweise in der Actioncollection (KActionCollection) der jeweiligen Applikation verfügbar.

    Je nach Typ der Action kommt dann das eine oder andere Signal zum Einsatz, auf das du natürlich jeweils einen passenden Slot verbinden kannst.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  4. #4
    lichtschicht
    Gast
    Zuerst vielen Dank für die Antworten.
    Mittlerweile habe ich eine neue Klasse "actionLogger" erstellt, die gewisse Aktionen mit Hilfe von kdebug im Terminal loggt.
    Dabei habe ich mir zu Nutze gemacht, dass gewisse Aktionen geadded werden, wie z.B. hier:

    Code:
      a = actionCollection()->addAction( "file_reload_all" );
      a->setText( i18n("&Reload All") );
      connect( a, SIGNAL( triggered() ), KateDocManager::self(), SLOT( reloadAll() ) );
      
      connect( a, SIGNAL( triggered() ), al, SLOT( reloadAll())); //editiert von mir
    Mein Problem wäre jetzt, wie ich das mit nicht geaddeten Aktionen mache - also denjenigen, die bereits von vornherein vorhanden sind. Wie kann man diese ansprechen/aufrufen und "connecten"?
    Geändert von lichtschicht (04-11-2008 um 04:42 Uhr) Grund: für's Verständnis

  5. #5
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    KActionCollection::actions()

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  6. #6
    lichtschicht
    Gast
    Danke für den Hinweis. Habe mittlerweile die Kactions, die in der KActionCollection::actions()-Liste standen in den Logger integrieren können, nämlich so:

    Code:
    connect(actionCollection()->action(index), SIGNAL( triggered() ), al, SLOT( logfunktion() ) );
    in den "KateMainWindow::setupActions" von katemainwindow.cpp.

    In der Liste stehen allerdings längst nicht alle Funktionen und für meine Zwecke eher die unattraktiveren.
    Meine Frage wäre, wo ich die restlichen Funktionen finden könnte. Habe so den Verdacht, dass mit Hilfe irgendeiner Bib Standardfunktionen von KDE aufgesetzt werden, an die ich über die Source von Kate nicht herankomme.

  7. #7
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Vielleicht kannst du ein Beispiel geben, welche Actions du gerne "sehen" würdest?

    Im ungünstigsten Falle kannst du dich vermutlich auch durch den QObject Tree arbeiten, beginnend beim mainWidget() der Applikation.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •