User:Claus chr/Dubious Translations: Difference between revisions

From KDE UserBase Wiki
No edit summary
No edit summary
 
Line 1: Line 1:
== Dubious Translations ==
== Dubious Translations ==


Place the string <code><nowiki><!--XXTjekXX--></nowiki></code> in the translation unit containing the dubious translation, like so.  
Place the string <code><nowiki><!--XXTjekXX [optional comment]--></nowiki></code> in the translation unit containing the dubious translation, like so.  


{{Input|1=<nowiki>This is not translated properly. <!--XXTjekXX--> More text here</nowiki>}}
{{Input|1=<nowiki>This is not translated properly. <!--XXTjekXX needs work--> More text here</nowiki>}}


To make a list of pages in need of more translation work use the <code>SearchLang</code> template:
To make a list of pages in need of more translation work use the <code>SearchLang</code> template:

Latest revision as of 06:27, 28 January 2015

Dubious Translations

Place the string <!--XXTjekXX [optional comment]--> in the translation unit containing the dubious translation, like so.

This is not translated properly. <!--XXTjekXX needs work--> More text here

To make a list of pages in need of more translation work use the SearchLang template:

{{SearchLang|XXTjekXX|da}}

Danish pages with dubious translations

There are 206 pages beginning with A-J

There are 156 pages beginning with KA-KZ

Note

The project KSnapshot is archived. See https://invent.kde.org/unmaintained/ksnapshot. You may wish to consider Special:MyLanguage/Spectacle instead.



KSnapshot er et værktøj til at tage skærmbilleder


Introduktion

Har du nogensinde villet vise resten af verden, hvor imponerende KDE software er, det dér sidste niveau i det spil, som du netop klarede eller de virtuelle fisk i dit virtuelle akvarium? KSnapshot kan fange sådanne øjeblikke og endda lade dig tilpasse det endelige billedes udseende.

Programstart

Hvis det allerede er indstillet, så kan du starte KSnapShot ved brug af Print Screen (kan også være Prt sc) på tastaturet. Hvis der ikke allerede er indstillet, så kan du sætte den globale tastaturgenvej i Systemindstillinger Genveje og gestusser -> Global -> Globale tastaturgenveje , vælg khotkeys i KDE-komponent og PrintScreen under Handling.

Hovedtræk

Lav et nyt skærmbillede

Måske brød du dig ikke om det billede, der blev taget. Heldigvis kan du let lave et nyt billede ved at klikke på knappen Nyt øjebliksbillede.

Gem billedet

Hvad glæde ville du have af programmet, hvis du ikke kunne gemme dine billeder. KSnapshot lader dig gemme billeder alle disse formater:

  • png
  • xpm
  • pbm
  • rgb
  • tga
  • ppm
  • bmp
  • eps
  • mng
  • tiff
  • jpeg
  • pcx
  • xbm

Med hensyn til hvilket filformat der er bedst, så afhænger det af dine behov. De mest almindelige billedformater i dag er png og jpeg. Andre formater kan stadig være nyttige i forskellige situationer.

Send til

Denne knap lader dig åbne billedet i et andet program (som for eksempel KolourPaint eller Krita). Måske ønsker du at redigere billedet eller tilføje noget, som lettest kan gøres i et andet program.

Du kan bruge KIPI plugins til at sende billedet til en kontakt som en e-mail eller til Kopete, et online galleri så som Flickr eller PicasaWeb eller til et socialt netværkssted så som Facebook.

Kopiér til udklipsholderen

Efter et klik på denne knap kan du indsætte billedet (som regel ved at taste Ctrl + V) i et andet program eller dokument, som understøtter indsætning af billeder.

Indfangningetilstand

Her kan du indstille, hvad der skal tages billede af. Du kan vælge

  • Fuldskærm: Hele skærmen fanges
  • Vinduet under markøren: Fang hele vinduet under markøren
  • Rektangulært område: Fang et bestemt område
  • Freehand Region: Fang et specifikt område
  • Udsnit af vindue: Fang en del af det aktive vindue

Forsinkelse af øjebliksbillede

Sæt en timer her (i sekunder). Skriver du for eksempel 10 her, så vil KSnapshot vente 10 sekunder, før skærmbilledet bliver taget. Det er særlig nyttigt, hvis du vil fange en menu eller noget andet, som har med musens aktivitet at gøre.

Backup-funktioner

KDE's e-mail-program KMail har forskellige backup-funktioner.

Arkivering

  • Mappe → Arkivér mappe...

Eller vælg Arkivér mappe... i kontekstmenuen, som dukker op ved klik med højre museknap. Dette vil åbne en dialog, som lader dig oprette et enkelt arkiv af den aktuelt markerede mappe. Arkivets filnavn vil bestå af præfikset Archive_, stien til den markerede mappe i KMails mappeliste, datoen i formatet år-måned-dag og den valgte filendelse, fx Archive_Local Folder_inbox_2013-09-03.tar.bz2.

Arkivér mappe

Tekstfeltet Mappe: viser den aktuelt markerede mappe; hvis du vil ændre hvilken mappen, der skal arkiveres, så klik på ikonet .

Drop-ned-menuen Format lader dig vælge et format (valgmulighederne er: zip, tar, tar.ab2 og tar.gz),

Hvis du ønsker at ændre standardnavnet eller placeringen, så klik på ikonet for enden af feltet Arkivfil.

Sæt flueben ved Slet mappe og undermapper efter fuldførelse hvis du vil slette alt det du lige har arkiveret.

Som standard arkiveres alle undermapper. Fjern fluebenet ved Arkivér alle undermapper hvis du kun ønsker at arkivere det øverste niveau.

Automatisk arkivering

  • Indstillinger → Indstil automatisk arkivering...

Siden KDE 4.12 kan du indstille en KMail-mappe til automatisk arkivering

Dette er et stærkt værktøj, som kan bruges til at hjælpe med at automatisere backup af dine e-mails. Arkivets filnavn vil bestå af præfikset Archive_, stien til den valgte mappe i KMails mappeliste, datoen i formatet år-månde-dag og den valgte filendelse, fx Archive_Local Folder_inbox_2013-09-03.tar.bz2.

Automatisk arkivering

Vælg først den mappe du ønsker at arkivere ved at klikke på knappen Tilføj....


Automatisk arkivering

Vælg det format du ønsker at gemme det i, fx .tar.bz2 i drop-ned-listen.

Som standard er Arkivér alle undermapper aktiveret. Fjern fluebenet, hvis du kun ønsker at arkivere det øverste mappen-niveau.

Du kan skrive, hvor du ønsker at gemme arkivet eller klikke knappen (Åbn fildialog). for at vælge mappen.

Vælg, hvor ofte du ønsker at lave backup i inputfeltet og drop-ned-listen Lav backup hver:.

  • Hvis du har begrænset diskplads, så skal du nok angive et maksimalt antal af arkiver.
  • Hvis du har tilføjet eller ændret en arkiveringsjob, så vil det blive udført automatisk når du lukker dialogen.
  • Hvis du allerede har tilføjet e-mail-arkiveringsjobs, så vil dialogen Konfigurér mailarkiveringsagent opliste dem og lade dig ændre dem.

Du kan bruge aktiveringsfeltet til venstre for hvert emne i listen til at aktivere eller deaktivere arkivering af dette job.

Ved hjælp af kontekstmenuen, som dukker op når du højreklikker på et af arkiveringsjobbene kan du åbne den mappe, som indeholder arkivet eller starte arkiveringsjobbet med det samme.

Advarsel

Dette vil overskrive et eksisterende arkiv, som er blevet oprettet tidligere samme dag uden advarsel.


  • Indstillinger → Indstil agent til mappearkiverings...

Denne funktion lader dig arkivere enkelte e-mails til en give mappe.

Du vil for eksempel gerne have samlet alle de pokkers kvitteringer ét sted. Agenten til mappearkivering kan let håndtere dette.

Agent til mappearkivering

Denne dialog har et faneblad til hver af dine konfigurerede konti, herunder Lokale mapper, og du skal indstille alle de konti, som du vil bruge denne funktion på.

Feltet Aktivér lader dig slå mappeagenten til og fra. Den er deaktiveret som standard. For at aktivere den skal du sætte et flueben i feltet.

Du kan angive placeringen af din arkivmappe ved at klikke på ikonet ved siden af feltet Arkivmappe og vælge den mappe, du vil bruge.

Du kunne for eksempel oprette en mappe ved navn "kvitteringer" ved at klikke på Ny undermappe... og skrive "kvitteringer" i dialogen. Du kan vælge en mappe hvor som helst, fx en mappe i Lokale mapper eller på din IMAP-server.

Du har flere muligheder for, hvordan e-mailene vil blive arkiveret.

  • Unik mappe - Bruger den valgte mappe sorteret efter dato
  • Mappe efter måneder - Opretter nye mapper i den valgte mappe hver måned.
  • Mapper efter år - Opretter nye mapper i den valgte mappe hvert år.

Når du nu modtager en kvittering kan du højreklikke på den og vælge Arkivér i menuen. E-mailen vil blive arkiveret i den arkivmappe du indstillede, så du let kan finde den senere.

Eksport

  • Værktøjer → Eksportér KMail-data...

Eller du kan køre pimsettingexporter som et selvstændigt program i programstarteren.

Denne funktion eksporterer indstillinger og lokale e-mails til en komprimeret fil.

Det er vigtigt for alle brugere at lave backup. Eksportør til PIM-indstillinger er et godt værktøj til at lave backup af dine indstillinger og e-mails eller flytte dem til en ny installation. Du kan også bruge Eksportør til PIM-indstillinger til at importere tidligere backups.

Eksportør til PIM-indstillinger

For at lave en backup skal du vælge Fil → Lav backup af data...; du vil blive bedt om at lukke alle kdepim-programmer ned.

Advarsel

Sørg for at lukke alle vinduer. Du kan miste data, hvis du ikke gør det.


Når du har lukket programmerne ned skal du klikke på Ja for at fortsætte eller Nej for at afbryde.

Du vil nu blive bedt om at give et navn til backup'en. Skriv navnet i tekstfeltet Fil, fx minemailindstillinger.

Data gemmes som en .zip-fil som standard. Hvis du ønsker en anden filtype, så fravælg Vælg filnavnendelse automatisk (.zip) og føj den ønskede endelse til dit filnavn.

Den næste skærm lader dig vælge hvad du vil have med i backup'en. Som standard er alt valgt.

Note

Tilvalget KMail → E-mails vil kun lave backup af e-mails i Lokale mapper; den vil blot lave backup af IMAP-indstillinger og downloade e-mails ved genopretning. Hvis du har e-mails på en IMAP-server, som du ønsker at lave backup af, så skal du bruge Agent til mappe-arkivering til at arkivere disse e-mails til en lokal mappe.


Den sidste skærm viser en logfil over backup-processen. Du kan lukke vinduet når du har tjekket logfilen og sikret dig, at at backup'en lykkedes.

For at genoprette din backup vælger du Fil → Genskab data... i pimsettingexporter.

Kodegenering med skabeloner

KDevelop bruger skabeloner til at generere kildekodefiler og for at undgå at skrive kode som gentages.

Opret en ny klasse

Den mest almindelige anvendelse af kodegenerering er formentlig at skrive en ny klasse. For at oprettet en ny klasse i et eksisterende projekt skal du højreklikke på projektmappen og vælge Opret fra skabelon. Den samme dialog kan startes fra menuen ved at vælge Fil -> Ny fra skabelon, men at bruge en projektmappe har den fordel, at basis-URL'en bliver sat for outputfilen. Vælg Klasse i afsnittet kategori og det sprog og den skabelon der ønskes i de andre to felter. Efter at du har valgt en klasseskabelon skal du angive detaljer om den nye klasse.

Først skal du angive en identifikator for klassen. Dette kan være en simpelt navn (som Bus) eller en komplet identifikator men navnerum (som Transportation::Bus). I det sidste tilfælde vil KDevelop fortolke identifikatoren og separere navnerummet fra det egentlige navn. I det samme vindue kan du tilføje den nye klasses basisklasser. Du bemærker måske, at nogle skabeloner selv vælger en basisklasse, men du kan frit fjerne den og du kan tilføje andre basisklasser. Du bør skrive hele nedarvningserklæringen her, hvilket afhænger af sproget, fx public QObject for C++, extends SomeClass for PHP og blot klassens navn for Python.

I det næste vindue kan du vælge bland de virtuelle metoder fra alle nedarvede klasser samt nogle standard konstruktorer, destruktorer og operatorer. Markér afkrydsningsfeltet vedsiden af en metodesignatur for at implementere denne metode i den nye klasse.

Når du klikker på Næste kommer du til et vindue, hvor du kan tilføje medlemmer til klassen. Afhængigt af den valgte skabelon vil de optræde som medlemsvariable i den nye klasse eller skabelonen vil oprette settere og gettere for dem. I sprog som C++, hvor variable skal erklæres skal du angive både type og navn for medlemmet som fx int number eller QString name. I andre sprog behøver du ikke at angive typen, men det er god praksis at have den med alligevel, for den valgte skabelon kan stadig drage nytte af det.

I de følgende vinduer kan du vælge licensen for din nye klasse, angive særlige oplysninger, som den valgte skabelon skal bruge og angive, hvor de genererede filer skal placeres. Du afslutter guiden ved at klikke Afslut, hvorefter den nye klasse genereres. De genererede filer vil blive åbnet i editoren, sådan at du kan begynde at arbejde med dem med det samme.

Efter at have oprettet en ny C++-klasse vil du få mulighed for at føje den til et projektmål. Vælg et mål i dialogvinduet eller annulér vinduet og føj filen til et mål manuelt.

Hvis du valgte skabelonen Qt Objekt, markerede nogle standardmetoder og tilføjede et par medlemsvariable, så skulle outputtet ligne det på billedet herunder.

Du kan se, at datamedlemmerne er blevet lavet om til Qt egenskaber med tilgangsfunktioner og Q_PROPERTY-makroer. Argumenter til setterfunktioner overgives endda ved const-reference, hvor det er passende. Desuden er en privat klasse blevet erklæret og en privat pointer oprettet med Q_DECLARE_PRIVATE. Alt dette gøres af skabelonen. Havde du valgt en anden skabelon, så havde resultatet nok set helt anderledes ud.

Opret en ny unittest

Selv om de fleste testsystemer kræver, at hver test også er en klasse, så har KDevelop en metode til at forenkle oprettelsen af enhedstest. For at oprette en ny test skal du højreklikke på en projektmappe og vælge Opret fra skabelon. I skabelonvalgsvinduet vælger du Test som kategori og derefter dit programmeringssprog og din skabelon og klikker så Næste.

Du bliver nu spurgt om testens navn og en liste af testtilfælde. For testilfældene skal du blot angive el liste med navne. Nogle enhedstestsystemer så som PyUnit og PHPUnit kræver, at testtilfældene starter med et specielt præfiks. I KDevelop er skabelonen ansvarlig for at tilføje præfikset, så du skal ikke føje det til testtilfældene her. Efter at have klikket på Næste skal du angive licens og outputplacering for de genererede filer; så bliver testen oprettet.

Enhedstest oprettet på denne måde vil ikke automatisk blive føjet til noget mål. Hvis du bruger CTest eller et andet testsystem, så sørg for at føje de nye filer til et mål. KDevelop giver dig en værktøjsvisning til enhedstests, som integrerer med CTest.

Andre filer

Selv om klasser og enhedstest får særlig opmærksomhed ved kodegenerering fra skabeloner, så kan samme metode bruges til enhver slags kildekodefiler. Du kan for eksempel bruge en skabelon til et Find-modul til CMake eller til en .desktop-fil. Dette kan gøres ved at vælge Opret fra skabelon og vælge den ønskede kategori og skabelon. Hvis du vælger en anden kategori end Klasse eller Test, så vil du kun få mulighed for at vælge licens, særlige oplysninger krævet af skabelonen samt placering af outputfiler. Som med klasser og test bliver filerne genereret og åbnet i editoren når du afslutter guiden.

Håndtering af skabeloner

I guiden Fil -> Ny fra skabelon kan du også downloade flere filskabeloner ved at klikke på knappen Hent flere skabeloner.... Dette åbner en Hent smarte nye ting-dialog, hvor du kan installere flere skabeloner samt opdatere eller fjerne dem. Der er også et konfigurationsmodul for skabeloner, som åbnes med menuen Indstillinger -> Indstil KDevelop -> Skabeloner. Her kan du håndtere både filskabeloner (forklaret ovenfor) og projektskabeloner (som bruges til at oprette nye projekter).

Du kan selvfølgelig altid oprette nye skabelober, hvis ingen af de tilgængelige skabeloner passer til dit projekt. Den nemmeste måde er nok at kopiere og modificere en eksisterende skabelon; du kan finde hjælp i den korte vejledning og det længere specifikationsdokument. For at kopiere en installeret skabelon åbner du skabelonhåndteringen ved Indstillinger -> Indstil KDevelop... -> Skabeloner, markerer den skabelon du vil kopiere og klikker på knappenExtract Template. Vælg en målmappe og klik på O.k., så bliver indholdet af skabelonen overført til den valgte mappe. Du kan nu redigere skabelonen ved at åben de overførte filer og modificere dem. Når du er færdig kan du importere dine nye skabeloner i KDevelop ved at åbne skabelonhåndteringen, gå til de relevante faneblad (enten Projektskabeloner eller Filskabeloner) og klikke på Indlæs skabelon. Åbn skabelonens beskrivelsesfil, som har filendelse .kdevtemplate eller .desktop. KDevelop vil komprimere filerne til et skabelonarkiv og importere skabelonen.

Note

Når du kopierer eksisterende skabeloner, så sørg for at omdøbe dem før du importerer dem igen. Ellers vil du enten overskrive den gamle skabelon eller vil ende med to skabeloner med samme navn. For at omdøbe en skabelon skal du omdøbe beskrivelsesfilen til noget, der ikke er brugt før (men bevar filendelsen) og ændre feltet Name i beskrivelsesfilen.


Hvis du ønsker at skrive en skabelon fra grunde, så kan du starte med et eksempel på en skabelon for C++-klasser ved at oprette et nyt projekt og vælge projektet C++Class Template i kategorien KDevelop.

Under konstruktion

Dette er en ny side, som er ved at blive færdiggjort!


Kodegenering med skabeloner

KDevelop bruger skabeloner til at generere kildekodefiler og for at undgå at skrive kode som gentages.

Opret en ny klasse

Den mest almindelige anvendelse af kodegenerering er formentlig at skrive en ny klasse. For at oprettet en ny klasse i et eksisterende projekt skal du højreklikke på projektmappen og vælge Opret fra skabelon.... Den samme dialog kan startes fra menuen ved at vælge Fil -> Ny fra skabelon..., men fordelen ved at bruge en projektmappe er, at basis-URL'en bliver sat for outputfilen. Vælg C++ i afsnittet "Sprog", og det framework og den skabelon der ønskes i de andre to felter. Nederst i dialoges ser du en forhåndsvisning af de filer, der vil blive genereret, og hvor du kan browse igennem disse filer. Efter at du har foretaget dine valg skal du angive detaljer om den nye klasse i dialogen "Basalt for klasse" efter at du har klikket på > Næste..

Først skal du angive en identifikator for klassen. Dette kan være en simpelt navn (som Bus) eller en komplet identifikator men navnerum (som Transportation::Bus). I det sidste tilfælde vil KDevelop fortolke identifikatoren og separere navnerummet fra det egentlige navn. I det samme vindue kan du tilføje den nye klasses basisklasser. Du bemærker måske, at nogle skabeloner selv vælger en basisklasse, men du kan frit fjerne den og du kan tilføje andre basisklasser. Du bør skrive hele nedarvningserklæringen her, hvilket afhænger af sproget, fx public QObject for C++, extends SomeClass for PHP og blot klassens navn for Python.

I det næste vindue kan du vælge bland de virtuelle metoder fra alle nedarvede klasser samt nogle standard konstruktorer, destruktorer og operatorer. Markér afkrydsningsfeltet ved siden af en metodesignatur for at implementere denne metode i den nye klasse.

Når du klikker på > Næste kommer du til dialogen "Medlemmer af klasse", hvor du kan tilføje medlemmer til klassen. Afhængigt af den valgte skabelon vil de optræde som medlemsvariable i den nye klasse eller skabelonen vil oprette egenskaber med settere og gettere for dem. I sprog som C++, hvor variable skal erklæres skal du angive både type og navn for medlemmet som fx int number eller QString name. I andre sprog behøver du ikke at angive typen, men det er god praksis at have den med alligevel, for den valgte skabelon kan stadig drage nytte af det.Du har også mulighed for at ændre rækkefølgen af klassens medlemmer ved at vælge et medlem og så klikke på enten Flyt op eller Flyt ned. Når filen genereres, så bruges den rækkefølge, som du har valgt.

I de følgende vinduer kan du vælge licensen for din nye klasse, angive særlige oplysninger, som den valgte skabelon skal bruge og angive, hvor de genererede filer skal placeres. Du afslutter guiden ved at klikke Afslut, hvorefter den nye klasse genereres. De genererede filer vil blive åbnet i editoren, sådan at du kan begynde at arbejde med dem med det samme.

Efter at have oprettet en ny C++-klasse vil du få mulighed for at føje den til et projektmål. Vælg et mål i dialogvinduet eller annulér vinduet og føj filen til et mål manuelt.

Hvis du valgte skabelonen Qt Objekt-underklasse, markeret nogle standardmetoder og tilføjede et par medlemsvariable, så skulle outputtet ligne det på billedet herunder. Alle de automatisk tilføjede dokumentationsheadere for hver klasse, funktion og dataelement er blevet fjernet for overskuelighedens skyld.

Du kan se, at datamedlemmerne er blevet lavet om til Qt egenskaber med tilgangsfunktioner og Q_PROPERTY-makroer. Argumenter til setterfunktioner overgives endda ved const-reference, hvor det er passende. Hvis du vælger QObject pimpl subclass, så bliver en privat klasse erklæret og en privat pointer oprettet med Q_DECLARE_PRIVATE. Alt dette gøres af skabelonen. Havde du valgt en anden skabelon, så havde resultatet nok set helt anderledes ud.

Opret en ny unittest

Selv om de fleste testsystemer kræver, at hver test også er en klasse, så har KDevelop en metode til at forenkle oprettelsen af enhedstest. For at oprette en ny test skal du højreklikke på en projektmappe og vælge Opret fra skabelon.... I dialogen Sprog og skabelon vælger du (programmerings-) Sprog, dit Framework og Skabelon og klikker så Næste.

Du bliver nu spurgt om testens navn og en liste af testtilfælde. For testilfældene skal du blot angive en liste med navne. Nogle unittestsystemer så som PyUnit og PHPUnit kræver, at testtilfældene starter med et specielt præfiks. I KDevelop er skabelonen ansvarlig for at tilføje præfikset, så du skal ikke føje det til testtilfældene her. Efter at have klikket på Næste skal du angive licens og outputplacering for de genererede filer; så bliver testen oprettet. Unittests, som oprettes på denne måde bliver ikke automatisk føjet til et mål.

Tilføjer du unittests, og en CMakeLists.txt-fil for at tilføje unittestene til projektet Bus, så får du følgende CMakeLists.txt for projektet Bus, mappen src og mappen tests:

  • Projektet Bus:
    cmake_minimum_required(VERSION 3.0)
    
    project(Bus LANGUAGES CXX)
    
    set(QT_REQUIRED_VERSION "5.14.0")
    find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED COMPONENTS Core Test)
    
    set(CMAKE_AUTOUIC ON)
    set(CMAKE_AUTOMOC ON)
    set(CMAKE_AUTORCC ON)
    
    set(CMAKE_CXX_STANDARD 11)
    set(CMAKE_CXX_STANDARD_REQUIRED ON)
    
    # Docs only available if this is the main app
    find_package(Doxygen)
    if(Doxygen_FOUND)
    	add_subdirectory(docs)
    else()
    	message(STATUS "Doxygen not found, not building docs")
    endif()
    
    add_subdirectory(src)
    
    enable_testing()
    add_subdirectory(tests)
    
  • src folder:
    set(HEADER_LIST "bus.h")
    add_executable(bus main.cpp bus.cpp)
    
    target_link_libraries(bus PRIVATE Qt5::Core)
    
  • mappen tests:
    include_directories("../src")
    
    add_executable(TestBus testbus.cpp ../src/bus.cpp)
    
    add_test(NAME TestBus COMMAND TestBus)
    
    target_link_libraries(TestBus PRIVATE Qt5::Test)
    

I filen testbus.h ser du de testtilfælde, som blev angivet i dialogen; testprefikset er blevet tilføjet af skabelonen:

class TestBus: public QObject
{
    Q_OBJECT

// each private slot is a test
private slots:
    // -- tests to run on slots --
    void testNumberOfPassengers();
    void testNameOfDriver();
    // -- tests to run on signals --
    void testNumberOfPassengersChanged();
    void testNameOfDriverChanged();
private:
    Transportation::Bus m_bus;
};

De færdiggjorte funktioner i testbus.cpp vises herunder:

  • testNumberOfPassengers
    void TestBus::testNumberOfPassengers()
    {
        m_bus.setNumberOfPassengers(1);
        QVERIFY(m_bus.numberOfPassengers() == 1);
    }
    
  • testNameOfDriver
    void TestBus::testNameOfDriver()
    {
        m_bus.setNameOfDriver(QString("Billy"));
        QVERIFY(m_bus.nameOfDriver() == QString("Billy"));
    }
    
  • testNumberOfPassengersChanged
    void TestBus::testNumberOfPassengersChanged()
    {
        // create spy object
        QSignalSpy spy1(&m_bus,
                        &Transportation::Bus::numberOfPassengersChanged);
        // now change the number of passengers
        m_bus.setNumberOfPassengers(4);
        // verify the check was made
        QVERIFY(m_bus.numberOfPassengers() == 4);
        // verify the signal was sent
        QCOMPARE(spy1.count(), 1);
    }
    
  • testNameOfDriverChanged
    void TestBus::testNameOfDriverChanged()
    {
        // create spy object
        QSignalSpy spy1(&m_bus,
                        &Transportation::Bus::nameOfDriverChanged);
        // now change the name of driver
        m_bus.setNameOfDriver(QString("Jim"));
        // verify the check was made
        QVERIFY(m_bus.nameOfDriver() == QString("Jim"));
        // verify the signal was sent
        QCOMPARE(spy1.count(), 1);
        
    }
    

At this point, running build on the project also builds the tests. You can run Bus and TestBus separately. Right clicking on the TestBus target gives a pop-up menu where you can select Execute As ... then Compiled Binary. This opens the Run tool view with the following output:

********* Start testing of TestBus *********
Config: Using QtTest library 5.14.1, Qt 5.14.1 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.4.0)
PASS   : TestBus::initTestCase()
PASS   : TestBus::testNumberOfPassengers()
PASS   : TestBus::testNameOfDriver()
PASS   : TestBus::testNumberOfPassengersChanged()
PASS   : TestBus::testNameOfDriverChanged()
PASS   : TestBus::cleanupTestCase()
Totals: 6 passed, 0 failed, 0 skipped, 0 blacklisted, 8ms
********* Finished testing of TestBus *********
*** Finished ***

Running the build, executable, and tests form the command line looks a little different. The tests are combined as one file test. Looking in build/Testing/Temporary you will find the LastTest.log that shows each test performed similar to above.

Hvis du bruger CTest eller et andet testsystem, så sørg for at føje de nye filer til et mål. KDevelop giver dig en værktøjsvisning til enhedstests, som integrerer med CTest.

Andre filer

Selv om klasser og enhedstest får særlig opmærksomhed ved kodegenerering fra skabeloner, så kan samme metode bruges til enhver slags kildekodefiler. Du kan for eksempel bruge en skabelon til et Find-modul til CMake eller til en .desktop-fil. Dette kan gøres ved at vælge Opret fra skabelon og vælge den ønskede kategori og skabelon. Hvis du vælger en anden kategori end Klasse eller Test, så vil du kun få mulighed for at vælge licens, særlige oplysninger krævet af skabelonen samt placering af outputfiler. Som med klasser og test bliver filerne genereret og åbnet i editoren når du afslutter guiden.

Håndtering af skabeloner

I guiden Fil -> Ny fra skabelon kan du også downloade flere filskabeloner ved at klikke på knappen Hent flere skabeloner.... Dette åbner en Hent smarte nye ting-dialog, hvor du kan installere flere skabeloner samt opdatere eller fjerne dem. Der er også et konfigurationsmodul for skabeloner, som åbnes med menuen Indstillinger -> Indstil KDevelop -> Skabeloner. Her kan du håndtere både filskabeloner (forklaret ovenfor) og projektskabeloner (som bruges til at oprette nye projekter).

Du kan selvfølgelig altid oprette nye skabeloner, hvis ingen af de tilgængelige skabeloner passer til dit projekt. Den nemmeste måde er nok at kopiere og modificere en eksisterende skabelon; du kan finde hjælp i den korte vejledning og det længere specifikationsdokument. For at kopiere en installeret skabelon åbner du skabelonhåndteringen ved Indstillinger -> Indstil KDevelop... -> Skabeloner, markerer den skabelon du vil kopiere og klikker på knappenExtract Template. Vælg en målmappe og klik på O.k., så bliver indholdet af skabelonen overført til den valgte mappe. Du kan nu redigere skabelonen ved at åben de overførte filer og modificere dem. Når du er færdig kan du importere dine nye skabeloner i KDevelop ved at åbne skabelonhåndteringen, gå til de relevante faneblad (enten Projektskabeloner eller Filskabeloner) og klikke på Indlæs skabelon. Åbn skabelonens beskrivelsesfil, som har filendelse .kdevtemplate eller .desktop. KDevelop vil komprimere filerne til et skabelonarkiv og importere skabelonen.

Note

Når du kopierer eksisterende skabeloner, så sørg for at omdøbe dem før du importerer dem igen. Ellers vil du enten overskrive den gamle skabelon eller vil ende med to skabeloner med samme navn. For at omdøbe en skabelon skal du omdøbe beskrivelsesfilen til noget, der ikke er brugt før (men bevar filendelsen) og ændre feltet Name i beskrivelsesfilen.


Hvis du ønsker at skrive en skabelon fra grunde, så kan du starte med et eksempel på en skabelon for C++-klasser ved at oprette et nyt projekt og vælge projektet C++Class Template i kategorien KDevelop.

There are 187 pages beginning with Ka-Kz but not Kd

Brug af mapper i KMail

Mapper i KMail


E-mail-mapper bruges til at organisere dine e-mails. Da du startede KMail op første gang blev Lokale mapper med indbakke, udbakke, Sendte e-mails, affald, kladder og skabeloner oprettet. Disse mapper har hver sin særlige funktion:

  • indbakke:

Her lægger KMail som standard dine nye e-mails når du får den til at tjekke din mail.

Note

IMAP-konti vil ikke bruge denne indbakke. Indbakken befinder sig på IMAP-serveren.


  • udbakke:

Her lægges e-mails mens de venter på at blive sendt videre. Bemærk, at du ikke må trække og slippe e-mails hertil for at sende dem; brug i stedet ikonet Send i brevskriver-vinduet.

  • sendte e.mails:

Som standard kopieres alle de beskeder du har sendt til denne mappe.

  • affald:

Som standard flyttes alle e-mails du sletter til denne mappe.

  • kladder:

ndeholder e-mails, som du er begyndt at skrive og så har gemt ved at vælge Brev → Gem som kladde.

  • skabeloner:

Denne mappe indeholder dine skabeloner, som oprettes med Brev → Gem som skabelon. Se mere om dette i Nye skabeloner i brevskriveren.

Change special folders for IMAP synchronisation

  • The trash folder can be configured for each IMAP from the Receiving accounts tab in the Accounts configuration panel.
Receiving accounts → Select the account → Click on "Modify" → select the Advanced tab 
  • The sent, drafts and templates folders can be configured for each identity from the Identities tab in the Accounts configuration panel.
Identities → Select the identity → Click on "Modify" → select the Advanced tab 

Opretning og brug af mapper

Organisér dine e-mails, fx postlister eller kvitteringer for regninger ved at oprette nye mapper. For at oprette en ny mappe vælger du menuen Mappe → Tilføj mappe... eller Tilføj mappe fra højrekliksmenuen. Der dukker så en dialog op, hvor du angiver den nye mappes navn i et tekstfelt. Hver mappe kan tilpasses fuldt ud, fx med visning, svar osv. i mappens egenskaber ved at markere den mappe du vil tilpasse i mappefeltet og vælge Mappeegenskaber i højrekliksmenuen. Find flere detaljer i afsnittet Mappeegenskaber.

For at flytte e-mails fra en mappe til en anden markerer du de e-mails du vil flytte og taster M eller vælger Brev → Flyt brev til. Der dukker nu en liste med mapper op; vælg den mappe, som du vil flytte e-mailene til. Du kan også flytte e-mails ved at trække dem fra brevoversigten til en mappe i mappelisten.

Hvis du har mapper, som ofte bruges, så kan du føje dem til favoritmappefeltet i øverste, venstre hjørne. Tilføj dem ved at vælge Føj til favoritmapper fra højrekliksmenuen.

Du kan oprette en virtuel mappe med søgeparametre ved at gå til Redigér → Find breve... eller Værktøjer → Find breve... eller taste S. Skriv dine søgekriterier i dialogen. Giv din søgning et navn i tekstfeltet Search folder name: for neden, fx e-mails med ordet Blog. Klik på knappen Søg. Klik herefter på knappen Åbn søgemappe. Mappen med dine resultater kan nu findes nederst i mappefeltet.

Du kan også oprette filtre til at flytte e-mails til givne mapper; det er en god måde at organisere e-mails efter postlister, afsender, emne og lignende. Se flere detaljer i Filtre....

Hvis du modtager HTML-formatterede e-mails fra kilder, som du har tillid til, fx en blog du abonnerer på og du gerne vil aktivere HTML-visning kun for disse e-mails, så kan du gøre følgende. Opret en ny mappe, lav et filter til at placere disse e-mails i den nye mappe, markér mappen og vælg Mappe → Foretræk HTML frem for klartekst.

Nogle almindelige mappefunktioner er:

  • Mappe → Flyt alle breve til affald

Flytter alle e-mailene i den markerede mappe til affaldsmappen.

  • Mappe → Arkivér mappe...

Opretter et arkiv af mappen. Se flere detaljer i Arkivér mapper....

  • Mappe → Slet mappen

Fjerner en mappe med alle dens e-mails og undermapper.

  • Mappe → Fjern gengangerbreve

Dette vil finde gengangere i den markerede mappe og slette dem.

There are 14 pages beginning with Kd

Menuen Redigér - Find

Denne funktion kan bruges til hurtigt at finde et eller flere klip i tidslinjen. For at kunne bruge den skal du være i tilstanden Projektmonitor. Klik på Redigér -> Find (eller brug tastaturgenvejen /) for at aktivere "find tekst mens du skriver" i ca. fem sekunder. Mens du skriver udføres succesive søgninger, som forsøger at matche navnet på et klip med det, du skriver. For eksempel vil tidslinjemarkøren flytte til det første klip i tidslinjen, når du skriver "0", da det er det første klip med et "0" i sit navn. Efter at du har skrevet "00" har markøren ikke bevæget sig, da klippet stadig matcher; men efter at du har skrevet "005" hopper markøren til det viste klip, da det er det første, det matcher alle tre tegn. Resultatet af din søgning vises i statuslinjens venstre hjørne. Hvis du ikke skriver i mere end fem sekunder deaktiveres "find tekst mens du skriver"-funktionen igen. Se Find Næste om, hvordan du finder flere matchende klip.



Der er også et søgevindue øverst i Projekttræet.

Denne klipfiltrering er uafhængig af menupunktet Redigér -> Find.

There are 245 pages beginning with L-J