@ -0,0 +1,100 @@
|
||||
[Desktop Entry]
|
||||
Type=Service
|
||||
Exec=blubb
|
||||
Comment=Ada Project
|
||||
Comment[br]=Raktres Ada
|
||||
Comment[ca]=Projecte Ada
|
||||
Comment[cs]=Ada projekt
|
||||
Comment[da]=Ada-projekt
|
||||
Comment[de]=Ada-Projekt für TDevelop
|
||||
Comment[el]=Έργο Ada
|
||||
Comment[es]=Proyecto Ada
|
||||
Comment[et]=Ada projekt
|
||||
Comment[eu]=Ada proiektua
|
||||
Comment[fa]=پروژۀ آدا
|
||||
Comment[fr]=Projet en Ada
|
||||
Comment[ga]=Tionscadal Ada
|
||||
Comment[gl]=Proxecto Ada
|
||||
Comment[hi]=एडीए परियोजना
|
||||
Comment[hu]=Ada-projekt
|
||||
Comment[is]=Ada verkefni
|
||||
Comment[it]=Progetto Ada
|
||||
Comment[ja]=Ada プロジェクト
|
||||
Comment[ms]=Projek Ada
|
||||
Comment[nds]=Ada-Projekt
|
||||
Comment[ne]=एडा परियोजना
|
||||
Comment[nl]=Ada-project
|
||||
Comment[pa]=Ada ਪ੍ਰੋਜੈਕਟ
|
||||
Comment[pl]=Projekt: Ada
|
||||
Comment[pt]=Projecto Ada
|
||||
Comment[pt_BR]=Projeto Ada
|
||||
Comment[ro]=Proiect Ada
|
||||
Comment[ru]=Проект Ada
|
||||
Comment[sk]=Ada projekt
|
||||
Comment[sl]=Projekt Ada
|
||||
Comment[sr]=Ada пројекат
|
||||
Comment[sr@Latn]=Ada projekat
|
||||
Comment[sv]=Ada-projekt
|
||||
Comment[ta]=அடா பிராஜக்ட்
|
||||
Comment[tg]=Лоиҳаи Ada
|
||||
Comment[tr]=Ada Projesi
|
||||
Comment[uz]=Ada loyihasi
|
||||
Comment[uz@cyrillic]=Ada лойиҳаси
|
||||
Comment[zh_CN]=Ada 工程
|
||||
Comment[zh_TW]=Ada 專案
|
||||
Name=KDevAdaProject
|
||||
Name[da]=TDevelop Ada-projekt
|
||||
Name[de]=Ada-Projekt (TDevelop)
|
||||
Name[fr]=Projet Ada pour TDevelop
|
||||
Name[hi]=के-डेव-एडीए-परियोजना
|
||||
Name[nds]=Ada-Projekt (TDevelop)
|
||||
Name[ne]=केडीई विकास एडा परियोजना
|
||||
Name[pl]=KDevProjektAda
|
||||
Name[sk]=KDevAdaProjekt
|
||||
Name[sv]=TDevelop Ada-projekt
|
||||
Name[ta]=கெடெவ் அடா பிராஜக்ட்
|
||||
Name[tg]=Лоиҳаи KDevAda
|
||||
Name[zh_TW]=TDevelop Ada 專案
|
||||
GenericName=Ada Project
|
||||
GenericName[br]=Raktres Ada
|
||||
GenericName[ca]=Projecte Ada
|
||||
GenericName[da]=Ada-projekt
|
||||
GenericName[de]=Ada-Projekt
|
||||
GenericName[el]=Έργο Ada
|
||||
GenericName[es]=Proyecto Ada
|
||||
GenericName[et]=Ada projekt
|
||||
GenericName[eu]=Ada proiektua
|
||||
GenericName[fa]=پروژۀ آدا
|
||||
GenericName[fr]=Projet en Ada
|
||||
GenericName[ga]=Tionscadal Ada
|
||||
GenericName[gl]=Proxecto Ada
|
||||
GenericName[hi]=एडीए परियोजना
|
||||
GenericName[hu]=Ada-projekt
|
||||
GenericName[is]=Ada verkefni
|
||||
GenericName[it]=Project con Ada
|
||||
GenericName[ja]=Ada プロジェクト
|
||||
GenericName[ms]=Projek Ada
|
||||
GenericName[nds]=Ada-Projekt
|
||||
GenericName[ne]=एडा परियोजना
|
||||
GenericName[nl]=Ada-project
|
||||
GenericName[pa]=Ada ਪ੍ਰੋਜੈਕਟ
|
||||
GenericName[pl]=Projekt: Ada
|
||||
GenericName[pt]=Projecto Ada
|
||||
GenericName[pt_BR]=Projeto Ada
|
||||
GenericName[ru]=Проект Ada
|
||||
GenericName[sk]=Ada projekt
|
||||
GenericName[sl]=Projekt Ada
|
||||
GenericName[sr]=Ada пројекат
|
||||
GenericName[sr@Latn]=Ada projekat
|
||||
GenericName[sv]=Ada-projekt
|
||||
GenericName[ta]=அடா பிராஜக்ட்
|
||||
GenericName[tg]=Лоиҳаи Ada
|
||||
GenericName[tr]=Ada Projesi
|
||||
GenericName[uz]=Ada loyihasi
|
||||
GenericName[uz@cyrillic]=Ada лойиҳаси
|
||||
GenericName[zh_CN]=Ada 工程
|
||||
GenericName[zh_TW]=Ada 專案
|
||||
ServiceTypes=TDevelop/Project
|
||||
X-TDE-Library=libkdevadaproject
|
||||
X-TDevelop-Version=5
|
||||
X-TDevelop-Language=Ada
|
@ -1,100 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Type=Service
|
||||
Exec=blubb
|
||||
Comment=Ada Project
|
||||
Comment[br]=Raktres Ada
|
||||
Comment[ca]=Projecte Ada
|
||||
Comment[cs]=Ada projekt
|
||||
Comment[da]=Ada-projekt
|
||||
Comment[de]=Ada-Projekt für TDevelop
|
||||
Comment[el]=Έργο Ada
|
||||
Comment[es]=Proyecto Ada
|
||||
Comment[et]=Ada projekt
|
||||
Comment[eu]=Ada proiektua
|
||||
Comment[fa]=پروژۀ آدا
|
||||
Comment[fr]=Projet en Ada
|
||||
Comment[ga]=Tionscadal Ada
|
||||
Comment[gl]=Proxecto Ada
|
||||
Comment[hi]=एडीए परियोजना
|
||||
Comment[hu]=Ada-projekt
|
||||
Comment[is]=Ada verkefni
|
||||
Comment[it]=Progetto Ada
|
||||
Comment[ja]=Ada プロジェクト
|
||||
Comment[ms]=Projek Ada
|
||||
Comment[nds]=Ada-Projekt
|
||||
Comment[ne]=एडा परियोजना
|
||||
Comment[nl]=Ada-project
|
||||
Comment[pa]=Ada ਪ੍ਰੋਜੈਕਟ
|
||||
Comment[pl]=Projekt: Ada
|
||||
Comment[pt]=Projecto Ada
|
||||
Comment[pt_BR]=Projeto Ada
|
||||
Comment[ro]=Proiect Ada
|
||||
Comment[ru]=Проект Ada
|
||||
Comment[sk]=Ada projekt
|
||||
Comment[sl]=Projekt Ada
|
||||
Comment[sr]=Ada пројекат
|
||||
Comment[sr@Latn]=Ada projekat
|
||||
Comment[sv]=Ada-projekt
|
||||
Comment[ta]=அடா பிராஜக்ட்
|
||||
Comment[tg]=Лоиҳаи Ada
|
||||
Comment[tr]=Ada Projesi
|
||||
Comment[uz]=Ada loyihasi
|
||||
Comment[uz@cyrillic]=Ada лойиҳаси
|
||||
Comment[zh_CN]=Ada 工程
|
||||
Comment[zh_TW]=Ada 專案
|
||||
Name=KDevAdaProject
|
||||
Name[da]=TDevelop Ada-projekt
|
||||
Name[de]=Ada-Projekt (TDevelop)
|
||||
Name[fr]=Projet Ada pour TDevelop
|
||||
Name[hi]=के-डेव-एडीए-परियोजना
|
||||
Name[nds]=Ada-Projekt (TDevelop)
|
||||
Name[ne]=केडीई विकास एडा परियोजना
|
||||
Name[pl]=KDevProjektAda
|
||||
Name[sk]=KDevAdaProjekt
|
||||
Name[sv]=TDevelop Ada-projekt
|
||||
Name[ta]=கெடெவ் அடா பிராஜக்ட்
|
||||
Name[tg]=Лоиҳаи KDevAda
|
||||
Name[zh_TW]=TDevelop Ada 專案
|
||||
GenericName=Ada Project
|
||||
GenericName[br]=Raktres Ada
|
||||
GenericName[ca]=Projecte Ada
|
||||
GenericName[da]=Ada-projekt
|
||||
GenericName[de]=Ada-Projekt
|
||||
GenericName[el]=Έργο Ada
|
||||
GenericName[es]=Proyecto Ada
|
||||
GenericName[et]=Ada projekt
|
||||
GenericName[eu]=Ada proiektua
|
||||
GenericName[fa]=پروژۀ آدا
|
||||
GenericName[fr]=Projet en Ada
|
||||
GenericName[ga]=Tionscadal Ada
|
||||
GenericName[gl]=Proxecto Ada
|
||||
GenericName[hi]=एडीए परियोजना
|
||||
GenericName[hu]=Ada-projekt
|
||||
GenericName[is]=Ada verkefni
|
||||
GenericName[it]=Project con Ada
|
||||
GenericName[ja]=Ada プロジェクト
|
||||
GenericName[ms]=Projek Ada
|
||||
GenericName[nds]=Ada-Projekt
|
||||
GenericName[ne]=एडा परियोजना
|
||||
GenericName[nl]=Ada-project
|
||||
GenericName[pa]=Ada ਪ੍ਰੋਜੈਕਟ
|
||||
GenericName[pl]=Projekt: Ada
|
||||
GenericName[pt]=Projecto Ada
|
||||
GenericName[pt_BR]=Projeto Ada
|
||||
GenericName[ru]=Проект Ada
|
||||
GenericName[sk]=Ada projekt
|
||||
GenericName[sl]=Projekt Ada
|
||||
GenericName[sr]=Ada пројекат
|
||||
GenericName[sr@Latn]=Ada projekat
|
||||
GenericName[sv]=Ada-projekt
|
||||
GenericName[ta]=அடா பிராஜக்ட்
|
||||
GenericName[tg]=Лоиҳаи Ada
|
||||
GenericName[tr]=Ada Projesi
|
||||
GenericName[uz]=Ada loyihasi
|
||||
GenericName[uz@cyrillic]=Ada лойиҳаси
|
||||
GenericName[zh_CN]=Ada 工程
|
||||
GenericName[zh_TW]=Ada 專案
|
||||
ServiceTypes=TDevelop/Project
|
||||
X-TDE-Library=libtdevadaproject
|
||||
X-TDevelop-Version=5
|
||||
X-TDevelop-Language=Ada
|
@ -0,0 +1,96 @@
|
||||
[Desktop Entry]
|
||||
Type=Service
|
||||
Exec=blubb
|
||||
Comment=Ant Project
|
||||
Comment[br]=Raktres Ant
|
||||
Comment[ca]=Projecte Ant
|
||||
Comment[cs]=Ant projekt
|
||||
Comment[da]=Ant-projekt
|
||||
Comment[de]=Ant-Projekt für TDevelop
|
||||
Comment[el]=Έργο Ant
|
||||
Comment[es]=Proyecto Ant
|
||||
Comment[et]=Ant projekt
|
||||
Comment[eu]=Ant proiektua
|
||||
Comment[fa]=پروژۀ Ant
|
||||
Comment[fr]=Projet avec Ant
|
||||
Comment[ga]=Comhad tionscadail Ant
|
||||
Comment[gl]=Proxecto Ant
|
||||
Comment[hi]=एएनटी परियोजना
|
||||
Comment[hu]=Ant-projekt
|
||||
Comment[is]=Ant verkefni
|
||||
Comment[it]=Progetto Ant
|
||||
Comment[ja]=Ant プロジェクト
|
||||
Comment[ms]=Projek Ant
|
||||
Comment[nds]=Ant-Projekt
|
||||
Comment[ne]=एन्ट परियोजना
|
||||
Comment[nl]=Ant-project
|
||||
Comment[pa]=Ant ਪ੍ਰੋਜੈਕਟ
|
||||
Comment[pl]=Projekt: Ant
|
||||
Comment[pt]=Projecto Ant
|
||||
Comment[pt_BR]=Projeto Ant
|
||||
Comment[ru]=Проект Ant
|
||||
Comment[sk]=Ant projekt
|
||||
Comment[sl]=Projekt Ant
|
||||
Comment[sr]=Ant пројекат
|
||||
Comment[sr@Latn]=Ant projekat
|
||||
Comment[sv]=Ant-projekt
|
||||
Comment[ta]=ஆன்ட்பிராஜக்ட்
|
||||
Comment[tg]=Лоиҳаи Ant
|
||||
Comment[tr]=Ant Projesi
|
||||
Comment[uz]=Ant loyihasi
|
||||
Comment[uz@cyrillic]=Ant лойиҳаси
|
||||
Comment[zh_CN]=Ant 工程
|
||||
Comment[zh_TW]=Ant 專案
|
||||
Name=KDevAntProject
|
||||
Name[da]=TDevelop Ant-projekt
|
||||
Name[de]=Ant-Projekt (TDevelop)
|
||||
Name[hi]=के-डेव-एएनटी-परियोजना
|
||||
Name[nds]=Ant-Projekt (TDevelop)
|
||||
Name[ne]=केडीई विकास एन्ट परियोजना
|
||||
Name[pl]=KDevProjektAnt
|
||||
Name[sk]=KDevAntProjekt
|
||||
Name[sv]=TDevelop Ant-projekt
|
||||
Name[ta]=கெடெவ்ஆன்ட் பிராஜக்ட்
|
||||
Name[tg]=Лоиҳаи KDevAnt
|
||||
Name[zh_TW]=TDevelop Ant 專案
|
||||
GenericName=Ant Project
|
||||
GenericName[br]=Raktres Ant
|
||||
GenericName[ca]=Projecte Ant
|
||||
GenericName[da]=Ant-projekt
|
||||
GenericName[de]=Ant-Projekt
|
||||
GenericName[el]=Έργο Ant
|
||||
GenericName[es]=Proyecto Ant
|
||||
GenericName[et]=Ant projekt
|
||||
GenericName[eu]=Ant proiektua
|
||||
GenericName[fa]=پروژۀ Ant
|
||||
GenericName[fr]=Projet avec Ant
|
||||
GenericName[ga]=Comhad tionscadail Ant
|
||||
GenericName[gl]=Proxecto Ant
|
||||
GenericName[hi]=एएनटी परियोजना
|
||||
GenericName[hu]=Ant-projekt
|
||||
GenericName[it]=Project con Ant
|
||||
GenericName[ja]=Ant プロジェクト
|
||||
GenericName[ms]=Projek Ant
|
||||
GenericName[nds]=Ant-Projekt
|
||||
GenericName[ne]=एन्ट परियोजना
|
||||
GenericName[nl]=Ant-project
|
||||
GenericName[pl]=Projekt: Ant
|
||||
GenericName[pt]=Projecto Ant
|
||||
GenericName[pt_BR]=Projeto Ant
|
||||
GenericName[ru]=Проект Ant
|
||||
GenericName[sk]=Ant projekt
|
||||
GenericName[sl]=Projekt Ant
|
||||
GenericName[sr]=Ant пројекат
|
||||
GenericName[sr@Latn]=Ant projekat
|
||||
GenericName[sv]=Ant-projekt
|
||||
GenericName[ta]=ஆன்ட்பிராஜக்ட்
|
||||
GenericName[tg]=Лоиҳаи Ant
|
||||
GenericName[tr]=Ant Projesi
|
||||
GenericName[uz]=Ant loyihasi
|
||||
GenericName[uz@cyrillic]=Ant лойиҳаси
|
||||
GenericName[zh_CN]=Ant 工程
|
||||
GenericName[zh_TW]=Ant 專案
|
||||
ServiceTypes=TDevelop/Project
|
||||
X-TDE-Library=libkdevantproject
|
||||
X-TDevelop-Version=5
|
||||
X-TDevelop-Args=
|
@ -1,96 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Type=Service
|
||||
Exec=blubb
|
||||
Comment=Ant Project
|
||||
Comment[br]=Raktres Ant
|
||||
Comment[ca]=Projecte Ant
|
||||
Comment[cs]=Ant projekt
|
||||
Comment[da]=Ant-projekt
|
||||
Comment[de]=Ant-Projekt für TDevelop
|
||||
Comment[el]=Έργο Ant
|
||||
Comment[es]=Proyecto Ant
|
||||
Comment[et]=Ant projekt
|
||||
Comment[eu]=Ant proiektua
|
||||
Comment[fa]=پروژۀ Ant
|
||||
Comment[fr]=Projet avec Ant
|
||||
Comment[ga]=Comhad tionscadail Ant
|
||||
Comment[gl]=Proxecto Ant
|
||||
Comment[hi]=एएनटी परियोजना
|
||||
Comment[hu]=Ant-projekt
|
||||
Comment[is]=Ant verkefni
|
||||
Comment[it]=Progetto Ant
|
||||
Comment[ja]=Ant プロジェクト
|
||||
Comment[ms]=Projek Ant
|
||||
Comment[nds]=Ant-Projekt
|
||||
Comment[ne]=एन्ट परियोजना
|
||||
Comment[nl]=Ant-project
|
||||
Comment[pa]=Ant ਪ੍ਰੋਜੈਕਟ
|
||||
Comment[pl]=Projekt: Ant
|
||||
Comment[pt]=Projecto Ant
|
||||
Comment[pt_BR]=Projeto Ant
|
||||
Comment[ru]=Проект Ant
|
||||
Comment[sk]=Ant projekt
|
||||
Comment[sl]=Projekt Ant
|
||||
Comment[sr]=Ant пројекат
|
||||
Comment[sr@Latn]=Ant projekat
|
||||
Comment[sv]=Ant-projekt
|
||||
Comment[ta]=ஆன்ட்பிராஜக்ட்
|
||||
Comment[tg]=Лоиҳаи Ant
|
||||
Comment[tr]=Ant Projesi
|
||||
Comment[uz]=Ant loyihasi
|
||||
Comment[uz@cyrillic]=Ant лойиҳаси
|
||||
Comment[zh_CN]=Ant 工程
|
||||
Comment[zh_TW]=Ant 專案
|
||||
Name=KDevAntProject
|
||||
Name[da]=TDevelop Ant-projekt
|
||||
Name[de]=Ant-Projekt (TDevelop)
|
||||
Name[hi]=के-डेव-एएनटी-परियोजना
|
||||
Name[nds]=Ant-Projekt (TDevelop)
|
||||
Name[ne]=केडीई विकास एन्ट परियोजना
|
||||
Name[pl]=KDevProjektAnt
|
||||
Name[sk]=KDevAntProjekt
|
||||
Name[sv]=TDevelop Ant-projekt
|
||||
Name[ta]=கெடெவ்ஆன்ட் பிராஜக்ட்
|
||||
Name[tg]=Лоиҳаи KDevAnt
|
||||
Name[zh_TW]=TDevelop Ant 專案
|
||||
GenericName=Ant Project
|
||||
GenericName[br]=Raktres Ant
|
||||
GenericName[ca]=Projecte Ant
|
||||
GenericName[da]=Ant-projekt
|
||||
GenericName[de]=Ant-Projekt
|
||||
GenericName[el]=Έργο Ant
|
||||
GenericName[es]=Proyecto Ant
|
||||
GenericName[et]=Ant projekt
|
||||
GenericName[eu]=Ant proiektua
|
||||
GenericName[fa]=پروژۀ Ant
|
||||
GenericName[fr]=Projet avec Ant
|
||||
GenericName[ga]=Comhad tionscadail Ant
|
||||
GenericName[gl]=Proxecto Ant
|
||||
GenericName[hi]=एएनटी परियोजना
|
||||
GenericName[hu]=Ant-projekt
|
||||
GenericName[it]=Project con Ant
|
||||
GenericName[ja]=Ant プロジェクト
|
||||
GenericName[ms]=Projek Ant
|
||||
GenericName[nds]=Ant-Projekt
|
||||
GenericName[ne]=एन्ट परियोजना
|
||||
GenericName[nl]=Ant-project
|
||||
GenericName[pl]=Projekt: Ant
|
||||
GenericName[pt]=Projecto Ant
|
||||
GenericName[pt_BR]=Projeto Ant
|
||||
GenericName[ru]=Проект Ant
|
||||
GenericName[sk]=Ant projekt
|
||||
GenericName[sl]=Projekt Ant
|
||||
GenericName[sr]=Ant пројекат
|
||||
GenericName[sr@Latn]=Ant projekat
|
||||
GenericName[sv]=Ant-projekt
|
||||
GenericName[ta]=ஆன்ட்பிராஜக்ட்
|
||||
GenericName[tg]=Лоиҳаи Ant
|
||||
GenericName[tr]=Ant Projesi
|
||||
GenericName[uz]=Ant loyihasi
|
||||
GenericName[uz@cyrillic]=Ant лойиҳаси
|
||||
GenericName[zh_CN]=Ant 工程
|
||||
GenericName[zh_TW]=Ant 專案
|
||||
ServiceTypes=TDevelop/Project
|
||||
X-TDE-Library=libtdevantproject
|
||||
X-TDevelop-Version=5
|
||||
X-TDevelop-Args=
|
@ -0,0 +1,97 @@
|
||||
[Desktop Entry]
|
||||
Type=Service
|
||||
Exec=blubb
|
||||
Comment=Automake Project
|
||||
Comment[br]=Raktres Automake
|
||||
Comment[ca]=Projecte Automake
|
||||
Comment[da]=Automake-projekt
|
||||
Comment[de]=Automake-Projekt für TDevelop
|
||||
Comment[el]=Έργο Automake
|
||||
Comment[es]=Proyecto de Automake
|
||||
Comment[et]=Automake'i project
|
||||
Comment[eu]=Automake proiektua
|
||||
Comment[fa]=پروژۀ Automake
|
||||
Comment[fr]=Projet avec Automake
|
||||
Comment[ga]=Comhad tionscadail Automake
|
||||
Comment[gl]=Proxecto Automake
|
||||
Comment[hi]=ऑटोमेक परियोजना
|
||||
Comment[hu]=Automake-projekt
|
||||
Comment[is]=Automake verkefni
|
||||
Comment[it]=Progetto per automake
|
||||
Comment[ja]=Automake プロジェクト
|
||||
Comment[ms]=Projek Automake
|
||||
Comment[nds]=Automake-Projekt
|
||||
Comment[ne]=स्वत: निर्माण परियोजना
|
||||
Comment[nl]=Automake-project
|
||||
Comment[pa]=ਆਟੋਮੈਕ ਪ੍ਰੋਜੈਕਟ
|
||||
Comment[pl]=Projekt: Automake
|
||||
Comment[pt]=Projecto Automake
|
||||
Comment[pt_BR]=Projeto Automake
|
||||
Comment[ru]=Проект Automake
|
||||
Comment[sk]=Automake projekt
|
||||
Comment[sl]=Projekt automake
|
||||
Comment[sr]=Automake пројекат
|
||||
Comment[sr@Latn]=Automake projekat
|
||||
Comment[sv]=Automake-projekt
|
||||
Comment[ta]=ஆட்டோமேக் பிராஜக்ட்
|
||||
Comment[tg]=Лоиҳаи Automake
|
||||
Comment[tr]=Automake Projesi
|
||||
Comment[uz]=Automake loyihasi
|
||||
Comment[uz@cyrillic]=Automake лойиҳаси
|
||||
Comment[zh_CN]=Automake 工程
|
||||
Comment[zh_TW]=Automake 專案
|
||||
Name=KDevAutoProject
|
||||
Name[da]=TDevelop Automake-projekt
|
||||
Name[de]=Automake-Projekt (TDevelop)
|
||||
Name[hi]=के-डेव-ऑटो-परियोजना
|
||||
Name[nds]=Automake-Projekt (TDevelop)
|
||||
Name[ne]=केडीई विकास स्वत: परियोजना
|
||||
Name[pl]=KDevProjektAuto
|
||||
Name[pt_BR]=KDevAutoProjeto
|
||||
Name[sk]=KDevAutoProjekt
|
||||
Name[sv]=TDevelop autoprojekt
|
||||
Name[ta]=கெடெவ்ஆட்டோ பிராஜக்ட்
|
||||
Name[tg]=Лоиҳаи KDevAuto
|
||||
Name[zh_TW]=TDevelop Automake 專案
|
||||
GenericName=Automake Project
|
||||
GenericName[br]=Raktres Automake
|
||||
GenericName[ca]=Projecte Automake
|
||||
GenericName[da]=Automake-projekt
|
||||
GenericName[de]=Automake-Projekt
|
||||
GenericName[el]=Έργο Automake
|
||||
GenericName[es]=Proyecto de Automake
|
||||
GenericName[et]=Automake'i projekt
|
||||
GenericName[eu]=Automake proiektua
|
||||
GenericName[fa]=پروژۀ Automake
|
||||
GenericName[fr]=Projet avec Automake
|
||||
GenericName[ga]=Comhad tionscadail Automake
|
||||
GenericName[gl]=Proxecto Automake
|
||||
GenericName[hi]=ऑटोमेक परियोजना
|
||||
GenericName[hu]=Automake-projekt
|
||||
GenericName[it]=Progetto Automake
|
||||
GenericName[ja]=Automake プロジェクト
|
||||
GenericName[ms]=Projek Automake
|
||||
GenericName[nds]=Automake-Projekt
|
||||
GenericName[ne]=स्वत: निर्माण परियोजना
|
||||
GenericName[nl]=Automake-project
|
||||
GenericName[pl]=Projekt: Automake
|
||||
GenericName[pt]=Projecto de Automake
|
||||
GenericName[pt_BR]=Projeto Automake
|
||||
GenericName[ru]=Проект Automake
|
||||
GenericName[sk]=Automake projekt
|
||||
GenericName[sl]=Projekt automake
|
||||
GenericName[sr]=Automake пројекат
|
||||
GenericName[sr@Latn]=Automake projekat
|
||||
GenericName[sv]=Automake-projekt
|
||||
GenericName[ta]=ஆட்டோமேக் பிராஜக்ட்
|
||||
GenericName[tg]=Лоиҳаи Automake
|
||||
GenericName[tr]=Automake Projesi
|
||||
GenericName[uz]=Automake loyihasi
|
||||
GenericName[uz@cyrillic]=Automake лойиҳаси
|
||||
GenericName[zh_CN]=Automake 工程
|
||||
GenericName[zh_TW]=Automake 專案
|
||||
ServiceTypes=TDevelop/Project
|
||||
Icon=make
|
||||
X-TDE-Library=libkdevautoproject
|
||||
X-TDevelop-Version=5
|
||||
X-TDevelop-Args=
|
@ -0,0 +1,92 @@
|
||||
[Desktop Entry]
|
||||
Type=Service
|
||||
Exec=blubb
|
||||
Comment=TDE Automake Project
|
||||
Comment[br]=Raktres TDE Automake
|
||||
Comment[ca]=Projecte Automake per al TDE
|
||||
Comment[da]=TDE Automake-projekt
|
||||
Comment[de]=TDE-Automake-Projekt für TDevelop
|
||||
Comment[el]=Έργο TDE Automake
|
||||
Comment[es]=Proyecto de Automake de TDE
|
||||
Comment[et]=TDE automake'i projekt
|
||||
Comment[eu]=TDE automake proiektua
|
||||
Comment[fa]=پروژۀ TDE Automake
|
||||
Comment[fr]=Projet Automake pour TDE
|
||||
Comment[ga]=Tionscadal Automake TDE
|
||||
Comment[gl]=Proxecto Automake de TDE
|
||||
Comment[hi]=केडीई ऑटोमेक परियोजना
|
||||
Comment[hu]=TDE Automake-projekt
|
||||
Comment[is]=TDE Automake verkefni
|
||||
Comment[it]=Progetto TDE per automake
|
||||
Comment[ja]=TDE Automake プロジェクト
|
||||
Comment[ms]=Projek Automake TDE
|
||||
Comment[nds]=Automake-Projekt vun TDE
|
||||
Comment[ne]=केडीई स्वत: निर्माण परियोजना
|
||||
Comment[nl]=TDE Automake-project
|
||||
Comment[pt]=Projecto Automake do TDE
|
||||
Comment[pt_BR]=Projeto Automake do TDE
|
||||
Comment[ru]=Проект TDE Automake
|
||||
Comment[sk]=TDE Automake projekt
|
||||
Comment[sl]=Projekt TDE Automake
|
||||
Comment[sr]=TDE-ов Automake пројекат
|
||||
Comment[sr@Latn]=TDE-ov Automake projekat
|
||||
Comment[sv]=TDE Automake-projekt
|
||||
Comment[ta]=TDE ஆட்டோமேக் பிராஜக்ட்
|
||||
Comment[tg]=Лоиҳаи TDE Automake
|
||||
Comment[tr]=TDE Automake Projesi
|
||||
Comment[zh_CN]=TDE Automake 工程
|
||||
Comment[zh_TW]=TDE Automake 專案
|
||||
Name=KDevTDEAutoProject
|
||||
Name[da]=TDevelop TDE Automake-projekt
|
||||
Name[de]=TDE-Automake-Projekt (TDevelop)
|
||||
Name[hi]=के-डेव-केडीई-ऑटो-परियोजना
|
||||
Name[nds]=Automake-Projekt (TDE/TDevelop)
|
||||
Name[ne]=केडीई विकास केडीई स्वत: परियोजना
|
||||
Name[pl]=KDevProjektTDEAuto
|
||||
Name[pt_BR]=KDevTDEAutoProjeto
|
||||
Name[sk]=KDevAutoProjekt
|
||||
Name[sv]=TDevelop TDE-autoprojekt
|
||||
Name[ta]=கெடெவ்ஆட்டோ பிராஜக்ட்
|
||||
Name[tg]=Лоиҳаи худкори KDevTDEAuto
|
||||
Name[zh_TW]=TDevelop TDE Automake 專案
|
||||
GenericName=TDE Automake Project
|
||||
GenericName[br]=Raktres TDE Automake
|
||||
GenericName[ca]=Projecte Automake per al TDE
|
||||
GenericName[cs]=TDE Automake projekt
|
||||
GenericName[da]=TDE Automake-projekt
|
||||
GenericName[de]=TDE-Automake-Projekt
|
||||
GenericName[el]=Έργο TDE Automake
|
||||
GenericName[es]=Proyecto de Automake de TDE
|
||||
GenericName[et]=TDE automake'i projekt
|
||||
GenericName[eu]=TDE automake proiektua
|
||||
GenericName[fa]=پروژۀ TDE Automake
|
||||
GenericName[fr]=Projet avec Automake pour TDE
|
||||
GenericName[ga]=Tionscadal Automake TDE
|
||||
GenericName[gl]=Proxecto Automake de TDE
|
||||
GenericName[hi]=केडीई ऑटोमेक परियोजना
|
||||
GenericName[hu]=TDE Automake-projekt
|
||||
GenericName[it]=Progetto TDE Automake
|
||||
GenericName[ja]=TDE Automake プロジェクト
|
||||
GenericName[ms]=Projek Automake TDE
|
||||
GenericName[nds]=Automake-Projekt vun TDE
|
||||
GenericName[ne]=केडीई स्वत: निर्माण परियोजना
|
||||
GenericName[nl]=TDE Automake-project
|
||||
GenericName[pl]=Projekt: TDE Automake
|
||||
GenericName[pt]=Projecto TDE com Automake
|
||||
GenericName[pt_BR]=Projeto Automake do TDE
|
||||
GenericName[ru]=Проект TDE Automake
|
||||
GenericName[sk]=TDE Automake projekt
|
||||
GenericName[sl]=Projekt TDE Automake
|
||||
GenericName[sr]=TDE-ов Automake пројекат
|
||||
GenericName[sr@Latn]=TDE-ov Automake projekat
|
||||
GenericName[sv]=TDE Automake-projekt
|
||||
GenericName[ta]=TDE ஆட்டோமேக் பிராஜக்ட்
|
||||
GenericName[tg]=Лоиҳаи TDE Automake
|
||||
GenericName[tr]=TDE Automake Projesi
|
||||
GenericName[zh_CN]=TDE Automake 工程
|
||||
GenericName[zh_TW]=TDE Automake 專案
|
||||
ServiceTypes=TDevelop/Project
|
||||
Icon=make
|
||||
X-TDE-Library=libkdevautoproject
|
||||
X-TDevelop-Version=5
|
||||
X-TDevelop-Args=kde
|
@ -1,97 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Type=Service
|
||||
Exec=blubb
|
||||
Comment=Automake Project
|
||||
Comment[br]=Raktres Automake
|
||||
Comment[ca]=Projecte Automake
|
||||
Comment[da]=Automake-projekt
|
||||
Comment[de]=Automake-Projekt für TDevelop
|
||||
Comment[el]=Έργο Automake
|
||||
Comment[es]=Proyecto de Automake
|
||||
Comment[et]=Automake'i project
|
||||
Comment[eu]=Automake proiektua
|
||||
Comment[fa]=پروژۀ Automake
|
||||
Comment[fr]=Projet avec Automake
|
||||
Comment[ga]=Comhad tionscadail Automake
|
||||
Comment[gl]=Proxecto Automake
|
||||
Comment[hi]=ऑटोमेक परियोजना
|
||||
Comment[hu]=Automake-projekt
|
||||
Comment[is]=Automake verkefni
|
||||
Comment[it]=Progetto per automake
|
||||
Comment[ja]=Automake プロジェクト
|
||||
Comment[ms]=Projek Automake
|
||||
Comment[nds]=Automake-Projekt
|
||||
Comment[ne]=स्वत: निर्माण परियोजना
|
||||
Comment[nl]=Automake-project
|
||||
Comment[pa]=ਆਟੋਮੈਕ ਪ੍ਰੋਜੈਕਟ
|
||||
Comment[pl]=Projekt: Automake
|
||||
Comment[pt]=Projecto Automake
|
||||
Comment[pt_BR]=Projeto Automake
|
||||
Comment[ru]=Проект Automake
|
||||
Comment[sk]=Automake projekt
|
||||
Comment[sl]=Projekt automake
|
||||
Comment[sr]=Automake пројекат
|
||||
Comment[sr@Latn]=Automake projekat
|
||||
Comment[sv]=Automake-projekt
|
||||
Comment[ta]=ஆட்டோமேக் பிராஜக்ட்
|
||||
Comment[tg]=Лоиҳаи Automake
|
||||
Comment[tr]=Automake Projesi
|
||||
Comment[uz]=Automake loyihasi
|
||||
Comment[uz@cyrillic]=Automake лойиҳаси
|
||||
Comment[zh_CN]=Automake 工程
|
||||
Comment[zh_TW]=Automake 專案
|
||||
Name=KDevAutoProject
|
||||
Name[da]=TDevelop Automake-projekt
|
||||
Name[de]=Automake-Projekt (TDevelop)
|
||||
Name[hi]=के-डेव-ऑटो-परियोजना
|
||||
Name[nds]=Automake-Projekt (TDevelop)
|
||||
Name[ne]=केडीई विकास स्वत: परियोजना
|
||||
Name[pl]=KDevProjektAuto
|
||||
Name[pt_BR]=KDevAutoProjeto
|
||||
Name[sk]=KDevAutoProjekt
|
||||
Name[sv]=TDevelop autoprojekt
|
||||
Name[ta]=கெடெவ்ஆட்டோ பிராஜக்ட்
|
||||
Name[tg]=Лоиҳаи KDevAuto
|
||||
Name[zh_TW]=TDevelop Automake 專案
|
||||
GenericName=Automake Project
|
||||
GenericName[br]=Raktres Automake
|
||||
GenericName[ca]=Projecte Automake
|
||||
GenericName[da]=Automake-projekt
|
||||
GenericName[de]=Automake-Projekt
|
||||
GenericName[el]=Έργο Automake
|
||||
GenericName[es]=Proyecto de Automake
|
||||
GenericName[et]=Automake'i projekt
|
||||
GenericName[eu]=Automake proiektua
|
||||
GenericName[fa]=پروژۀ Automake
|
||||
GenericName[fr]=Projet avec Automake
|
||||
GenericName[ga]=Comhad tionscadail Automake
|
||||
GenericName[gl]=Proxecto Automake
|
||||
GenericName[hi]=ऑटोमेक परियोजना
|
||||
GenericName[hu]=Automake-projekt
|
||||
GenericName[it]=Progetto Automake
|
||||
GenericName[ja]=Automake プロジェクト
|
||||
GenericName[ms]=Projek Automake
|
||||
GenericName[nds]=Automake-Projekt
|
||||
GenericName[ne]=स्वत: निर्माण परियोजना
|
||||
GenericName[nl]=Automake-project
|
||||
GenericName[pl]=Projekt: Automake
|
||||
GenericName[pt]=Projecto de Automake
|
||||
GenericName[pt_BR]=Projeto Automake
|
||||
GenericName[ru]=Проект Automake
|
||||
GenericName[sk]=Automake projekt
|
||||
GenericName[sl]=Projekt automake
|
||||
GenericName[sr]=Automake пројекат
|
||||
GenericName[sr@Latn]=Automake projekat
|
||||
GenericName[sv]=Automake-projekt
|
||||
GenericName[ta]=ஆட்டோமேக் பிராஜக்ட்
|
||||
GenericName[tg]=Лоиҳаи Automake
|
||||
GenericName[tr]=Automake Projesi
|
||||
GenericName[uz]=Automake loyihasi
|
||||
GenericName[uz@cyrillic]=Automake лойиҳаси
|
||||
GenericName[zh_CN]=Automake 工程
|
||||
GenericName[zh_TW]=Automake 專案
|
||||
ServiceTypes=TDevelop/Project
|
||||
Icon=make
|
||||
X-TDE-Library=libtdevautoproject
|
||||
X-TDevelop-Version=5
|
||||
X-TDevelop-Args=
|
@ -1,92 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Type=Service
|
||||
Exec=blubb
|
||||
Comment=TDE Automake Project
|
||||
Comment[br]=Raktres TDE Automake
|
||||
Comment[ca]=Projecte Automake per al TDE
|
||||
Comment[da]=TDE Automake-projekt
|
||||
Comment[de]=TDE-Automake-Projekt für TDevelop
|
||||
Comment[el]=Έργο TDE Automake
|
||||
Comment[es]=Proyecto de Automake de TDE
|
||||
Comment[et]=TDE automake'i projekt
|
||||
Comment[eu]=TDE automake proiektua
|
||||
Comment[fa]=پروژۀ TDE Automake
|
||||
Comment[fr]=Projet Automake pour TDE
|
||||
Comment[ga]=Tionscadal Automake TDE
|
||||
Comment[gl]=Proxecto Automake de TDE
|
||||
Comment[hi]=केडीई ऑटोमेक परियोजना
|
||||
Comment[hu]=TDE Automake-projekt
|
||||
Comment[is]=TDE Automake verkefni
|
||||
Comment[it]=Progetto TDE per automake
|
||||
Comment[ja]=TDE Automake プロジェクト
|
||||
Comment[ms]=Projek Automake TDE
|
||||
Comment[nds]=Automake-Projekt vun TDE
|
||||
Comment[ne]=केडीई स्वत: निर्माण परियोजना
|
||||
Comment[nl]=TDE Automake-project
|
||||
Comment[pt]=Projecto Automake do TDE
|
||||
Comment[pt_BR]=Projeto Automake do TDE
|
||||
Comment[ru]=Проект TDE Automake
|
||||
Comment[sk]=TDE Automake projekt
|
||||
Comment[sl]=Projekt TDE Automake
|
||||
Comment[sr]=TDE-ов Automake пројекат
|
||||
Comment[sr@Latn]=TDE-ov Automake projekat
|
||||
Comment[sv]=TDE Automake-projekt
|
||||
Comment[ta]=TDE ஆட்டோமேக் பிராஜக்ட்
|
||||
Comment[tg]=Лоиҳаи TDE Automake
|
||||
Comment[tr]=TDE Automake Projesi
|
||||
Comment[zh_CN]=TDE Automake 工程
|
||||
Comment[zh_TW]=TDE Automake 專案
|
||||
Name=KDevTDEAutoProject
|
||||
Name[da]=TDevelop TDE Automake-projekt
|
||||
Name[de]=TDE-Automake-Projekt (TDevelop)
|
||||
Name[hi]=के-डेव-केडीई-ऑटो-परियोजना
|
||||
Name[nds]=Automake-Projekt (TDE/TDevelop)
|
||||
Name[ne]=केडीई विकास केडीई स्वत: परियोजना
|
||||
Name[pl]=KDevProjektTDEAuto
|
||||
Name[pt_BR]=KDevTDEAutoProjeto
|
||||
Name[sk]=KDevAutoProjekt
|
||||
Name[sv]=TDevelop TDE-autoprojekt
|
||||
Name[ta]=கெடெவ்ஆட்டோ பிராஜக்ட்
|
||||
Name[tg]=Лоиҳаи худкори KDevTDEAuto
|
||||
Name[zh_TW]=TDevelop TDE Automake 專案
|
||||
GenericName=TDE Automake Project
|
||||
GenericName[br]=Raktres TDE Automake
|
||||
GenericName[ca]=Projecte Automake per al TDE
|
||||
GenericName[cs]=TDE Automake projekt
|
||||
GenericName[da]=TDE Automake-projekt
|
||||
GenericName[de]=TDE-Automake-Projekt
|
||||
GenericName[el]=Έργο TDE Automake
|
||||
GenericName[es]=Proyecto de Automake de TDE
|
||||
GenericName[et]=TDE automake'i projekt
|
||||
GenericName[eu]=TDE automake proiektua
|
||||
GenericName[fa]=پروژۀ TDE Automake
|
||||
GenericName[fr]=Projet avec Automake pour TDE
|
||||
GenericName[ga]=Tionscadal Automake TDE
|
||||
GenericName[gl]=Proxecto Automake de TDE
|
||||
GenericName[hi]=केडीई ऑटोमेक परियोजना
|
||||
GenericName[hu]=TDE Automake-projekt
|
||||
GenericName[it]=Progetto TDE Automake
|
||||
GenericName[ja]=TDE Automake プロジェクト
|
||||
GenericName[ms]=Projek Automake TDE
|
||||
GenericName[nds]=Automake-Projekt vun TDE
|
||||
GenericName[ne]=केडीई स्वत: निर्माण परियोजना
|
||||
GenericName[nl]=TDE Automake-project
|
||||
GenericName[pl]=Projekt: TDE Automake
|
||||
GenericName[pt]=Projecto TDE com Automake
|
||||
GenericName[pt_BR]=Projeto Automake do TDE
|
||||
GenericName[ru]=Проект TDE Automake
|
||||
GenericName[sk]=TDE Automake projekt
|
||||
GenericName[sl]=Projekt TDE Automake
|
||||
GenericName[sr]=TDE-ов Automake пројекат
|
||||
GenericName[sr@Latn]=TDE-ov Automake projekat
|
||||
GenericName[sv]=TDE Automake-projekt
|
||||
GenericName[ta]=TDE ஆட்டோமேக் பிராஜக்ட்
|
||||
GenericName[tg]=Лоиҳаи TDE Automake
|
||||
GenericName[tr]=TDE Automake Projesi
|
||||
GenericName[zh_CN]=TDE Automake 工程
|
||||
GenericName[zh_TW]=TDE Automake 專案
|
||||
ServiceTypes=TDevelop/Project
|
||||
Icon=make
|
||||
X-TDE-Library=libtdevautoproject
|
||||
X-TDevelop-Version=5
|
||||
X-TDevelop-Args=kde
|
@ -0,0 +1,30 @@
|
||||
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
|
||||
<kpartgui name="KDevCustomProject" version="7">
|
||||
<MenuBar>
|
||||
<Menu name="project" >
|
||||
<Action name="repopulate_project" />
|
||||
<Action name="addnewfiles_project" />
|
||||
</Menu>
|
||||
<Menu name="build" >
|
||||
<Action name="build_build" />
|
||||
<Action name="build_buildactivetarget" />
|
||||
<Action name="build_compilefile" />
|
||||
<Action name="build_target" />
|
||||
<Action name="build_install" />
|
||||
<Action name="build_installactivetarget" />
|
||||
<Action name="build_make_environment" />
|
||||
<Action name="build_clean" />
|
||||
<Separator/>
|
||||
<Action name="build_execute" />
|
||||
</Menu>
|
||||
</MenuBar>
|
||||
<ToolBar name="buildToolBar" noMerge="1">
|
||||
<Action name="build_build" group="build_operations" />
|
||||
<Action name="build_buildactivetarget" group="build_operations" />
|
||||
<Action name="build_compilefile" group="build_operations" />
|
||||
<Separator group="build_operations"/>
|
||||
<Action name="build_install" group="build_operations" />
|
||||
<Action name="build_execute" group="build_operations" />
|
||||
</ToolBar>
|
||||
</kpartgui>
|
||||
|
@ -1,30 +0,0 @@
|
||||
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
|
||||
<kpartgui name="TDevCustomProject" version="7">
|
||||
<MenuBar>
|
||||
<Menu name="project" >
|
||||
<Action name="repopulate_project" />
|
||||
<Action name="addnewfiles_project" />
|
||||
</Menu>
|
||||
<Menu name="build" >
|
||||
<Action name="build_build" />
|
||||
<Action name="build_buildactivetarget" />
|
||||
<Action name="build_compilefile" />
|
||||
<Action name="build_target" />
|
||||
<Action name="build_install" />
|
||||
<Action name="build_installactivetarget" />
|
||||
<Action name="build_make_environment" />
|
||||
<Action name="build_clean" />
|
||||
<Separator/>
|
||||
<Action name="build_execute" />
|
||||
</Menu>
|
||||
</MenuBar>
|
||||
<ToolBar name="buildToolBar" noMerge="1">
|
||||
<Action name="build_build" group="build_operations" />
|
||||
<Action name="build_buildactivetarget" group="build_operations" />
|
||||
<Action name="build_compilefile" group="build_operations" />
|
||||
<Separator group="build_operations"/>
|
||||
<Action name="build_install" group="build_operations" />
|
||||
<Action name="build_execute" group="build_operations" />
|
||||
</ToolBar>
|
||||
</kpartgui>
|
||||
|
@ -0,0 +1,38 @@
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) 2004 Alexander Dymo <adymo@kdevelop.org>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public License
|
||||
along with this library; see the file COPYING.LIB. If not, write to
|
||||
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
#include "kdevbuildtool.h"
|
||||
|
||||
#include <kdevmakefrontend.h>
|
||||
#include <kdevappfrontend.h>
|
||||
|
||||
KDevBuildTool::KDevBuildTool(const KDevPluginInfo* info, TQObject* parent, const char* name)
|
||||
:KDevProject(info, parent, name)
|
||||
{
|
||||
}
|
||||
|
||||
KDevMakeFrontend * KDevBuildTool::makeFrontend()
|
||||
{
|
||||
return extension<KDevMakeFrontend>("TDevelop/MakeFrontend");
|
||||
}
|
||||
|
||||
KDevAppFrontend * KDevBuildTool::appFrontend()
|
||||
{
|
||||
return extension<KDevAppFrontend>("TDevelop/AppFrontend");
|
||||
}
|
||||
|
@ -0,0 +1,41 @@
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) 1999-2001 Bernd Gehrmann <bernd@kdevelop.org>
|
||||
Copyright (C) 2004 Alexander Dymo <adymo@kdevelop.org>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public License
|
||||
along with this library; see the file COPYING.LIB. If not, write to
|
||||
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
#ifndef KDEVBUILDTOOL_H
|
||||
#define KDEVBUILDTOOL_H
|
||||
|
||||
#include <kdevproject.h>
|
||||
|
||||
class KDevMakeFrontend;
|
||||
class KDevAppFrontend;
|
||||
|
||||
/**Base class for KDevelop build tool support plugins.*/
|
||||
class KDevBuildTool: public KDevProject
|
||||
{
|
||||
public:
|
||||
KDevBuildTool(const KDevPluginInfo* info, TQObject* parent, const char* name);
|
||||
|
||||
/**@return The make frontend.*/
|
||||
KDevMakeFrontend *makeFrontend();
|
||||
/**@return The application frontend.*/
|
||||
KDevAppFrontend *appFrontend();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
@ -1,38 +0,0 @@
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) 2004 Alexander Dymo <adymo@kdevelop.org>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public License
|
||||
along with this library; see the file COPYING.LIB. If not, write to
|
||||
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
#include "tdevbuildtool.h"
|
||||
|
||||
#include <tdevmakefrontend.h>
|
||||
#include <tdevappfrontend.h>
|
||||
|
||||
TDevBuildTool::TDevBuildTool(const TDevPluginInfo* info, TQObject* parent, const char* name)
|
||||
:TDevProject(info, parent, name)
|
||||
{
|
||||
}
|
||||
|
||||
TDevMakeFrontend * TDevBuildTool::makeFrontend()
|
||||
{
|
||||
return extension<TDevMakeFrontend>("TDevelop/MakeFrontend");
|
||||
}
|
||||
|
||||
TDevAppFrontend * TDevBuildTool::appFrontend()
|
||||
{
|
||||
return extension<TDevAppFrontend>("TDevelop/AppFrontend");
|
||||
}
|
||||
|
@ -1,41 +0,0 @@
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) 1999-2001 Bernd Gehrmann <bernd@kdevelop.org>
|
||||
Copyright (C) 2004 Alexander Dymo <adymo@kdevelop.org>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public License
|
||||
along with this library; see the file COPYING.LIB. If not, write to
|
||||
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
#ifndef TDEVBUILDTOOL_H
|
||||
#define TDEVBUILDTOOL_H
|
||||
|
||||
#include <tdevproject.h>
|
||||
|
||||
class TDevMakeFrontend;
|
||||
class TDevAppFrontend;
|
||||
|
||||
/**Base class for KDevelop build tool support plugins.*/
|
||||
class TDevBuildTool: public TDevProject
|
||||
{
|
||||
public:
|
||||
TDevBuildTool(const TDevPluginInfo* info, TQObject* parent, const char* name);
|
||||
|
||||
/**@return The make frontend.*/
|
||||
TDevMakeFrontend *makeFrontend();
|
||||
/**@return The application frontend.*/
|
||||
TDevAppFrontend *appFrontend();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,95 @@
|
||||
[Desktop Entry]
|
||||
Type=Service
|
||||
Exec=blubb
|
||||
Comment=QMake Project
|
||||
Comment[br]=Raktres QMake
|
||||
Comment[ca]=Projecte QMake
|
||||
Comment[da]=QMake-projekt
|
||||
Comment[de]=QMake-Projekt für TDevelop
|
||||
Comment[el]=Έργο QMake
|
||||
Comment[es]=Proyecto QMake
|
||||
Comment[et]=QMake projekt
|
||||
Comment[eu]=QMake proiektua
|
||||
Comment[fa]=پروژۀ QMake
|
||||
Comment[fr]=Projet avec QMake
|
||||
Comment[ga]=Tionscadal QMake
|
||||
Comment[gl]=Proxecto QMake
|
||||
Comment[hi]=क्यू-मेक परियोजना
|
||||
Comment[hu]=QMake-projekt
|
||||
Comment[is]=QMake verkefni
|
||||
Comment[it]=Progetto per QMake
|
||||
Comment[ja]=QMake プロジェクト
|
||||
Comment[ms]=Projek QMake
|
||||
Comment[nds]=QMake-Projekt
|
||||
Comment[ne]=QMake परियोजना
|
||||
Comment[nl]=QMake-project
|
||||
Comment[pa]=QMake ਪ੍ਰੋਜੈਕਟ
|
||||
Comment[pl]=Projekt: QMake
|
||||
Comment[pt]=Projecto QMake
|
||||
Comment[pt_BR]=Projeto QMake
|
||||
Comment[ru]=Проект QMake
|
||||
Comment[sk]=QMake projekt
|
||||
Comment[sl]=Projekt QMake
|
||||
Comment[sr]=QMake пројекат
|
||||
Comment[sr@Latn]=QMake projekat
|
||||
Comment[sv]=Qmake-projekt
|
||||
Comment[ta]=க்யுமேக் பிராஜக்ட்
|
||||
Comment[tg]=Лоиҳаи QMake
|
||||
Comment[tr]=QMake Projesi
|
||||
Comment[uz]=QMake loyihasi
|
||||
Comment[uz@cyrillic]=QMake лойиҳаси
|
||||
Comment[zh_CN]=QMake 工程
|
||||
Comment[zh_TW]=QMake 專案
|
||||
Name=KDevTrollProject
|
||||
Name[da]=TDevelop Troll-projekt
|
||||
Name[de]=QMake-Projekt (TDevelop)
|
||||
Name[hi]=के-डेव-ट्रॉल-परियोजना
|
||||
Name[nds]=QMake-Projekt (TDevelop)
|
||||
Name[ne]=KDevTroll परियोजना
|
||||
Name[pl]=KDevProjektTroll
|
||||
Name[sk]=KDevTrollProjekt
|
||||
Name[sv]=TDevelop Troll-projekt
|
||||
Name[ta]=கெடெவ் டிரால் பிராஜக்ட்
|
||||
Name[zh_TW]=TDevelop Troll 專案
|
||||
GenericName=QMake Project
|
||||
GenericName[br]=Raktres QMake
|
||||
GenericName[ca]=Projecte QMake
|
||||
GenericName[da]=QMake-projekt
|
||||
GenericName[de]=QMake-Projekt
|
||||
GenericName[el]=Έργο QMake
|
||||
GenericName[es]=Proyecto QMake
|
||||
GenericName[et]=QMake projekt
|
||||
GenericName[eu]=QMake proiektua
|
||||
GenericName[fa]=پروژۀ QMake
|
||||
GenericName[fr]=Projet avec QMake
|
||||
GenericName[ga]=Tionscadal QMake
|
||||
GenericName[gl]=Proxecto QMake
|
||||
GenericName[hi]=क्यू-मेक परियोजना
|
||||
GenericName[hu]=QMake-projekt
|
||||
GenericName[it]=Progetto per QMake
|
||||
GenericName[ja]=QMake プロジェクト
|
||||
GenericName[ms]=Projek QMake
|
||||
GenericName[nds]=QMake-Projekt
|
||||
GenericName[ne]=QMake परियोजना
|
||||
GenericName[nl]=QMake-project
|
||||
GenericName[pa]=QMake ਪ੍ਰੋਜੈਕਟ
|
||||
GenericName[pl]=Projekt: QMake
|
||||
GenericName[pt]=Projecto QMake
|
||||
GenericName[pt_BR]=Projeto QMake
|
||||
GenericName[ru]=Проект QMake
|
||||
GenericName[sk]=QMake projekt
|
||||
GenericName[sl]=Projekt QMake
|
||||
GenericName[sr]=QMake пројекат
|
||||
GenericName[sr@Latn]=QMake projekat
|
||||
GenericName[sv]=Qmake-projekt
|
||||
GenericName[ta]=க்யுமேக் பிராஜக்ட்
|
||||
GenericName[tg]=Лоиҳаи QMake
|
||||
GenericName[tr]=QMake Projesi
|
||||
GenericName[uz]=QMake loyihasi
|
||||
GenericName[uz@cyrillic]=QMake лойиҳаси
|
||||
GenericName[zh_CN]=QMake 工程
|
||||
GenericName[zh_TW]=QMake 專案
|
||||
ServiceTypes=TDevelop/Project
|
||||
X-TDE-Library=libkdevtrollproject
|
||||
X-TDevelop-Version=5
|
||||
X-TDevelop-Args=
|
@ -1,95 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Type=Service
|
||||
Exec=blubb
|
||||
Comment=QMake Project
|
||||
Comment[br]=Raktres QMake
|
||||
Comment[ca]=Projecte QMake
|
||||
Comment[da]=QMake-projekt
|
||||
Comment[de]=QMake-Projekt für TDevelop
|
||||
Comment[el]=Έργο QMake
|
||||
Comment[es]=Proyecto QMake
|
||||
Comment[et]=QMake projekt
|
||||
Comment[eu]=QMake proiektua
|
||||
Comment[fa]=پروژۀ QMake
|
||||
Comment[fr]=Projet avec QMake
|
||||
Comment[ga]=Tionscadal QMake
|
||||
Comment[gl]=Proxecto QMake
|
||||
Comment[hi]=क्यू-मेक परियोजना
|
||||
Comment[hu]=QMake-projekt
|
||||
Comment[is]=QMake verkefni
|
||||
Comment[it]=Progetto per QMake
|
||||
Comment[ja]=QMake プロジェクト
|
||||
Comment[ms]=Projek QMake
|
||||
Comment[nds]=QMake-Projekt
|
||||
Comment[ne]=QMake परियोजना
|
||||
Comment[nl]=QMake-project
|
||||
Comment[pa]=QMake ਪ੍ਰੋਜੈਕਟ
|
||||
Comment[pl]=Projekt: QMake
|
||||
Comment[pt]=Projecto QMake
|
||||
Comment[pt_BR]=Projeto QMake
|
||||
Comment[ru]=Проект QMake
|
||||
Comment[sk]=QMake projekt
|
||||
Comment[sl]=Projekt QMake
|
||||
Comment[sr]=QMake пројекат
|
||||
Comment[sr@Latn]=QMake projekat
|
||||
Comment[sv]=Qmake-projekt
|
||||
Comment[ta]=க்யுமேக் பிராஜக்ட்
|
||||
Comment[tg]=Лоиҳаи QMake
|
||||
Comment[tr]=QMake Projesi
|
||||
Comment[uz]=QMake loyihasi
|
||||
Comment[uz@cyrillic]=QMake лойиҳаси
|
||||
Comment[zh_CN]=QMake 工程
|
||||
Comment[zh_TW]=QMake 專案
|
||||
Name=KDevTrollProject
|
||||
Name[da]=TDevelop Troll-projekt
|
||||
Name[de]=QMake-Projekt (TDevelop)
|
||||
Name[hi]=के-डेव-ट्रॉल-परियोजना
|
||||
Name[nds]=QMake-Projekt (TDevelop)
|
||||
Name[ne]=KDevTroll परियोजना
|
||||
Name[pl]=KDevProjektTroll
|
||||
Name[sk]=KDevTrollProjekt
|
||||
Name[sv]=TDevelop Troll-projekt
|
||||
Name[ta]=கெடெவ் டிரால் பிராஜக்ட்
|
||||
Name[zh_TW]=TDevelop Troll 專案
|
||||
GenericName=QMake Project
|
||||
GenericName[br]=Raktres QMake
|
||||
GenericName[ca]=Projecte QMake
|
||||
GenericName[da]=QMake-projekt
|
||||
GenericName[de]=QMake-Projekt
|
||||
GenericName[el]=Έργο QMake
|
||||
GenericName[es]=Proyecto QMake
|
||||
GenericName[et]=QMake projekt
|
||||
GenericName[eu]=QMake proiektua
|
||||
GenericName[fa]=پروژۀ QMake
|
||||
GenericName[fr]=Projet avec QMake
|
||||
GenericName[ga]=Tionscadal QMake
|
||||
GenericName[gl]=Proxecto QMake
|
||||
GenericName[hi]=क्यू-मेक परियोजना
|
||||
GenericName[hu]=QMake-projekt
|
||||
GenericName[it]=Progetto per QMake
|
||||
GenericName[ja]=QMake プロジェクト
|
||||
GenericName[ms]=Projek QMake
|
||||
GenericName[nds]=QMake-Projekt
|
||||
GenericName[ne]=QMake परियोजना
|
||||
GenericName[nl]=QMake-project
|
||||
GenericName[pa]=QMake ਪ੍ਰੋਜੈਕਟ
|
||||
GenericName[pl]=Projekt: QMake
|
||||
GenericName[pt]=Projecto QMake
|
||||
GenericName[pt_BR]=Projeto QMake
|
||||
GenericName[ru]=Проект QMake
|
||||
GenericName[sk]=QMake projekt
|
||||
GenericName[sl]=Projekt QMake
|
||||
GenericName[sr]=QMake пројекат
|
||||
GenericName[sr@Latn]=QMake projekat
|
||||
GenericName[sv]=Qmake-projekt
|
||||
GenericName[ta]=க்யுமேக் பிராஜக்ட்
|
||||
GenericName[tg]=Лоиҳаи QMake
|
||||
GenericName[tr]=QMake Projesi
|
||||
GenericName[uz]=QMake loyihasi
|
||||
GenericName[uz@cyrillic]=QMake лойиҳаси
|
||||
GenericName[zh_CN]=QMake 工程
|
||||
GenericName[zh_TW]=QMake 專案
|
||||
ServiceTypes=TDevelop/Project
|
||||
X-TDE-Library=libtdevtrollproject
|
||||
X-TDevelop-Version=5
|
||||
X-TDevelop-Args=
|
@ -0,0 +1,12 @@
|
||||
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
|
||||
<kpartgui name="KDevCustomProject" version="2">
|
||||
<MenuBar>
|
||||
<Menu name="file" >
|
||||
<Action name="file_newfile" />
|
||||
</Menu>
|
||||
<Menu name="project" >
|
||||
<Action name="rescan" />
|
||||
</Menu>
|
||||
</MenuBar>
|
||||
</kpartgui>
|
||||
|
@ -1,12 +0,0 @@
|
||||
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
|
||||
<kpartgui name="TDevCustomProject" version="2">
|
||||
<MenuBar>
|
||||
<Menu name="file" >
|
||||
<Action name="file_newfile" />
|
||||
</Menu>
|
||||
<Menu name="project" >
|
||||
<Action name="rescan" />
|
||||
</Menu>
|
||||
</MenuBar>
|
||||
</kpartgui>
|
||||
|
@ -1,2 +1,2 @@
|
||||
SUBDIRS = tdevelop std extras tde_app_devel tdevdesigner
|
||||
SUBDIRS = tdevelop std extras kde_app_devel kdevdesigner
|
||||
|
||||
|
@ -1,3 +1,3 @@
|
||||
tocdir = ${kde_datadir}/tdevdocumentation/tocs
|
||||
tocdir = ${kde_datadir}/kdevdocumentation/tocs
|
||||
toc_DATA = w3c-dom-level2-html.toc w3c-svg.toc w3c-uaag10.toc
|
||||
|
||||
|
@ -0,0 +1,12 @@
|
||||
#################################################
|
||||
#
|
||||
# (C) 2010-2011 Serghei Amelian
|
||||
# serghei (DOT) amelian (AT) gmail.com
|
||||
#
|
||||
# Improvements and feedback are welcome
|
||||
#
|
||||
# This file is released under GPL >= 2
|
||||
#
|
||||
#################################################
|
||||
|
||||
tde_create_handbook( DESTINATION kde_app_devel )
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 267 B After Width: | Height: | Size: 267 B |
Before Width: | Height: | Size: 441 B After Width: | Height: | Size: 441 B |
Before Width: | Height: | Size: 185 B After Width: | Height: | Size: 185 B |
Before Width: | Height: | Size: 529 B After Width: | Height: | Size: 529 B |
Before Width: | Height: | Size: 569 B After Width: | Height: | Size: 569 B |
Before Width: | Height: | Size: 597 B After Width: | Height: | Size: 597 B |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
@ -0,0 +1,9 @@
|
||||
#################################################
|
||||
#
|
||||
# Improvements and feedback are welcome
|
||||
#
|
||||
# This file is released under GPL >= 2
|
||||
#
|
||||
#################################################
|
||||
|
||||
tde_create_handbook( DESTINATION kdevdesigner )
|
@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
|
||||
<!ENTITY kdevdesigner "<application>KDevDesigner</application>">
|
||||
<!ENTITY kappname "&kdevdesigner;">
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE">
|
||||
]>
|
||||
|
||||
<!-- Note: When updating this empty handbook, remember that usually most handbooks -->
|
||||
<!-- use the book model rather than article. Feel free to use article if the new handbook -->
|
||||
<!-- remains really short. -->
|
||||
|
||||
<article lang="&language;">
|
||||
<title>The &kdevdesigner; Handbook</title>
|
||||
|
||||
<articleinfo>
|
||||
<title>The &kdevdesigner; Handbook</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>&tde-authors;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<releaseinfo>&tde-release-version;</releaseinfo>
|
||||
<date>Reviewed: &tde-release-date;</date>
|
||||
|
||||
<copyright>
|
||||
<year>&tde-copyright-date;</year>
|
||||
<holder>&tde-team;</holder>
|
||||
</copyright>
|
||||
|
||||
<!-- <legalnotice>&FDLNotice;</legalnotice> -->
|
||||
|
||||
<abstract>
|
||||
<para>
|
||||
&kdevdesigner; is a GUI designer environment for &tde;.
|
||||
</para>
|
||||
</abstract>
|
||||
|
||||
<keywordset>
|
||||
<keyword>TDE</keyword>
|
||||
</keywordset>
|
||||
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="apologies">
|
||||
<title>We Apologize</title>
|
||||
<para>No documentation has yet been written for &kdevdesigner;.</para>
|
||||
|
||||
<para>If you need help, please check <ulink url="http://www.trinitydesktop.org">The &tde;
|
||||
web site</ulink>, submit questions to the <ulink url="http://www.trinitydesktop.org/mailinglist.php">
|
||||
&tde; mail lists</ulink>, or file a bug report at the <ulink url="http://bugs.trinitydesktop.org/">
|
||||
&tde; bug tracker</ulink>.</para>
|
||||
|
||||
<para>If you are interested in helping, please consider writing the help file.
|
||||
Submitting a basic text file is acceptable as the &tde-team; will convert the text.</para>
|
||||
|
||||
<para>Thank you for helping and thank you for your patience.</para>
|
||||
|
||||
&underFDL;
|
||||
|
||||
</sect1>
|
||||
|
||||
&documentation.index;
|
||||
</article>
|
@ -1,12 +0,0 @@
|
||||
#################################################
|
||||
#
|
||||
# (C) 2010-2011 Serghei Amelian
|
||||
# serghei (DOT) amelian (AT) gmail.com
|
||||
#
|
||||
# Improvements and feedback are welcome
|
||||
#
|
||||
# This file is released under GPL >= 2
|
||||
#
|
||||
#################################################
|
||||
|
||||
tde_create_handbook( DESTINATION tde_app_devel )
|
@ -1,2 +0,0 @@
|
||||
KDE_LANG = en
|
||||
KDE_DOCS = AUTO
|
@ -1,9 +0,0 @@
|
||||
#################################################
|
||||
#
|
||||
# Improvements and feedback are welcome
|
||||
#
|
||||
# This file is released under GPL >= 2
|
||||
#
|
||||
#################################################
|
||||
|
||||
tde_create_handbook( DESTINATION tdevassistant )
|
@ -1,65 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
|
||||
<!ENTITY tdevassistant "<application>TDevAssistant</application>">
|
||||
<!ENTITY kappname "&tdevassistant;">
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE">
|
||||
]>
|
||||
|
||||
<!-- Note: When updating this empty handbook, remember that usually most handbooks -->
|
||||
<!-- use the book model rather than article. Feel free to use article if the new handbook -->
|
||||
<!-- remains really short. -->
|
||||
|
||||
<article lang="&language;">
|
||||
<title>The &tdevassistant; Handbook</title>
|
||||
|
||||
<articleinfo>
|
||||
<title>The &tdevassistant; Handbook</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>&tde-authors;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<releaseinfo>&tde-release-version;</releaseinfo>
|
||||
<date>Reviewed: &tde-release-date;</date>
|
||||
|
||||
<copyright>
|
||||
<year>&tde-copyright-date;</year>
|
||||
<holder>&tde-team;</holder>
|
||||
</copyright>
|
||||
|
||||
<!-- <legalnotice>&FDLNotice;</legalnotice> -->
|
||||
|
||||
<abstract>
|
||||
<para>
|
||||
&tdevassistant; is a development documentation viewer for &tde;.
|
||||
</para>
|
||||
</abstract>
|
||||
|
||||
<keywordset>
|
||||
<keyword>TDE</keyword>
|
||||
</keywordset>
|
||||
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="apologies">
|
||||
<title>We Apologize</title>
|
||||
<para>No documentation has yet been written for &tdevassistant;.</para>
|
||||
|
||||
<para>If you need help, please check <ulink url="http://www.trinitydesktop.org">The &tde;
|
||||
web site</ulink>, submit questions to the <ulink url="http://www.trinitydesktop.org/mailinglist.php">
|
||||
&tde; mail lists</ulink>, or file a bug report at the <ulink url="http://bugs.trinitydesktop.org/">
|
||||
&tde; bug tracker</ulink>.</para>
|
||||
|
||||
<para>If you are interested in helping, please consider writing the help file.
|
||||
Submitting a basic text file is acceptable as the &tde-team; will convert the text.</para>
|
||||
|
||||
<para>Thank you for helping and thank you for your patience.</para>
|
||||
|
||||
&underFDL;
|
||||
|
||||
</sect1>
|
||||
|
||||
&documentation.index;
|
||||
</article>
|
@ -1,9 +0,0 @@
|
||||
#################################################
|
||||
#
|
||||
# Improvements and feedback are welcome
|
||||
#
|
||||
# This file is released under GPL >= 2
|
||||
#
|
||||
#################################################
|
||||
|
||||
tde_create_handbook( DESTINATION tdevdesigner )
|
@ -1,65 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
|
||||
<!ENTITY tdevdesigner "<application>TDevDesigner</application>">
|
||||
<!ENTITY kappname "&tdevdesigner;">
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE">
|
||||
]>
|
||||
|
||||
<!-- Note: When updating this empty handbook, remember that usually most handbooks -->
|
||||
<!-- use the book model rather than article. Feel free to use article if the new handbook -->
|
||||
<!-- remains really short. -->
|
||||
|
||||
<article lang="&language;">
|
||||
<title>The &tdevdesigner; Handbook</title>
|
||||
|
||||
<articleinfo>
|
||||
<title>The &tdevdesigner; Handbook</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>&tde-authors;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<releaseinfo>&tde-release-version;</releaseinfo>
|
||||
<date>Reviewed: &tde-release-date;</date>
|
||||
|
||||
<copyright>
|
||||
<year>&tde-copyright-date;</year>
|
||||
<holder>&tde-team;</holder>
|
||||
</copyright>
|
||||
|
||||
<!-- <legalnotice>&FDLNotice;</legalnotice> -->
|
||||
|
||||
<abstract>
|
||||
<para>
|
||||
&tdevdesigner; is a GUI designer environment for &tde;.
|
||||
</para>
|
||||
</abstract>
|
||||
|
||||
<keywordset>
|
||||
<keyword>TDE</keyword>
|
||||
</keywordset>
|
||||
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="apologies">
|
||||
<title>We Apologize</title>
|
||||
<para>No documentation has yet been written for &tdevdesigner;.</para>
|
||||
|
||||
<para>If you need help, please check <ulink url="http://www.trinitydesktop.org">The &tde;
|
||||
web site</ulink>, submit questions to the <ulink url="http://www.trinitydesktop.org/mailinglist.php">
|
||||
&tde; mail lists</ulink>, or file a bug report at the <ulink url="http://bugs.trinitydesktop.org/">
|
||||
&tde; bug tracker</ulink>.</para>
|
||||
|
||||
<para>If you are interested in helping, please consider writing the help file.
|
||||
Submitting a basic text file is acceptable as the &tde-team; will convert the text.</para>
|
||||
|
||||
<para>Thank you for helping and thank you for your patience.</para>
|
||||
|
||||
&underFDL;
|
||||
|
||||
</sect1>
|
||||
|
||||
&documentation.index;
|
||||
</article>
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
@ -1,13 +1,13 @@
|
||||
INCLUDES = -I$(top_srcdir)/lib/interfaces -I$(top_srcdir)/lib/util $(all_includes)
|
||||
|
||||
kde_module_LTLIBRARIES = libtdeveditorchooser.la
|
||||
libtdeveditorchooser_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN)
|
||||
libtdeveditorchooser_la_LIBADD = $(top_builddir)/lib/libtdevelop.la
|
||||
kde_module_LTLIBRARIES = libkdeveditorchooser.la
|
||||
libkdeveditorchooser_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN)
|
||||
libkdeveditorchooser_la_LIBADD = $(top_builddir)/lib/libtdevelop.la
|
||||
|
||||
libtdeveditorchooser_la_SOURCES = editorchooser_part.cpp editchooser.ui editorchooser_widget.cpp
|
||||
libkdeveditorchooser_la_SOURCES = editorchooser_part.cpp editchooser.ui editorchooser_widget.cpp
|
||||
|
||||
METASOURCES = AUTO
|
||||
|
||||
servicedir = $(kde_servicesdir)
|
||||
service_DATA = tdeveditorchooser.desktop
|
||||
service_DATA = kdeveditorchooser.desktop
|
||||
|
||||
|
@ -1,17 +1,17 @@
|
||||
INCLUDES = -I$(top_srcdir)/lib/interfaces \
|
||||
-I$(top_srcdir)/lib/interfaces/extensions -I$(top_srcdir)/lib/util $(all_includes)
|
||||
|
||||
kde_module_LTLIBRARIES = libtdevvisualboyadvance.la
|
||||
libtdevvisualboyadvance_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN)
|
||||
libtdevvisualboyadvance_la_LIBADD = $(top_builddir)/lib/libtdevelop.la
|
||||
kde_module_LTLIBRARIES = libkdevvisualboyadvance.la
|
||||
libkdevvisualboyadvance_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN)
|
||||
libkdevvisualboyadvance_la_LIBADD = $(top_builddir)/lib/libtdevelop.la
|
||||
|
||||
libtdevvisualboyadvance_la_SOURCES = visualboyadvance_part.cpp vbaconfigwidgetbase.ui vbaconfigwidget.cpp
|
||||
libkdevvisualboyadvance_la_SOURCES = visualboyadvance_part.cpp vbaconfigwidgetbase.ui vbaconfigwidget.cpp
|
||||
|
||||
METASOURCES = AUTO
|
||||
|
||||
servicedir = $(kde_servicesdir)
|
||||
service_DATA = tdevvisualboyadvance.desktop
|
||||
service_DATA = kdevvisualboyadvance.desktop
|
||||
|
||||
rcdir = $(kde_datadir)/tdevvisualboyadvance
|
||||
rc_DATA = tdevpart_visualboyadvance.rc
|
||||
rcdir = $(kde_datadir)/kdevvisualboyadvance
|
||||
rc_DATA = kdevpart_visualboyadvance.rc
|
||||
|
||||
|
@ -0,0 +1,4 @@
|
||||
KDevDesigner: Alexander Dymo <adymo@mksat.net>
|
||||
Qt Designer Copyright: (C) 2000-2003 Trolltech AS All Rights Reserved
|
||||
|
||||
|
@ -0,0 +1,25 @@
|
||||
KDevDesigner is a port of Qt Designer (code taken from Qt 3.3 distribution) to KDE technologies:
|
||||
1) XML GUI
|
||||
2) KParts
|
||||
3) KFileDialog
|
||||
4) TDEIconLoader
|
||||
|
||||
KDevDesigner consists of a part and a shell.
|
||||
Part can be used in Konqueror and KDevelop to edit and view ui files and projects.
|
||||
Shell loads a part with "in shell" argument so that the part can create projects and ui files.
|
||||
|
||||
Other important notes:
|
||||
KDevDesignerPart is Read/Write part which ignores readonly mode.
|
||||
Designer Editor plugins are not loaded.
|
||||
Available in system designer plugins are loaded if possible (tested with Qt 3.3 version).
|
||||
|
||||
KDevDesignerPart integration:
|
||||
KDevDesignerPart implements KInterfaceDesigner interface (defined in tdevelop/lib/external_interfaces).
|
||||
|
||||
WARNING:
|
||||
If you want to modify this code, try to introduce as few modifications to original Qt Designer code as possible.
|
||||
Write your own classes and wrappers instead. The goal is to ease syncronization between the port and original Qt Designer.
|
||||
Feel free to modify kdevdesigner_part.h(cpp) though.
|
||||
|
||||
FUTURE:
|
||||
Trolltech promises that Qt 4 will have easilly embeddable designer. If that happens, this port will be dropped for KDevelop 4.
|
@ -0,0 +1,107 @@
|
||||
#################################################
|
||||
#
|
||||
# (C) 2010-2011 Serghei Amelian
|
||||
# serghei (DOT) amelian (AT) gmail.com
|
||||
#
|
||||
# Improvements and feedback are welcome
|
||||
#
|
||||
# This file is released under GPL >= 2
|
||||
#
|
||||
#################################################
|
||||
|
||||
add_definitions( -DDESIGNER -UQT_NO_ASCII_CAST )
|
||||
|
||||
include_directories(
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_SOURCE_DIR}/kdevdesigner/shared
|
||||
${CMAKE_SOURCE_DIR}/lib/interfaces/external
|
||||
${TDE_INCLUDE_DIR}
|
||||
${TQT_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
link_directories(
|
||||
${TQT_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
|
||||
##### other data ################################
|
||||
|
||||
install( FILES
|
||||
kdevdesigner_part.desktop
|
||||
DESTINATION ${SERVICES_INSTALL_DIR} )
|
||||
|
||||
install( FILES
|
||||
kdevdesigner_part.rc kdevdesigner_part_sh.rc
|
||||
DESTINATION ${DATA_INSTALL_DIR}/kdevdesignerpart )
|
||||
|
||||
add_subdirectory( pics )
|
||||
|
||||
|
||||
##### libkdevdesignerpart (module) ##############
|
||||
|
||||
set( SRCS
|
||||
about.ui dbconnection.ui gotolinedialog.ui
|
||||
newform.ui actionlistview.cpp asciivalidator.cpp
|
||||
command.cpp connectionitems.cpp connectiontable.cpp
|
||||
customwidgeteditor.ui formsettings.ui
|
||||
multilineeditor.ui customwidgeteditorimpl.cpp
|
||||
database.cpp dbconnectioneditor.ui iconvieweditor.ui
|
||||
paletteeditor.ui dbconnectionimpl.cpp dbconnectionsimpl.cpp
|
||||
dbconnections.ui listboxeditor.ui paletteeditoradvanced.ui
|
||||
defs.cpp designerapp.cpp designerappiface.cpp
|
||||
editfunctionsimpl.cpp filechooser.cpp formfile.cpp
|
||||
formsettingsimpl.cpp formwindow.cpp hierarchyview.cpp
|
||||
iconvieweditorimpl.cpp layout.cpp listboxdnd.cpp
|
||||
kdevdesigner_part.cpp actiondnd.cpp actioneditorimpl.cpp
|
||||
listboxeditorimpl.cpp listboxrename.cpp listdnd.cpp
|
||||
listeditor.ui pixmapcollectioneditor.ui listviewdnd.cpp
|
||||
listvieweditorimpl.cpp mainwindow.cpp listvieweditor.ui
|
||||
pixmapfunction.ui startdialog.ui mainwindowactions.cpp
|
||||
menubareditor.cpp metadatabase.cpp multilineeditorimpl.cpp
|
||||
newformimpl.cpp orderindicator.cpp myiconloader.cpp
|
||||
outputwindow.cpp paletteeditoradvancedimpl.cpp
|
||||
paletteeditorimpl.cpp pixmapchooser.cpp
|
||||
pixmapcollection.cpp popupmenueditor.cpp previewframe.cpp
|
||||
preferences.ui tableeditor.ui designeraction.cpp
|
||||
previewwidget.ui variabledialog.ui actioneditor.ui
|
||||
previewwidgetimpl.cpp project.cpp projectsettingsimpl.cpp
|
||||
projectsettings.ui wizardeditor.ui configtoolboxdialog.ui
|
||||
propertyeditor.cpp propertyobject.cpp qcompletionedit.cpp
|
||||
replacedialog.ui connectiondialog.ui editfunctions.ui
|
||||
resource.cpp sizehandle.cpp sourceeditor.cpp
|
||||
richtextfontdialog.ui createtemplate.ui finddialog.ui
|
||||
sourcefile.cpp startdialogimpl.cpp styledbutton.cpp
|
||||
syntaxhighlighter_html.cpp tableeditorimpl.cpp
|
||||
timestamp.cpp variabledialogimpl.cpp widgetaction.cpp
|
||||
widgetfactory.cpp wizardeditorimpl.cpp workspace.cpp
|
||||
)
|
||||
|
||||
tde_moc( SRCS
|
||||
actiondnd.h actioneditorimpl.h actionlistview.h
|
||||
asciivalidator.h command.h connectionitems.h
|
||||
connectiontable.h customwidgeteditorimpl.h database.h
|
||||
dbconnectionimpl.h dbconnectionsimpl.h editfunctionsimpl.h
|
||||
filechooser.h formfile.h formsettingsimpl.h
|
||||
formwindow.h hierarchyview.h iconvieweditorimpl.h
|
||||
layout.h listboxdnd.h listboxeditorimpl.h listboxrename.h
|
||||
listdnd.h listviewdnd.h listvieweditorimpl.h mainwindow.h
|
||||
menubareditor.h multilineeditorimpl.h newformimpl.h
|
||||
orderindicator.h outputwindow.h paletteeditoradvancedimpl.h
|
||||
paletteeditorimpl.h pixmapchooser.h popupmenueditor.h
|
||||
previewframe.h previewwidgetimpl.h project.h
|
||||
projectsettingsimpl.h propertyeditor.h qcompletionedit.h
|
||||
sizehandle.h sourceeditor.h sourcefile.h startdialogimpl.h
|
||||
styledbutton.h tableeditorimpl.h timestamp.h
|
||||
variabledialogimpl.h widgetaction.h widgetfactory.h
|
||||
wizardeditorimpl.h workspace.h
|
||||
)
|
||||
|
||||
|
||||
tde_add_kpart( libkdevdesignerpart AUTOMOC
|
||||
SOURCES ${SRCS}
|
||||
LINK
|
||||
kdevqui-static shared-static kinterfacedesigner-shared
|
||||
tdeio-shared tdeparts-shared tqassistantclient
|
||||
DESTINATION ${PLUGIN_INSTALL_DIR}
|
||||
)
|
@ -0,0 +1,21 @@
|
||||
SUBDIRS = pics
|
||||
|
||||
AM_CXXFLAGS=-DDESIGNER
|
||||
KDE_CXXFLAGS=-UQT_NO_ASCII_CAST
|
||||
INCLUDES = -I$(top_srcdir)/kdevdesigner/shared \
|
||||
-I$(top_srcdir)/lib/interfaces/external $(all_includes)
|
||||
METASOURCES = AUTO
|
||||
kde_module_LTLIBRARIES = libkdevdesignerpart.la
|
||||
libkdevdesignerpart_la_LDFLAGS = $(KDE_PLUGIN) $(all_libraries)
|
||||
libkdevdesignerpart_la_LIBADD = \
|
||||
$(top_builddir)/kdevdesigner/uilib/libkdevqui.la $(top_builddir)/kdevdesigner/shared/libshared.la \
|
||||
$(top_builddir)/lib/interfaces/external/libkinterfacedesigner.la $(LIB_QT) $(LIB_TDECORE) $(LIB_TDEUI) -ltqassistantclient $(LIB_TDEFILE) $(LIB_TDEPARTS)
|
||||
libkdevdesignerpart_la_SOURCES = kdevdesigner_part.cpp actiondnd.cpp actioneditorimpl.cpp actionlistview.cpp asciivalidator.cpp command.cpp connectionitems.cpp connectiontable.cpp customwidgeteditorimpl.cpp database.cpp dbconnectionimpl.cpp dbconnectionsimpl.cpp defs.cpp designerapp.cpp designerappiface.cpp editfunctionsimpl.cpp filechooser.cpp formfile.cpp formsettingsimpl.cpp formwindow.cpp hierarchyview.cpp iconvieweditorimpl.cpp layout.cpp listboxdnd.cpp listboxeditorimpl.cpp listboxrename.cpp listdnd.cpp listviewdnd.cpp listvieweditorimpl.cpp mainwindow.cpp mainwindowactions.cpp menubareditor.cpp metadatabase.cpp multilineeditorimpl.cpp newformimpl.cpp orderindicator.cpp outputwindow.cpp paletteeditoradvancedimpl.cpp paletteeditorimpl.cpp pixmapchooser.cpp pixmapcollection.cpp popupmenueditor.cpp previewframe.cpp previewwidgetimpl.cpp project.cpp projectsettingsimpl.cpp propertyeditor.cpp propertyobject.cpp qcompletionedit.cpp resource.cpp sizehandle.cpp sourceeditor.cpp sourcefile.cpp startdialogimpl.cpp styledbutton.cpp syntaxhighlighter_html.cpp tableeditorimpl.cpp timestamp.cpp variabledialogimpl.cpp widgetaction.cpp widgetfactory.cpp wizardeditorimpl.cpp workspace.cpp about.ui dbconnection.ui gotolinedialog.ui newform.ui previewwidget.ui variabledialog.ui actioneditor.ui dbconnectioneditor.ui iconvieweditor.ui paletteeditor.ui projectsettings.ui wizardeditor.ui configtoolboxdialog.ui dbconnections.ui listboxeditor.ui paletteeditoradvanced.ui replacedialog.ui connectiondialog.ui editfunctions.ui listeditor.ui pixmapcollectioneditor.ui richtextfontdialog.ui createtemplate.ui finddialog.ui listvieweditor.ui pixmapfunction.ui startdialog.ui customwidgeteditor.ui formsettings.ui multilineeditor.ui preferences.ui tableeditor.ui designeraction.cpp myiconloader.cpp
|
||||
partrcdir = $(kde_datadir)/kdevdesignerpart
|
||||
partdesktopdir = $(kde_servicesdir)
|
||||
partdesktop_DATA = kdevdesigner_part.desktop
|
||||
partrc_DATA = kdevdesigner_part.rc kdevdesigner_part_sh.rc
|
||||
noinst_HEADERS = kdevdesigner_part.h designeraction.h myiconloader.h
|
||||
picsdirdir = $(kde_datadir)/kdevdesignerpart/pics
|
||||
|
||||
KDE_OPTIONS=nofinal
|
@ -0,0 +1,534 @@
|
||||
/**********************************************************************
|
||||
** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
|
||||
**
|
||||
** This file is part of TQt Designer.
|
||||
**
|
||||
** This file may be distributed and/or modified under the terms of the
|
||||
** GNU General Public License version 2 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file.
|
||||
**
|
||||
** Licensees holding valid TQt Enterprise Edition or TQt Professional Edition
|
||||
** licenses may use this file in accordance with the TQt Commercial License
|
||||
** Agreement provided with the Software.
|
||||
**
|
||||
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
**
|
||||
** See http://www.trolltech.com/gpl/ for GPL licensing information.
|
||||
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
|
||||
** information about TQt Commercial License Agreements.
|
||||
**
|
||||
** Contact info@trolltech.com if any conditions of this licensing are
|
||||
** not clear to you.
|
||||
**
|
||||
**********************************************************************/
|
||||
|
||||
#include "editfunctionsimpl.h"
|
||||
#include "formwindow.h"
|
||||
#include "metadatabase.h"
|
||||
#include "asciivalidator.h"
|
||||
#include "mainwindow.h"
|
||||
#include "hierarchyview.h"
|
||||
#include "project.h"
|
||||
|
||||
#include <kiconloader.h>
|
||||
#include <klineedit.h>
|
||||
#include "kdevdesigner_part.h"
|
||||
|
||||
#include <tqlistview.h>
|
||||
#include <tqpushbutton.h>
|
||||
#include <tqcombobox.h>
|
||||
#include <tqstrlist.h>
|
||||
#include <tqmessagebox.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqgroupbox.h>
|
||||
#include <tqheader.h>
|
||||
#include <tqcheckbox.h>
|
||||
|
||||
#include <tdelocale.h>
|
||||
|
||||
EditFunctions::EditFunctions( TQWidget *parent, FormWindow *fw, bool justSlots )
|
||||
: EditFunctionsBase( parent, 0, TRUE ), formWindow( fw )
|
||||
{
|
||||
connect( helpButton, TQT_SIGNAL( clicked() ), MainWindow::self, TQT_SLOT( showDialogHelp() ) );
|
||||
|
||||
id = 0;
|
||||
functList.clear();
|
||||
|
||||
TQValueList<MetaDataBase::Function> functionList = MetaDataBase::functionList( TQT_TQOBJECT(fw) );
|
||||
for ( TQValueList<MetaDataBase::Function>::Iterator it = functionList.begin(); it != functionList.end(); ++it ) {
|
||||
TQListViewItem *i = new TQListViewItem( functionListView );
|
||||
|
||||
i->setPixmap( 0, SmallIcon( "designer_editslots.png" , KDevDesignerPartFactory::instance()) );
|
||||
i->setText( 0, (*it).function );
|
||||
i->setText( 1, (*it).returnType );
|
||||
i->setText( 2, (*it).specifier );
|
||||
i->setText( 3, (*it).access );
|
||||
i->setText( 4, (*it).type );
|
||||
|
||||
FunctItem fui;
|
||||
fui.id = id;
|
||||
fui.oldName = (*it).function;
|
||||
fui.newName = fui.oldName;
|
||||
fui.oldRetTyp = (*it).returnType;
|
||||
fui.retTyp = fui.oldRetTyp;
|
||||
fui.oldSpec = (*it).specifier;
|
||||
fui.spec = fui.oldSpec;
|
||||
fui.oldAccess = (*it).access;
|
||||
fui.access = fui.oldAccess;
|
||||
fui.oldType = (*it).type;
|
||||
fui.type = fui.oldType;
|
||||
functList.append( fui );
|
||||
|
||||
functionIds.insert( i, id );
|
||||
id++;
|
||||
|
||||
if ( (*it).type == "slot" ) {
|
||||
if ( MetaDataBase::isSlotUsed( TQT_TQOBJECT(formWindow), MetaDataBase::normalizeFunction( (*it).function ).latin1() ) )
|
||||
i->setText( 5, i18n( "Yes" ) );
|
||||
else
|
||||
i->setText( 5, i18n( "No" ) );
|
||||
} else {
|
||||
i->setText( 5, "---" );
|
||||
}
|
||||
}
|
||||
|
||||
boxProperties->setEnabled( FALSE );
|
||||
functionName->setValidator( new AsciiValidator( TRUE, TQT_TQOBJECT(functionName) ) );
|
||||
|
||||
if ( functionListView->firstChild() )
|
||||
functionListView->setCurrentItem( functionListView->firstChild() );
|
||||
|
||||
showOnlySlots->setChecked( justSlots );
|
||||
lastType = "function";
|
||||
|
||||
// Enable rename for all TQListViewItems
|
||||
TQListViewItemIterator lvit = functionListView->firstChild();
|
||||
for ( ; *lvit; lvit++ )
|
||||
(*lvit)->setRenameEnabled( 0, TRUE );
|
||||
|
||||
// Connect listview signal to signal-relay
|
||||
TQObject::connect( functionListView,
|
||||
TQT_SIGNAL( itemRenamed( TQListViewItem*, int, const TQString & ) ),
|
||||
this,
|
||||
TQT_SLOT( emitItemRenamed(TQListViewItem*, int, const TQString&) ) );
|
||||
|
||||
// Connect signal-relay to TQLineEdit "functionName"
|
||||
TQObjectList *l = parent->queryList( TQLINEEDIT_OBJECT_NAME_STRING, "functionName" );
|
||||
TQObject *obj;
|
||||
TQObjectListIt itemsLineEditIt( *l );
|
||||
while ( (obj = itemsLineEditIt.current()) != 0 ) {
|
||||
++itemsLineEditIt;
|
||||
TQObject::connect( this,
|
||||
TQT_SIGNAL( itemRenamed( const TQString & ) ),
|
||||
obj,
|
||||
TQT_SLOT( setText( const TQString & ) ) );
|
||||
}
|
||||
delete l;
|
||||
}
|
||||
|
||||
void EditFunctions::okClicked()
|
||||
{
|
||||
TQValueList<MetaDataBase::Function> functionList = MetaDataBase::functionList( TQT_TQOBJECT(formWindow) );
|
||||
TQString n = i18n( "Add/Remove functions of '%1'" ).arg( formWindow->name() );
|
||||
TQPtrList<Command> commands;
|
||||
TQValueList<MetaDataBase::Function>::Iterator fit;
|
||||
if ( !functionList.isEmpty() ) {
|
||||
for ( fit = functionList.begin(); fit != functionList.end(); ++fit ) {
|
||||
bool functionFound = FALSE;
|
||||
TQValueList<FunctItem>::Iterator it = functList.begin();
|
||||
for ( ; it != functList.end(); ++it ) {
|
||||
if ( MetaDataBase::normalizeFunction( (*it).oldName ) ==
|
||||
MetaDataBase::normalizeFunction( (*fit).function ) ) {
|
||||
functionFound = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( !functionFound )
|
||||
commands.append( new RemoveFunctionCommand( i18n( "Remove Function" ),
|
||||
formWindow, (*fit).function, (*fit).specifier,
|
||||
(*fit).access,
|
||||
(*fit).type,
|
||||
formWindow->project()->language(),
|
||||
(*fit).returnType ) );
|
||||
}
|
||||
}
|
||||
|
||||
bool invalidFunctions = FALSE;
|
||||
TQValueList<FunctItem> invalidItems;
|
||||
|
||||
if ( !functList.isEmpty() ) {
|
||||
TQStrList lst;
|
||||
TQValueList<FunctItem>::Iterator it = functList.begin();
|
||||
for ( ; it != functList.end(); ++it ) {
|
||||
MetaDataBase::Function function;
|
||||
function.function = (*it).newName;
|
||||
function.returnType = (*it).retTyp;
|
||||
function.specifier = (*it).spec;
|
||||
function.access = (*it).access;
|
||||
function.type = (*it).type;
|
||||
function.language = formWindow->project()->language();
|
||||
if ( function.returnType.isEmpty() )
|
||||
function.returnType = "void";
|
||||
TQString s = function.function;
|
||||
s = s.simplifyWhiteSpace();
|
||||
bool startNum = s[ 0 ] >= '0' && s[ 0 ] <= '9';
|
||||
bool noParens = s.contains( '(' ) != 1 || s.contains( ')' ) != 1;
|
||||
bool illegalSpace = s.find( ' ' ) != -1 && s.find( ' ' ) < s.find( '(' );
|
||||
|
||||
if ( startNum || noParens || illegalSpace || lst.find( function.function ) != -1 ) {
|
||||
invalidFunctions = TRUE;
|
||||
invalidItems.append( (*it) );
|
||||
continue;
|
||||
}
|
||||
bool functionFound = FALSE;
|
||||
for ( fit = functionList.begin(); fit != functionList.end(); ++fit ) {
|
||||
if ( MetaDataBase::normalizeFunction( (*fit).function ) ==
|
||||
MetaDataBase::normalizeFunction( (*it).oldName ) ) {
|
||||
functionFound = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( !functionFound )
|
||||
commands.append( new AddFunctionCommand( i18n( "Add Function" ),
|
||||
formWindow, function.function, function.specifier,
|
||||
function.access,
|
||||
function.type, formWindow->project()->language(),
|
||||
function.returnType ) );
|
||||
if ( MetaDataBase::normalizeFunction( (*it).newName ) != MetaDataBase::normalizeFunction( (*it).oldName ) ||
|
||||
(*it).spec != (*it).oldSpec || (*it).access != (*it).oldAccess || (*it).type != (*it).oldType ||
|
||||
(*it).retTyp != (*it).oldRetTyp ) {
|
||||
TQString normalizedOldName = MetaDataBase::normalizeFunction( (*it).oldName );
|
||||
if ((*it).oldName.endsWith("const")) // make sure we get the 'const' when we remove the old name
|
||||
normalizedOldName += " const";
|
||||
commands.append( new ChangeFunctionAttribCommand( i18n( "Change Function Attributes" ),
|
||||
formWindow, function, normalizedOldName,
|
||||
(*it).oldSpec, (*it).oldAccess, (*it).oldType,
|
||||
formWindow->project()->language(), (*it).oldRetTyp ) );
|
||||
}
|
||||
lst.append( function.function );
|
||||
}
|
||||
}
|
||||
|
||||
if ( invalidFunctions ) {
|
||||
if ( TQMessageBox::information( this, i18n( "Edit Functions" ),
|
||||
i18n( "Some syntactically incorrect functions have been defined.\n"
|
||||
"Remove these functions?" ), i18n( "&Yes" ), i18n( "&No" ) ) == 0 ) {
|
||||
TQValueList<FunctItem>::Iterator it = functList.begin();
|
||||
while ( it != functList.end() ) {
|
||||
bool found = FALSE;
|
||||
TQValueList<FunctItem>::Iterator vit = invalidItems.begin();
|
||||
for ( ; vit != invalidItems.end(); ++vit ) {
|
||||
if ( (*vit).newName == (*it).newName ) {
|
||||
invalidItems.remove( vit );
|
||||
found = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( found ) {
|
||||
int delId = (*it).id;
|
||||
it = functList.remove( it );
|
||||
TQMap<TQListViewItem*, int>::Iterator fit = functionIds.begin();
|
||||
while ( fit != functionIds.end() ) {
|
||||
if ( *fit == delId ) {
|
||||
TQListViewItem *litem = fit.key();
|
||||
functionIds.remove( fit );
|
||||
delete litem;
|
||||
if ( functionListView->currentItem() )
|
||||
functionListView->setSelected( functionListView->currentItem(), TRUE );
|
||||
currentItemChanged( functionListView->currentItem() );
|
||||
break;
|
||||
}
|
||||
++fit;
|
||||
}
|
||||
}
|
||||
else
|
||||
++it;
|
||||
}
|
||||
if ( functionListView->firstChild() ) {
|
||||
functionListView->setCurrentItem( functionListView->firstChild() );
|
||||
functionListView->setSelected( functionListView->firstChild(), TRUE );
|
||||
}
|
||||
}
|
||||
formWindow->mainWindow()->objectHierarchy()->updateFormDefinitionView();
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !commands.isEmpty() ) {
|
||||
MacroCommand *cmd = new MacroCommand( n, formWindow, commands );
|
||||
formWindow->commandHistory()->addCommand( cmd );
|
||||
cmd->execute();
|
||||
}
|
||||
|
||||
formWindow->mainWindow()->objectHierarchy()->updateFormDefinitionView();
|
||||
accept();
|
||||
}
|
||||
|
||||
void EditFunctions::functionAdd( const TQString &access, const TQString &type )
|
||||
{
|
||||
TQListViewItem *i = new TQListViewItem( functionListView );
|
||||
i->setPixmap( 0, SmallIcon( "designer_editslots.png" , KDevDesignerPartFactory::instance()) );
|
||||
i->setRenameEnabled( 0, TRUE );
|
||||
i->setText( 1, "void" );
|
||||
i->setText( 2, "virtual" );
|
||||
|
||||
if ( access.isEmpty() )
|
||||
i->setText( 3, "public" );
|
||||
else
|
||||
i->setText( 3, access );
|
||||
|
||||
if( type.isEmpty() ) {
|
||||
if ( showOnlySlots->isChecked() )
|
||||
i->setText( 4, "slot" );
|
||||
else {
|
||||
i->setText( 4, lastType );
|
||||
}
|
||||
} else {
|
||||
i->setText( 4, type );
|
||||
}
|
||||
|
||||
if ( i->text( 4 ) == "slot" ) {
|
||||
i->setText( 0, "newSlot()" );
|
||||
if ( MetaDataBase::isSlotUsed( TQT_TQOBJECT(formWindow), "newSlot()" ) )
|
||||
i->setText( 5, i18n( "Yes" ) );
|
||||
else
|
||||
i->setText( 5, i18n( "No" ) );
|
||||
} else {
|
||||
i->setText( 0, "newFunction()" );
|
||||
i->setText( 5, "---" );
|
||||
}
|
||||
|
||||
functionListView->setCurrentItem( i );
|
||||
functionListView->setSelected( i, TRUE );
|
||||
functionListView->ensureItemVisible( i );
|
||||
functionName->setFocus();
|
||||
functionName->selectAll();
|
||||
|
||||
FunctItem fui;
|
||||
fui.id = id;
|
||||
fui.oldName = i->text( 0 );
|
||||
fui.newName = fui.oldName;
|
||||
fui.oldRetTyp = i->text( 1 );
|
||||
fui.retTyp = fui.oldRetTyp;
|
||||
fui.oldSpec = i->text ( 2 );
|
||||
fui.spec = fui.oldSpec;
|
||||
fui.oldAccess = i->text( 3 );
|
||||
fui.access = fui.oldAccess;
|
||||
fui.oldType = i->text( 4 );
|
||||
fui.type = fui.oldType;
|
||||
lastType = fui.oldType;
|
||||
functList.append( fui );
|
||||
functionIds.insert( i, id );
|
||||
id++;
|
||||
}
|
||||
|
||||
void EditFunctions::functionRemove()
|
||||
{
|
||||
if ( !functionListView->currentItem() )
|
||||
return;
|
||||
|
||||
functionListView->blockSignals( TRUE );
|
||||
removedFunctions << MetaDataBase::normalizeFunction( functionListView->currentItem()->text( 0 ) );
|
||||
int delId = functionIds[ functionListView->currentItem() ];
|
||||
TQValueList<FunctItem>::Iterator it = functList.begin();
|
||||
while ( it != functList.end() ) {
|
||||
if ( (*it).id == delId ) {
|
||||
functList.remove( it );
|
||||
break;
|
||||
}
|
||||
++it;
|
||||
}
|
||||
functionIds.remove( functionListView->currentItem() );
|
||||
delete functionListView->currentItem();
|
||||
if ( functionListView->currentItem() )
|
||||
functionListView->setSelected( functionListView->currentItem(), TRUE );
|
||||
functionListView->blockSignals( FALSE );
|
||||
currentItemChanged( functionListView->currentItem() );
|
||||
}
|
||||
|
||||
void EditFunctions::currentItemChanged( TQListViewItem *i )
|
||||
{
|
||||
functionName->blockSignals( TRUE );
|
||||
functionName->setText( "" );
|
||||
functionAccess->setCurrentItem( 0 );
|
||||
functionName->blockSignals( FALSE );
|
||||
|
||||
if ( !i ) {
|
||||
boxProperties->setEnabled( FALSE );
|
||||
return;
|
||||
}
|
||||
|
||||
functionName->blockSignals( TRUE );
|
||||
functionName->setText( i->text( 0 ) );
|
||||
editType->setText( i->text( 1 ) );
|
||||
TQString specifier = i->text( 2 );
|
||||
TQString access = i->text( 3 );
|
||||
TQString type = i->text( 4 );
|
||||
if ( specifier == "pure virtual" )
|
||||
functionSpecifier->setCurrentItem( 2 );
|
||||
else if ( specifier == "non virtual" )
|
||||
functionSpecifier->setCurrentItem( 0 );
|
||||
else if ( specifier == "virtual" )
|
||||
functionSpecifier->setCurrentItem( 1 );
|
||||
else
|
||||
functionSpecifier->setCurrentItem( 3 );
|
||||
if ( access == "private" )
|
||||
functionAccess->setCurrentItem( 2 );
|
||||
else if ( access == "protected" )
|
||||
functionAccess->setCurrentItem( 1 );
|
||||
else
|
||||
functionAccess->setCurrentItem( 0 );
|
||||
if ( type == "slot" )
|
||||
functionType->setCurrentItem( 0 );
|
||||
else
|
||||
functionType->setCurrentItem( 1 );
|
||||
|
||||
functionName->blockSignals( FALSE );
|
||||
boxProperties->setEnabled( TRUE );
|
||||
}
|
||||
|
||||
void EditFunctions::currentTextChanged( const TQString &txt )
|
||||
{
|
||||
if ( !functionListView->currentItem() )
|
||||
return;
|
||||
|
||||
changeItem( functionListView->currentItem(), Name, txt );
|
||||
functionListView->currentItem()->setText( 0, txt );
|
||||
|
||||
if ( functionListView->currentItem()->text( 4 ) == "slot" ) {
|
||||
if ( MetaDataBase::isSlotUsed( TQT_TQOBJECT(formWindow), MetaDataBase::normalizeFunction( txt.latin1() ).latin1() ) )
|
||||
functionListView->currentItem()->setText( 5, i18n( "Yes" ) );
|
||||
else
|
||||
functionListView->currentItem()->setText( 5, i18n( "No" ) );
|
||||
} else {
|
||||
functionListView->currentItem()->setText( 5, "---" );
|
||||
}
|
||||
}
|
||||
|
||||
void EditFunctions::currentSpecifierChanged( const TQString& s )
|
||||
{
|
||||
if ( !functionListView->currentItem() )
|
||||
return;
|
||||
|
||||
changeItem( functionListView->currentItem(), Specifier, s );
|
||||
functionListView->currentItem()->setText( 2, s );
|
||||
}
|
||||
|
||||
void EditFunctions::currentAccessChanged( const TQString& a )
|
||||
{
|
||||
if ( !functionListView->currentItem() )
|
||||
return;
|
||||
changeItem( functionListView->currentItem(), Access, a );
|
||||
functionListView->currentItem()->setText( 3, a );
|
||||
}
|
||||
|
||||
|
||||
void EditFunctions::currentReturnTypeChanged( const TQString &type )
|
||||
{
|
||||
if ( !functionListView->currentItem() )
|
||||
return;
|
||||
changeItem( functionListView->currentItem(), ReturnType, type );
|
||||
functionListView->currentItem()->setText( 1, type );
|
||||
}
|
||||
|
||||
void EditFunctions::currentTypeChanged( const TQString &type )
|
||||
{
|
||||
if ( !functionListView->currentItem() )
|
||||
return;
|
||||
changeItem( functionListView->currentItem(), Type, type );
|
||||
lastType = type;
|
||||
functionListView->currentItem()->setText( 4, type );
|
||||
if ( type == "slot" ) {
|
||||
if ( MetaDataBase::isSlotUsed( TQT_TQOBJECT(formWindow),
|
||||
MetaDataBase::normalizeFunction( functionListView->currentItem()->text( 0 ).latin1() ).latin1() ) )
|
||||
functionListView->currentItem()->setText( 5, i18n( "Yes" ) );
|
||||
else
|
||||
functionListView->currentItem()->setText( 5, i18n( "No" ) );
|
||||
} else {
|
||||
functionListView->currentItem()->setText( 5, "---" );
|
||||
}
|
||||
}
|
||||
|
||||
void EditFunctions::changeItem( TQListViewItem *item, Attribute a, const TQString &nV )
|
||||
{
|
||||
int itemId;
|
||||
TQMap<TQListViewItem*, int>::Iterator fit = functionIds.find( item );
|
||||
if ( fit != functionIds.end() )
|
||||
itemId = *fit;
|
||||
else
|
||||
return;
|
||||
|
||||
TQValueList<FunctItem>::Iterator it = functList.begin();
|
||||
for ( ; it != functList.end(); ++it ) {
|
||||
if ( (*it).id == itemId ) {
|
||||
switch( a ) {
|
||||
case Name:
|
||||
(*it).newName = nV;
|
||||
break;
|
||||
case Specifier:
|
||||
(*it).spec = nV;
|
||||
break;
|
||||
case Access:
|
||||
(*it).access = nV;
|
||||
break;
|
||||
case ReturnType:
|
||||
(*it).retTyp = nV;
|
||||
break;
|
||||
case Type:
|
||||
(*it).type = nV;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EditFunctions::setCurrentFunction( const TQString &function )
|
||||
{
|
||||
TQListViewItemIterator it( functionListView );
|
||||
while ( it.current() ) {
|
||||
if ( MetaDataBase::normalizeFunction( it.current()->text( 0 ) ) == function ) {
|
||||
functionListView->setCurrentItem( it.current() );
|
||||
functionListView->setSelected( it.current(), TRUE );
|
||||
currentItemChanged( it.current() );
|
||||
return;
|
||||
}
|
||||
++it;
|
||||
}
|
||||
}
|
||||
|
||||
void EditFunctions::displaySlots( bool justSlots )
|
||||
{
|
||||
functionIds.clear();
|
||||
functionListView->clear();
|
||||
for ( TQValueList<FunctItem>::Iterator it = functList.begin(); it != functList.end(); ++it ) {
|
||||
if ( (*it).type == "function" && justSlots )
|
||||
continue;
|
||||
TQListViewItem *i = new TQListViewItem( functionListView );
|
||||
functionIds.insert( i, (*it).id );
|
||||
i->setPixmap( 0, SmallIcon( "designer_editslots.png" , KDevDesignerPartFactory::instance()) );
|
||||
i->setText( 0, (*it).newName );
|
||||
i->setText( 1, (*it).retTyp );
|
||||
i->setText( 2, (*it).spec );
|
||||
i->setText( 3, (*it).access );
|
||||
i->setText( 4, (*it).type );
|
||||
|
||||
if ( (*it).type == "slot" ) {
|
||||
if ( MetaDataBase::isSlotUsed( TQT_TQOBJECT(formWindow), MetaDataBase::normalizeFunction( (*it).newName ).latin1() ) )
|
||||
i->setText( 5, i18n( "Yes" ) );
|
||||
else
|
||||
i->setText( 5, i18n( "No" ) );
|
||||
} else {
|
||||
i->setText( 5, "---" );
|
||||
}
|
||||
}
|
||||
|
||||
if ( functionListView->firstChild() )
|
||||
functionListView->setSelected( functionListView->firstChild(), TRUE );
|
||||
}
|
||||
|
||||
void EditFunctions::emitItemRenamed( TQListViewItem *, int, const TQString & text )
|
||||
{
|
||||
emit itemRenamed( text ); // Relay signal ( to TQLineEdit )
|
||||
}
|
@ -0,0 +1,905 @@
|
||||
/**********************************************************************
|
||||
** Copyright (C) 2000 Trolltech AS. All rights reserved.
|
||||
**
|
||||
** This file is part of TQt Designer.
|
||||
**
|
||||
** This file may be distributed and/or modified under the terms of the
|
||||
** GNU General Public License version 2 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file.
|
||||
**
|
||||
** Licensees holding valid TQt Enterprise Edition or TQt Professional Edition
|
||||
** licenses may use this file in accordance with the TQt Commercial License
|
||||
** Agreement provided with the Software.
|
||||
**
|
||||
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
**
|
||||
** See http://www.trolltech.com/gpl/ for GPL licensing information.
|
||||
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
|
||||
** information about TQt Commercial License Agreements.
|
||||
**
|
||||
** Contact info@trolltech.com if any conditions of this licensing are
|
||||
** not clear to you.
|
||||
**
|
||||
**********************************************************************/
|
||||
|
||||
#include "formfile.h"
|
||||
#include "timestamp.h"
|
||||
#include "project.h"
|
||||
#include "formwindow.h"
|
||||
#include "command.h"
|
||||
#include "sourceeditor.h"
|
||||
#include "mainwindow.h"
|
||||
#include "../interfaces/languageinterface.h"
|
||||
#include "resource.h"
|
||||
#include "workspace.h"
|
||||
#include <tqmessagebox.h>
|
||||
#include <tqfile.h>
|
||||
#include <tqstatusbar.h>
|
||||
#include "propertyeditor.h"
|
||||
#include <tqworkspace.h>
|
||||
#include <stdlib.h>
|
||||
#include "designerappiface.h"
|
||||
#include <tqapplication.h>
|
||||
|
||||
#include <tdefiledialog.h>
|
||||
#include <tdelocale.h>
|
||||
#include "kdevdesigner_part.h"
|
||||
|
||||
static TQString make_func_pretty( const TQString &s )
|
||||
{
|
||||
TQString res = s;
|
||||
if ( res.find( ")" ) - res.find( "(" ) == 1 )
|
||||
return res;
|
||||
res.replace( "(", "( " );
|
||||
res.replace( ")", " )" );
|
||||
res.replace( "&", " &" );
|
||||
res.replace( "*", " *" );
|
||||
res.replace( ",", ", " );
|
||||
res.replace( ":", " : " );
|
||||
res = res.simplifyWhiteSpace();
|
||||
res.replace( " : : ", "::" );
|
||||
res.replace( ">>", "> >" );
|
||||
return res;
|
||||
}
|
||||
|
||||
FormFile::FormFile( const TQString &fn, bool temp, Project *p, const char *name )
|
||||
: filename( fn ), fileNameTemp( temp ), pro( p ), fw( 0 ), ed( 0 ),
|
||||
timeStamp( 0, fn + codeExtension() ), codeEdited( FALSE ), pkg( FALSE ),
|
||||
cm( FALSE ), codeFileStat( None )
|
||||
{
|
||||
MetaDataBase::addEntry( this );
|
||||
fake = qstrcmp( name, "qt_fakewindow" ) == 0;
|
||||
//codeFileStat = FormFile::None;
|
||||
pro->addFormFile( this );
|
||||
loadCode();
|
||||
if ( !temp )
|
||||
checkFileName( FALSE );
|
||||
|
||||
connect(this, TQT_SIGNAL(somethingChanged(FormFile* )), this, TQT_SLOT(emitNewStatus(FormFile* )));
|
||||
}
|
||||
|
||||
FormFile::~FormFile()
|
||||
{
|
||||
pro->removeFormFile( this );
|
||||
if ( TQT_TQOBJECT(formWindow()) )
|
||||
formWindow()->setFormFile( 0 );
|
||||
}
|
||||
|
||||
void FormFile::setFormWindow( FormWindow *f )
|
||||
{
|
||||
if ( f == fw )
|
||||
return;
|
||||
if ( fw )
|
||||
fw->setFormFile( 0 );
|
||||
fw = f;
|
||||
if ( fw )
|
||||
fw->setFormFile( this );
|
||||
parseCode( cod, FALSE );
|
||||
TQTimer::singleShot( 0, this, TQT_SLOT( notifyFormWindowChange() ) );
|
||||
}
|
||||
|
||||
void FormFile::setEditor( SourceEditor *e )
|
||||
{
|
||||
ed = e;
|
||||
}
|
||||
|
||||
void FormFile::setFileName( const TQString &fn )
|
||||
{
|
||||
if ( fn == filename )
|
||||
return;
|
||||
if ( fn.isEmpty() ) {
|
||||
fileNameTemp = TRUE;
|
||||
if ( filename.find( "unnamed" ) != 0 )
|
||||
filename = createUnnamedFileName();
|
||||
return;
|
||||
} else {
|
||||
fileNameTemp = FALSE;
|
||||
}
|
||||
filename = fn;
|
||||
timeStamp.setFileName( filename + codeExtension() );
|
||||
cod = "";
|
||||
loadCode();
|
||||
}
|
||||
|
||||
void FormFile::setCode( const TQString &c )
|
||||
{
|
||||
cod = c;
|
||||
}
|
||||
|
||||
FormWindow *FormFile::formWindow() const
|
||||
{
|
||||
return fw;
|
||||
}
|
||||
|
||||
SourceEditor *FormFile::editor() const
|
||||
{
|
||||
return ed;
|
||||
}
|
||||
|
||||
TQString FormFile::fileName() const
|
||||
{
|
||||
return filename;
|
||||
}
|
||||
|
||||
TQString FormFile::absFileName() const
|
||||
{
|
||||
return pro->makeAbsolute( filename );
|
||||
}
|
||||
|
||||
TQString FormFile::codeFile() const
|
||||
{
|
||||
TQString codeExt = codeExtension();
|
||||
if ( codeExt.isEmpty() )
|
||||
return "";
|
||||
return filename + codeExt;
|
||||
}
|
||||
|
||||
TQString FormFile::code()
|
||||
{
|
||||
return cod;
|
||||
}
|
||||
|
||||
bool FormFile::save( bool withMsgBox, bool ignoreModified )
|
||||
{
|
||||
if ( fileNameTemp )
|
||||
return saveAs();
|
||||
if ( !ignoreModified && !isModified() )
|
||||
return TRUE;
|
||||
if ( ed )
|
||||
ed->save();
|
||||
|
||||
if ( TQT_TQOBJECT(formWindow()) && isModified( WFormWindow ) ) {
|
||||
if ( withMsgBox ) {
|
||||
if ( !formWindow()->checkCustomWidgets() )
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if ( TQFile::exists( pro->makeAbsolute( filename ) ) ) {
|
||||
TQString fn( pro->makeAbsolute( filename ) );
|
||||
#if defined(Q_OS_WIN32)
|
||||
fn += ".bak";
|
||||
#else
|
||||
fn += "~";
|
||||
#endif
|
||||
TQFile f( pro->makeAbsolute( filename ) );
|
||||
if ( f.open( IO_ReadOnly ) ) {
|
||||
TQFile f2( fn );
|
||||
if ( f2.open( IO_WriteOnly | IO_Translate ) ) {
|
||||
TQCString data( f.size() );
|
||||
f.readBlock( data.data(), f.size() );
|
||||
f2.writeBlock( data );
|
||||
} else {
|
||||
TQMessageBox::warning( MainWindow::self, i18n( "Save" ),
|
||||
i18n( "The file %1 could not be saved" ).arg( codeFile() ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( isModified( WFormCode ) ) {
|
||||
if ( TQFile::exists( pro->makeAbsolute( codeFile() ) ) ) {
|
||||
TQString fn( pro->makeAbsolute( codeFile() ) );
|
||||
#if defined(Q_OS_WIN32)
|
||||
fn += ".bak";
|
||||
#else
|
||||
fn += "~";
|
||||
#endif
|
||||
TQFile f( pro->makeAbsolute( codeFile() ) );
|
||||
if ( f.open( IO_ReadOnly ) ) {
|
||||
TQFile f2( fn );
|
||||
if ( f2.open( IO_WriteOnly | IO_Translate) ) {
|
||||
TQCString data( f.size() );
|
||||
f.readBlock( data.data(), f.size() );
|
||||
f2.writeBlock( data );
|
||||
} else if ( tqApp->type() != TQApplication::Tty ) {
|
||||
TQMessageBox::warning( MainWindow::self, i18n( "Save" ),
|
||||
i18n( "The file %1 could not be saved" ).arg( codeFile() ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( TQT_TQOBJECT(formWindow()) ) {
|
||||
Resource resource( MainWindow::self );
|
||||
resource.setWidget( formWindow() );
|
||||
bool formCodeOnly = isModified( WFormCode ) && !isModified( WFormWindow );
|
||||
if ( !resource.save( pro->makeAbsolute( filename ), formCodeOnly ) ) {
|
||||
if ( MainWindow::self )
|
||||
MainWindow::self->statusMessage( i18n( "Failed to save file '%1'.").arg( formCodeOnly ? codeFile(): filename ) );
|
||||
if ( formCodeOnly )
|
||||
return FALSE;
|
||||
return saveAs();
|
||||
}
|
||||
if ( MainWindow::self )
|
||||
MainWindow::self->statusMessage( i18n( "'%1' saved.").
|
||||
arg( formCodeOnly ? codeFile() : filename ));
|
||||
} else {
|
||||
if ( !Resource::saveFormCode(this, MetaDataBase::languageInterface(pro->language())) )
|
||||
return FALSE;
|
||||
}
|
||||
timeStamp.update();
|
||||
setModified( FALSE );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool FormFile::saveAs( bool ignoreModified )
|
||||
{
|
||||
TQString f = pro->makeAbsolute( fileName() );
|
||||
if ( fileNameTemp && TQT_TQOBJECT(formWindow()) ) {
|
||||
f = TQString( formWindow()->name() ).lower();
|
||||
f.replace( "::", "_" );
|
||||
f = pro->makeAbsolute( f + ".ui" );
|
||||
}
|
||||
bool saved = FALSE;
|
||||
if ( ignoreModified ) {
|
||||
TQString dir = TQStringList::split( ':', pro->iFace()->customSetting( "QTSCRIPT_PACKAGES" ) ).first();
|
||||
f = TQFileInfo( f ).fileName();
|
||||
f.prepend( dir + "/" );
|
||||
}
|
||||
TQString fn;
|
||||
while ( !saved ) {
|
||||
fn = KFileDialog::getSaveFileName( f,
|
||||
i18n( "*.ui|TQt User-Interface Files" ) + "\n" +
|
||||
i18n( "*|All Files" ), MainWindow::self, /*0,*/
|
||||
i18n( "Save Form '%1' As").arg( formName() )/*,
|
||||
MainWindow::self ? &MainWindow::self->lastSaveFilter : 0*/ );
|
||||
if ( fn.isEmpty() )
|
||||
return FALSE;
|
||||
TQFileInfo fi( fn );
|
||||
if ( fi.extension() != "ui" )
|
||||
fn += ".ui";
|
||||
fileNameTemp = FALSE;
|
||||
filename = pro->makeRelative( fn );
|
||||
TQFileInfo relfi( filename );
|
||||
if ( relfi.exists() ) {
|
||||
if ( TQMessageBox::warning( MainWindow::self, i18n( "File Already Exists" ),
|
||||
i18n( "The file already exists. Do you wish to overwrite it?" ),
|
||||
TQMessageBox::Yes,
|
||||
TQMessageBox::No ) == TQMessageBox::Yes ) {
|
||||
saved = TRUE;
|
||||
} else {
|
||||
filename = f;
|
||||
}
|
||||
|
||||
} else {
|
||||
saved = TRUE;
|
||||
}
|
||||
}
|
||||
if ( !checkFileName( TRUE ) ) {
|
||||
filename = f;
|
||||
return FALSE;
|
||||
}
|
||||
pro->setModified( TRUE );
|
||||
timeStamp.setFileName( pro->makeAbsolute( codeFile() ) );
|
||||
if ( ed && TQT_TQOBJECT(formWindow()) )
|
||||
ed->setCaption( i18n( "Edit %1" ).arg( formWindow()->name() ) );
|
||||
setModified( TRUE );
|
||||
if ( pro->isDummy() )
|
||||
fw->mainWindow()->addRecentlyOpenedFile( fn );
|
||||
return save( TRUE, ignoreModified );
|
||||
}
|
||||
|
||||
bool FormFile::close()
|
||||
{
|
||||
if ( editor() ) {
|
||||
editor()->save();
|
||||
editor()->close();
|
||||
}
|
||||
if ( TQT_TQOBJECT(formWindow()) )
|
||||
return formWindow()->close();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool FormFile::closeEvent()
|
||||
{
|
||||
if ( !isModified() && fileNameTemp ) {
|
||||
pro->removeFormFile( this );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if ( !isModified() )
|
||||
return TRUE;
|
||||
|
||||
if ( editor() )
|
||||
editor()->save();
|
||||
|
||||
switch ( TQMessageBox::warning( MainWindow::self, i18n( "Save Form" ),
|
||||
i18n( "Save changes to form '%1'?" ).arg( filename ),
|
||||
i18n( "&Yes" ), i18n( "&No" ), i18n( "&Cancel" ), 0, 2 ) ) {
|
||||
case 0: // save
|
||||
if ( !save() )
|
||||
return FALSE;
|
||||
case 1: // don't save
|
||||
loadCode();
|
||||
if ( ed )
|
||||
ed->editorInterface()->setText( cod );
|
||||
if ( fileNameTemp )
|
||||
pro->removeFormFile( this );
|
||||
if ( MainWindow::self )
|
||||
MainWindow::self->workspace()->update();
|
||||
break;
|
||||
case 2: // cancel
|
||||
return FALSE;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
setModified( FALSE );
|
||||
if ( MainWindow::self )
|
||||
MainWindow::self->updateFunctionList();
|
||||
setCodeEdited( FALSE );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void FormFile::setModified( bool m, int who )
|
||||
{
|
||||
if ( ( who & WFormWindow ) == WFormWindow )
|
||||
setFormWindowModified( m );
|
||||
if ( ( who & WFormCode ) == WFormCode )
|
||||
setCodeModified( m );
|
||||
}
|
||||
|
||||
bool FormFile::isModified( int who )
|
||||
{
|
||||
if ( who == WFormWindow )
|
||||
return isFormWindowModified();
|
||||
if ( who == WFormCode )
|
||||
return isCodeModified();
|
||||
return isCodeModified() || isFormWindowModified();
|
||||
}
|
||||
|
||||
bool FormFile::isFormWindowModified() const
|
||||
{
|
||||
if ( !TQT_TQOBJECT(formWindow()) || !formWindow()->commandHistory() )
|
||||
return FALSE;
|
||||
return formWindow()->commandHistory()->isModified();
|
||||
}
|
||||
|
||||
bool FormFile::isCodeModified() const
|
||||
{
|
||||
if ( !editor() )
|
||||
return cm;
|
||||
return editor()->isModified();
|
||||
}
|
||||
|
||||
void FormFile::setFormWindowModified( bool m )
|
||||
{
|
||||
bool b = isFormWindowModified();
|
||||
if ( m == b )
|
||||
return;
|
||||
if ( !TQT_TQOBJECT(formWindow()) || !formWindow()->commandHistory() )
|
||||
return;
|
||||
formWindow()->commandHistory()->setModified( m );
|
||||
emit somethingChanged( this );
|
||||
}
|
||||
|
||||
void FormFile::setCodeModified( bool m )
|
||||
{
|
||||
bool b = isCodeModified();
|
||||
if ( m == b )
|
||||
return;
|
||||
emit somethingChanged( this );
|
||||
cm = m;
|
||||
if ( !editor() )
|
||||
return;
|
||||
editor()->setModified( m );
|
||||
}
|
||||
|
||||
void FormFile::showFormWindow()
|
||||
{
|
||||
if ( !MainWindow::self )
|
||||
return;
|
||||
if ( TQT_TQOBJECT(formWindow()) ) {
|
||||
if ( ( formWindow()->hasFocus() ||
|
||||
TQT_BASE_OBJECT(MainWindow::self->qWorkspace()->activeWindow()) == TQT_BASE_OBJECT(formWindow()) ) &&
|
||||
TQT_BASE_OBJECT(MainWindow::self->propertyeditor()->formWindow()) != TQT_BASE_OBJECT(formWindow()) ) {
|
||||
MainWindow::self->propertyeditor()->setWidget( TQT_TQOBJECT(formWindow()->currentWidget()), formWindow() );
|
||||
MainWindow::self->objectHierarchy()->setFormWindow( formWindow(),
|
||||
TQT_TQOBJECT(formWindow()->currentWidget()) );
|
||||
}
|
||||
formWindow()->setFocus();
|
||||
return;
|
||||
}
|
||||
MainWindow::self->openFormWindow( pro->makeAbsolute( filename ), TRUE, this );
|
||||
}
|
||||
|
||||
bool FormFile::setupUihFile( bool askForUih )
|
||||
{
|
||||
if ( !pro->isCpp() || !askForUih ) {
|
||||
if ( !hasFormCode() ) {
|
||||
createFormCode();
|
||||
setModified( TRUE );
|
||||
}
|
||||
codeFileStat = FormFile::Ok;
|
||||
return TRUE;
|
||||
}
|
||||
if ( codeFileStat != FormFile::Ok && !ed ) {
|
||||
if ( hasFormCode() ) {
|
||||
int i = TQMessageBox::information( MainWindow::self, i18n( "Using ui.h File" ),
|
||||
i18n( "An \"ui.h\" file for this form already exists.\n"
|
||||
"Do you want to use it or create a new one?" ),
|
||||
i18n( "Use Existing" ), i18n( "Create New" ),
|
||||
i18n( "Cancel" ), 2, 2 );
|
||||
if ( i == 2 )
|
||||
return FALSE;
|
||||
if ( i == 1 )
|
||||
createFormCode();
|
||||
} else {
|
||||
if ( TQMessageBox::Yes != TQMessageBox::information( MainWindow::self, i18n( "Creating ui.h file" ),
|
||||
i18n( "Do you want to create an new \"ui.h\" file?" ),
|
||||
TQMessageBox::Yes, TQMessageBox::No ) )
|
||||
return FALSE;
|
||||
createFormCode();
|
||||
}
|
||||
setModified( TRUE );
|
||||
}
|
||||
codeFileStat = FormFile::Ok;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
SourceEditor *FormFile::showEditor( bool askForUih )
|
||||
{
|
||||
if ( !MainWindow::self )
|
||||
return 0;
|
||||
showFormWindow();
|
||||
//emit signal to the embedding IDE if there is one and return 0 because
|
||||
//no source editing is possible
|
||||
emit fw->mainWindow()->part()->emitEditSource(fw->fileName());
|
||||
return 0;
|
||||
/* if ( !setupUihFile( askForUih ) )
|
||||
return 0;
|
||||
return MainWindow::self->openSourceEditor();*/
|
||||
}
|
||||
|
||||
static int ui_counter = 0;
|
||||
TQString FormFile::createUnnamedFileName()
|
||||
{
|
||||
return TQString( "unnamed" ) + TQString::number( ++ui_counter ) + TQString( ".ui" );
|
||||
}
|
||||
|
||||
TQString FormFile::codeExtension() const
|
||||
{
|
||||
LanguageInterface *iface = MetaDataBase::languageInterface( pro->language() );
|
||||
if ( iface )
|
||||
return iface->formCodeExtension();
|
||||
return "";
|
||||
}
|
||||
|
||||
TQString FormFile::codeComment() const
|
||||
{
|
||||
return TQString( "/****************************************************************************\n"
|
||||
"** ui.h extension file, included from the uic-generated form implementation.\n"
|
||||
"**\n"
|
||||
"** If you want to add, delete, or rename functions or slots, use\n"
|
||||
"** TQt Designer to update this file, preserving your code.\n"
|
||||
"**\n"
|
||||
"** You should not define a constructor or destructor in this file.\n"
|
||||
"** Instead, write your code in functions called init() and destroy().\n"
|
||||
"** These will automatically be called by the form's constructor and\n"
|
||||
"** destructor.\n"
|
||||
"*****************************************************************************/\n" );
|
||||
}
|
||||
|
||||
bool FormFile::hasFormCode() const
|
||||
{
|
||||
return !cod.isEmpty() && cod != TQString( codeComment() );
|
||||
}
|
||||
|
||||
int FormFile::codeFileState() const
|
||||
{
|
||||
return hasFormCode() ? codeFileStat : None;
|
||||
}
|
||||
|
||||
void FormFile::setCodeFileState( UihState s )
|
||||
{
|
||||
codeFileStat = s;
|
||||
}
|
||||
|
||||
void FormFile::createFormCode()
|
||||
{
|
||||
if ( !TQT_TQOBJECT(formWindow()) )
|
||||
return;
|
||||
LanguageInterface *iface = MetaDataBase::languageInterface( pro->language() );
|
||||
if ( !iface )
|
||||
return;
|
||||
if ( pro->isCpp() )
|
||||
cod = codeComment();
|
||||
TQValueList<MetaDataBase::Function> functionList = MetaDataBase::functionList( TQT_TQOBJECT(formWindow()) );
|
||||
for ( TQValueList<MetaDataBase::Function>::Iterator it = functionList.begin(); it != functionList.end(); ++it ) {
|
||||
cod += (!cod.isEmpty() ? "\n\n" : "") +
|
||||
iface->createFunctionStart( formWindow()->name(), make_func_pretty((*it).function),
|
||||
(*it).returnType.isEmpty() ?
|
||||
TQString( "void" ) :
|
||||
(*it).returnType, (*it).access ) +
|
||||
"\n" + iface->createEmptyFunction();
|
||||
}
|
||||
parseCode( cod, FALSE );
|
||||
}
|
||||
|
||||
void FormFile::load()
|
||||
{
|
||||
showFormWindow();
|
||||
code();
|
||||
}
|
||||
|
||||
bool FormFile::loadCode()
|
||||
{
|
||||
TQFile f( pro->makeAbsolute( codeFile() ) );
|
||||
if ( !f.open( IO_ReadOnly ) ) {
|
||||
cod = "";
|
||||
setCodeFileState( FormFile::None );
|
||||
return FALSE;
|
||||
}
|
||||
TQTextStream ts( &f );
|
||||
cod = ts.read();
|
||||
parseCode( cod, FALSE );
|
||||
if ( hasFormCode() && codeFileStat != FormFile::Ok )
|
||||
setCodeFileState( FormFile::Deleted );
|
||||
timeStamp.update();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool FormFile::isCodeEdited() const
|
||||
{
|
||||
return codeEdited;
|
||||
}
|
||||
|
||||
void FormFile::setCodeEdited( bool b )
|
||||
{
|
||||
codeEdited = b;
|
||||
}
|
||||
|
||||
void FormFile::parseCode( const TQString &txt, bool allowModify )
|
||||
{
|
||||
if ( !TQT_TQOBJECT(formWindow()) )
|
||||
return;
|
||||
LanguageInterface *iface = MetaDataBase::languageInterface( pro->language() );
|
||||
if ( !iface )
|
||||
return;
|
||||
TQValueList<LanguageInterface::Function> functions;
|
||||
TQValueList<MetaDataBase::Function> newFunctions, oldFunctions;
|
||||
oldFunctions = MetaDataBase::functionList( TQT_TQOBJECT(formWindow()) );
|
||||
iface->functions( txt, &functions );
|
||||
TQMap<TQString, TQString> funcs;
|
||||
for ( TQValueList<LanguageInterface::Function>::Iterator it = functions.begin();
|
||||
it != functions.end(); ++it ) {
|
||||
bool found = FALSE;
|
||||
for ( TQValueList<MetaDataBase::Function>::Iterator fit = oldFunctions.begin();
|
||||
fit != oldFunctions.end(); ++fit ) {
|
||||
TQString f( (*fit).function );
|
||||
if ( MetaDataBase::normalizeFunction( f ) ==
|
||||
MetaDataBase::normalizeFunction( (*it).name ) ) {
|
||||
found = TRUE;
|
||||
MetaDataBase::Function function;
|
||||
function.function = make_func_pretty( (*it).name );
|
||||
function.specifier = (*fit).specifier;
|
||||
function.type = (*fit).type;
|
||||
if ( !pro->isCpp() )
|
||||
function.access = (*it).access;
|
||||
else
|
||||
function.access = (*fit).access;
|
||||
function.language = (*fit).language;
|
||||
function.returnType = (*it).returnType;
|
||||
newFunctions << function;
|
||||
funcs.insert( (*it).name, (*it).body );
|
||||
oldFunctions.remove( fit );
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( !found ) {
|
||||
MetaDataBase::Function function;
|
||||
function.function = make_func_pretty( (*it).name );
|
||||
function.specifier = "virtual";
|
||||
function.access = "public";
|
||||
function.language = pro->language();
|
||||
function.returnType = (*it).returnType;
|
||||
if ( function.returnType == "void" )
|
||||
function.type = "slot";
|
||||
else
|
||||
function.type = "function";
|
||||
if ( function.function == "init()" || function.function == "destroy()" ) {
|
||||
function.type = "function";
|
||||
function.access = "private";
|
||||
function.specifier = "non virtual";
|
||||
}
|
||||
newFunctions << function;
|
||||
funcs.insert( (*it).name, (*it).body );
|
||||
if ( allowModify )
|
||||
setFormWindowModified( TRUE );
|
||||
}
|
||||
}
|
||||
|
||||
if ( allowModify && oldFunctions.count() > 0 )
|
||||
setFormWindowModified( TRUE );
|
||||
|
||||
MetaDataBase::setFunctionList( TQT_TQOBJECT(formWindow()), newFunctions );
|
||||
}
|
||||
|
||||
void FormFile::syncCode()
|
||||
{
|
||||
if ( !editor() )
|
||||
return;
|
||||
parseCode( editor()->editorInterface()->text(), TRUE );
|
||||
cod = editor()->editorInterface()->text();
|
||||
}
|
||||
|
||||
void FormFile::checkTimeStamp()
|
||||
{
|
||||
if ( timeStamp.isUpToDate() )
|
||||
return;
|
||||
timeStamp.update();
|
||||
if ( codeEdited ) {
|
||||
if ( TQMessageBox::information( MainWindow::self, i18n( "TQt Designer" ),
|
||||
i18n( "File '%1' has been changed outside TQt Designer.\n"
|
||||
"Do you want to reload it?" ).arg( timeStamp.fileName() ),
|
||||
i18n( "&Yes" ), i18n( "&No" ) ) == 0 ) {
|
||||
TQFile f( timeStamp.fileName() );
|
||||
if ( f.open( IO_ReadOnly ) ) {
|
||||
TQTextStream ts( &f );
|
||||
editor()->editorInterface()->setText( ts.read() );
|
||||
editor()->save();
|
||||
if ( MainWindow::self )
|
||||
MainWindow::self->functionsChanged();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
loadCode();
|
||||
}
|
||||
}
|
||||
|
||||
bool FormFile::isUihFileUpToDate()
|
||||
{
|
||||
if ( timeStamp.isUpToDate() )
|
||||
return TRUE;
|
||||
if ( !editor() ) {
|
||||
MainWindow::self->editSource();
|
||||
tqDebug( "parse Code" );
|
||||
parseCode( editor()->editorInterface()->text(), TRUE );
|
||||
}
|
||||
checkTimeStamp();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void FormFile::addFunctionCode( MetaDataBase::Function function )
|
||||
{
|
||||
if ( pro->isCpp() && !hasFormCode() && !codeEdited )
|
||||
return;
|
||||
LanguageInterface *iface = MetaDataBase::languageInterface( pro->language() );
|
||||
if ( !iface )
|
||||
return;
|
||||
|
||||
TQValueList<LanguageInterface::Function> funcs;
|
||||
iface->functions( cod, &funcs );
|
||||
bool hasFunc = FALSE;
|
||||
for ( TQValueList<LanguageInterface::Function>::Iterator it = funcs.begin();
|
||||
it != funcs.end(); ++it ) {
|
||||
if ( MetaDataBase::normalizeFunction( (*it).name ) == MetaDataBase::normalizeFunction( function.function ) ) {
|
||||
hasFunc = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( !hasFunc ) {
|
||||
if ( !codeEdited && !timeStamp.isUpToDate() )
|
||||
loadCode();
|
||||
MetaDataBase::MetaInfo mi = MetaDataBase::metaInfo( TQT_TQOBJECT(formWindow()) );
|
||||
TQString cn;
|
||||
if ( mi.classNameChanged )
|
||||
cn = mi.className;
|
||||
if ( cn.isEmpty() )
|
||||
cn = formWindow()->name();
|
||||
TQString body = "\n\n" + iface->createFunctionStart( cn,
|
||||
make_func_pretty( function.function ),
|
||||
function.returnType.isEmpty() ?
|
||||
TQString( "void" ) :
|
||||
function.returnType, function.access ) +
|
||||
"\n" + iface->createEmptyFunction();
|
||||
cod += body;
|
||||
if ( codeEdited ) {
|
||||
setModified( TRUE );
|
||||
emit somethingChanged( this );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FormFile::removeFunctionCode( MetaDataBase::Function function )
|
||||
{
|
||||
if ( pro->isCpp() && !hasFormCode() && !codeEdited )
|
||||
return;
|
||||
|
||||
LanguageInterface *iface = MetaDataBase::languageInterface( pro->language() );
|
||||
if ( !iface )
|
||||
return;
|
||||
|
||||
checkTimeStamp();
|
||||
TQString sourceCode = code();
|
||||
if ( sourceCode.isEmpty() )
|
||||
return;
|
||||
TQValueList<LanguageInterface::Function> functions;
|
||||
iface->functions( sourceCode, &functions );
|
||||
TQString fu = MetaDataBase::normalizeFunction( function.function );
|
||||
for ( TQValueList<LanguageInterface::Function>::Iterator fit = functions.begin(); fit != functions.end(); ++fit ) {
|
||||
if ( MetaDataBase::normalizeFunction( (*fit).name ) == fu ) {
|
||||
int line = 0;
|
||||
int start = 0;
|
||||
while ( line < (*fit).start - 1 ) {
|
||||
start = sourceCode.find( '\n', start );
|
||||
if ( start == -1 )
|
||||
return;
|
||||
start++;
|
||||
line++;
|
||||
}
|
||||
if ( start == -1 )
|
||||
return;
|
||||
int end = start;
|
||||
while ( line < (*fit).end + 1 ) {
|
||||
end = sourceCode.find( '\n', end );
|
||||
if ( end == -1 ) {
|
||||
if ( line <= (*fit).end )
|
||||
end = sourceCode.length() - 1;
|
||||
else
|
||||
return;
|
||||
}
|
||||
end++;
|
||||
line++;
|
||||
}
|
||||
if ( end < start )
|
||||
return;
|
||||
sourceCode.remove( start, end - start );
|
||||
setCode( sourceCode );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FormFile::functionNameChanged( const TQString &oldName, const TQString &newName )
|
||||
{
|
||||
if ( !cod.isEmpty() ) {
|
||||
TQString funcStart = TQString( formWindow()->name() ) + TQString( "::" );
|
||||
int i = cod.find( funcStart + oldName );
|
||||
if ( i != -1 ) {
|
||||
cod.remove( i + funcStart.length(), oldName.length() );
|
||||
cod.insert( i + funcStart.length(), newName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FormFile::functionRetTypeChanged( const TQString &fuName, const TQString &oldType, const TQString &newType )
|
||||
{
|
||||
if ( !cod.isEmpty() ) {
|
||||
TQString oldFunct = oldType + " " + TQString( formWindow()->name() ) + "::" + fuName;
|
||||
TQString newFunct = newType + " " + TQString( formWindow()->name() ) + "::" + fuName;
|
||||
|
||||
int i = cod.find( oldFunct );
|
||||
if ( i != -1 ) {
|
||||
cod.remove( i, oldFunct.length() );
|
||||
cod.insert( i, newFunct );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TQString FormFile::formName() const
|
||||
{
|
||||
FormFile* that = (FormFile*) this;
|
||||
if ( TQT_TQOBJECT(formWindow()) ) {
|
||||
that->cachedFormName = formWindow()->name();
|
||||
return cachedFormName;
|
||||
}
|
||||
if ( !cachedFormName.isNull() )
|
||||
return cachedFormName;
|
||||
TQFile f( pro->makeAbsolute( filename ) );
|
||||
if ( f.open( IO_ReadOnly ) ) {
|
||||
TQTextStream ts( &f );
|
||||
TQString line;
|
||||
TQString className;
|
||||
while ( !ts.eof() ) {
|
||||
line = ts.readLine();
|
||||
if ( !className.isEmpty() ) {
|
||||
int end = line.find( "</class>" );
|
||||
if ( end == -1 ) {
|
||||
className += line;
|
||||
} else {
|
||||
className += line.left( end );
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
int start;
|
||||
if ( ( start = line.find( "<class>" ) ) != -1 ) {
|
||||
int end = line.find( "</class>" );
|
||||
if ( end == -1 ) {
|
||||
className = line.mid( start + 7 );
|
||||
} else {
|
||||
className = line.mid( start + 7, end - ( start + 7 ) );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
that->cachedFormName = className;
|
||||
}
|
||||
if ( cachedFormName.isEmpty() )
|
||||
that->cachedFormName = filename;
|
||||
return cachedFormName;
|
||||
}
|
||||
|
||||
void FormFile::formWindowChangedSomehow()
|
||||
{
|
||||
emit somethingChanged( this );
|
||||
}
|
||||
|
||||
bool FormFile::checkFileName( bool allowBreak )
|
||||
{
|
||||
FormFile *ff = pro->findFormFile( filename, this );
|
||||
if ( ff )
|
||||
TQMessageBox::warning( MainWindow::self, i18n( "Invalid Filename" ),
|
||||
i18n( "The project already contains a form with a\n"
|
||||
"filename of '%1'. Please choose a new filename." ).arg( filename ) );
|
||||
while ( ff ) {
|
||||
TQString fn;
|
||||
while ( fn.isEmpty() ) {
|
||||
fn = KFileDialog::getSaveFileName( pro->makeAbsolute( fileName() ),
|
||||
i18n( "*.ui|TQt User-Interface Files" ) + "\n" +
|
||||
i18n( "*|All Files" ), MainWindow::self,/* 0,*/
|
||||
i18n( "Save Form '%1' As").
|
||||
arg( formWindow()->name() )/*,
|
||||
MainWindow::self ? &MainWindow::self->lastSaveFilter : 0 */);
|
||||
if ( allowBreak && fn.isEmpty() )
|
||||
return FALSE;
|
||||
}
|
||||
filename = pro->makeRelative( fn );
|
||||
ff = pro->findFormFile( filename, this );
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void FormFile::addConnection( const TQString &sender, const TQString &signal,
|
||||
const TQString &receiver, const TQString &slot )
|
||||
{
|
||||
LanguageInterface *iface = MetaDataBase::languageInterface( pro->language() );
|
||||
if ( iface )
|
||||
iface->addConnection( sender, signal, receiver, slot, &cod );
|
||||
if ( ed )
|
||||
ed->editorInterface()->setText( cod );
|
||||
}
|
||||
|
||||
void FormFile::removeConnection( const TQString &sender, const TQString &signal,
|
||||
const TQString &receiver, const TQString &slot )
|
||||
{
|
||||
LanguageInterface *iface = MetaDataBase::languageInterface( pro->language() );
|
||||
if ( iface )
|
||||
iface->removeConnection( sender, signal, receiver, slot, &cod );
|
||||
if ( ed )
|
||||
ed->editorInterface()->setText( cod );
|
||||
}
|
||||
|
||||
void FormFile::notifyFormWindowChange()
|
||||
{
|
||||
if ( fw )
|
||||
pro->formOpened( fw );
|
||||
}
|
||||
|
||||
void FormFile::emitNewStatus(FormFile *file)
|
||||
{
|
||||
fw->mainWindow()->part()->emitNewStatus(fileName(), isModified());
|
||||
}
|
@ -0,0 +1,565 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Alexander Dymo *
|
||||
* cloudtemple@mksat.net *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
***************************************************************************/
|
||||
|
||||
#include "kdevdesigner_part.h"
|
||||
|
||||
#include <kinstance.h>
|
||||
#include <tdeaction.h>
|
||||
#include <tdeactionclasses.h>
|
||||
#include <kstdaction.h>
|
||||
#include <tdefiledialog.h>
|
||||
#include <kdebug.h>
|
||||
#include <tdelocale.h>
|
||||
#include <kiconloader.h>
|
||||
|
||||
#include <tqfile.h>
|
||||
#include <tqtextstream.h>
|
||||
#include <tqtoolbar.h>
|
||||
#include <tqmenubar.h>
|
||||
#include <tqptrlist.h>
|
||||
#include <tqstatusbar.h>
|
||||
|
||||
#include "mainwindow.h"
|
||||
#include "designeraction.h"
|
||||
#include "formwindow.h"
|
||||
|
||||
KDevDesignerPart::KDevDesignerPart( TQWidget *parentWidget, const char *// widgetName
|
||||
,
|
||||
TQObject *parent, const char *name, const TQStringList &args )
|
||||
: KInterfaceDesigner::Designer(parent, name)
|
||||
{
|
||||
setInstance( KDevDesignerPartFactory::instance() );
|
||||
|
||||
m_widget = new MainWindow( this, true );
|
||||
m_widget->reparent(parentWidget, TQPoint(0,0));
|
||||
setupDesignerWindow();
|
||||
|
||||
setWidget(m_widget);
|
||||
|
||||
setupActions();
|
||||
if (args.contains("in shell"))
|
||||
setXMLFile("kdevdesigner_part_sh.rc");
|
||||
else
|
||||
setXMLFile("kdevdesigner_part.rc");
|
||||
|
||||
setReadWrite(true);
|
||||
setModified(false);
|
||||
|
||||
connect(m_widget, TQT_SIGNAL(formModified(bool )), this, TQT_SLOT(formModified(bool)));
|
||||
}
|
||||
|
||||
void KDevDesignerPart::setupDesignerWindow()
|
||||
{
|
||||
m_widget->menuBar()->hide();
|
||||
m_widget->layoutToolBar->hide();
|
||||
m_widget->projectToolBar->hide();
|
||||
m_widget->toolsToolBar->hide();
|
||||
m_widget->statusBar()->hide();
|
||||
}
|
||||
|
||||
static TQIconSet createPartIconSet( const TQString &name )
|
||||
{
|
||||
TQIconSet ic( BarIcon( "" + name, KDevDesignerPartFactory::instance() ) );
|
||||
TQString prefix = "designer_";
|
||||
int right = name.length() - prefix.length();
|
||||
ic.setPixmap( BarIcon( prefix + "d_" + name.right( right ), KDevDesignerPartFactory::instance() ),
|
||||
TQIconSet::Small, TQIconSet::Disabled );
|
||||
return ic;
|
||||
}
|
||||
|
||||
void KDevDesignerPart::setupActions( )
|
||||
{
|
||||
TDEAction *action;
|
||||
action = KStdAction::openNew(this, TQT_SLOT(fileNew()), actionCollection());
|
||||
action = KStdAction::open(this, TQT_SLOT(fileOpen()), actionCollection());
|
||||
action = KStdAction::close(this, TQT_SLOT(fileClose()), actionCollection());
|
||||
stateSync(action, m_widget->actionFileClose);
|
||||
action = KStdAction::save(this, TQT_SLOT(save()), actionCollection());
|
||||
stateSync(action, m_widget->actionFileSave);
|
||||
action = KStdAction::saveAs(this, TQT_SLOT(fileSaveAs()), actionCollection());
|
||||
stateSync(action, m_widget->actionFileSaveAs);
|
||||
action = new TDEAction(i18n("Save Al&l"), 0, this, TQT_SLOT(fileSaveAs()), actionCollection(), "file_saveall");
|
||||
stateSync(action, m_widget->actionFileSaveAll);
|
||||
new TDEAction(i18n("Create &Template..."), 0, this, TQT_SLOT(fileCreateTemplate()), actionCollection(), "file_createtemplate");
|
||||
|
||||
action = KStdAction::undo(this, TQT_SLOT(editUndo()), actionCollection());
|
||||
stateSync(action, m_widget->actionEditUndo);
|
||||
action = KStdAction::redo(this, TQT_SLOT(editRedo()), actionCollection());
|
||||
stateSync(action, m_widget->actionEditRedo);
|
||||
action = KStdAction::cut(this, TQT_SLOT(editCut()), actionCollection());
|
||||
stateSync(action, m_widget->actionEditCut);
|
||||
action = KStdAction::copy(this, TQT_SLOT(editCopy()), actionCollection());
|
||||
stateSync(action, m_widget->actionEditCopy);
|
||||
action = KStdAction::paste(this, TQT_SLOT(editPaste()), actionCollection());
|
||||
stateSync(action, m_widget->actionEditPaste);
|
||||
action = new TDEAction(i18n("&Delete"), Key_Delete, this, TQT_SLOT(editDelete()), actionCollection(), "edit_delete");
|
||||
stateSync(action, m_widget->actionEditDelete);
|
||||
action = KStdAction::selectAll(this, TQT_SLOT(editSelectAll()), actionCollection());
|
||||
stateSync(action, m_widget->actionEditSelectAll);
|
||||
action = new TDEAction(i18n("Chec&k Accelerators"), ALT + Key_R, this, TQT_SLOT(editAccels()), actionCollection(), "edit_accels");
|
||||
stateSync(action, m_widget->actionEditAccels);
|
||||
action = new TDEAction(i18n("S&lots..."), createPartIconSet("designer_editslots.png"), 0, this, TQT_SLOT(editFunctions()), actionCollection(), "edit_functions");
|
||||
stateSync(action, m_widget->actionEditFunctions);
|
||||
action = new TDEAction(i18n("Co&nnections..."), createPartIconSet("designer_connecttool.png"), 0, this, TQT_SLOT(editConnections()), actionCollection(), "edit_connections");
|
||||
stateSync(action, m_widget->actionEditConnections);
|
||||
action = new TDEAction(i18n("&Form Settings..."), 0, this, TQT_SLOT(editFormSettings()), actionCollection(), "edit_formsettings");
|
||||
stateSync(action, m_widget->actionEditFormSettings);
|
||||
|
||||
action = new TDEAction(i18n("&Add File..."), 0, this, TQT_SLOT(projectAddFile()), actionCollection(), "project_addfile");
|
||||
stateSync(action, m_widget->actionProjectAddFile);
|
||||
action = new TDEAction(i18n("&Image Collection..."), 0, this, TQT_SLOT(projectImageCollection()), actionCollection(), "project_imagecollection");
|
||||
stateSync(action, m_widget->actionEditPixmapCollection);
|
||||
action = new TDEAction(i18n("&Database Connections..."), 0, this, TQT_SLOT(projectDatabaseCollections()), actionCollection(), "project_databasecollections");
|
||||
stateSync(action, m_widget->actionEditDatabaseConnections);
|
||||
action = new TDEAction(i18n("&Designer Project Settings..."), 0, this, TQT_SLOT(projectSettings()), actionCollection(), "project_settings");
|
||||
stateSync(action, m_widget->actionEditProjectSettings);
|
||||
|
||||
TDERadioAction *toggle;
|
||||
toggle = new TDERadioAction(i18n("&Pointer"), createPartIconSet("designer_pointer.png"), Key_F2, actionCollection(), "tools_pointer");
|
||||
setupToolsAction(toggle, m_widget->actionPointerTool);
|
||||
pointerAction = toggle;
|
||||
toggle = new TDERadioAction(i18n("&Connect Signal/Slots"), createPartIconSet("designer_connecttool.png"), Key_F3, actionCollection(), "tools_connect");
|
||||
setupToolsAction(toggle, m_widget->actionConnectTool);
|
||||
toggle = new TDERadioAction(i18n("Tab &Order"), createPartIconSet("designer_ordertool.png"), Key_F4, actionCollection(), "tools_taborder");
|
||||
setupToolsAction(toggle, m_widget->actionOrderTool);
|
||||
toggle = new TDERadioAction(i18n("Set &Buddy"), createPartIconSet("designer_setbuddy.png"), Key_F12, actionCollection(), "tools_setbuddy");
|
||||
setupToolsAction(toggle, m_widget->actionBuddyTool);
|
||||
new TDEAction(i18n("Configure Toolbox..."), 0, this, TQT_SLOT(toolsConfigureToolbox()), actionCollection(), "tools_toolbox");
|
||||
new TDEAction(i18n("Edit &Custom Widgets..."), 0, this, TQT_SLOT(toolsEditCustomWidgets()), actionCollection(), "tools_editcustomwidgets");
|
||||
|
||||
action = new TDEAction(i18n("Adjust &Size"), createPartIconSet("designer_adjustsize.png"), CTRL + Key_J, this, TQT_SLOT(layoutAdjustSize()), actionCollection(), "layout_adjustsize");
|
||||
stateSync(action, m_widget->actionEditAdjustSize);
|
||||
action = new TDEAction(i18n("Lay Out &Horizontally"), createPartIconSet("designer_edithlayout.png"), CTRL + Key_H, this, TQT_SLOT(layoutHLayout()), actionCollection(), "layout_h");
|
||||
stateSync(action, m_widget->actionEditHLayout);
|
||||
action = new TDEAction(i18n("Lay Out &Vertically"), createPartIconSet("designer_editvlayout.png"), CTRL + Key_V, this, TQT_SLOT(layoutVLayout()), actionCollection(), "layout_v");
|
||||
stateSync(action, m_widget->actionEditVLayout);
|
||||
action = new TDEAction(i18n("Lay Out in &Grid"), createPartIconSet("designer_editgrid.png"), CTRL + Key_G, this, TQT_SLOT(layoutGridLayout()), actionCollection(), "layout_grid");
|
||||
stateSync(action, m_widget->actionEditGridLayout);
|
||||
action = new TDEAction(i18n("Lay OutQt::Horizontally (in S&plitter)"), createPartIconSet("designer_editvlayoutsplit.png"), 0, this, TQT_SLOT(layoutSplitHLayout()), actionCollection(), "layout_splith");
|
||||
stateSync(action, m_widget->actionEditSplitHorizontal);
|
||||
action = new TDEAction(i18n("Lay OutQt::Vertically (in Sp&litter)"), createPartIconSet("designer_edithlayoutsplit.png"), 0, this, TQT_SLOT(layoutSplitVLayout()), actionCollection(), "layout_splitv");
|
||||
stateSync(action, m_widget->actionEditSplitVertical);
|
||||
action = new TDEAction(i18n("&Break Layout"), createPartIconSet("designer_editbreaklayout.png"), CTRL + Key_B, this, TQT_SLOT(layoutBreak()), actionCollection(), "layout_break");
|
||||
stateSync(action, m_widget->actionEditBreakLayout);
|
||||
toggle = new TDERadioAction(i18n("Add Spacer"), createPartIconSet("designer_spacer.png"), 0, actionCollection(), "layout_spacer");
|
||||
setupToolsAction(toggle, m_widget->actionInsertSpacer);
|
||||
|
||||
action = new TDEAction(i18n("Preview &Form"), CTRL + Key_T, this, TQT_SLOT(windowPreview()), actionCollection(), "window_preview");
|
||||
stateSync(action, m_widget->actionPreview);
|
||||
action = new TDEAction(i18n("Ne&xt Form"), CTRL + Key_F6, this, TQT_SLOT(windowNext()), actionCollection(), "window_next");
|
||||
stateSync(action, m_widget->actionWindowNext);
|
||||
action = new TDEAction(i18n("Pre&vious Form"), CTRL + SHIFT + Key_F6, this, TQT_SLOT(windowPrev()), actionCollection(), "window_prev");
|
||||
stateSync(action, m_widget->actionWindowPrevious);
|
||||
|
||||
action = KStdAction::preferences(this, TQT_SLOT(editPreferences()), actionCollection());
|
||||
action->setText(i18n("Configure &KDevDesigner..."));
|
||||
stateSync(action, m_widget->actionEditPreferences);
|
||||
}
|
||||
|
||||
KDevDesignerPart::~KDevDesignerPart()
|
||||
{
|
||||
}
|
||||
|
||||
void KDevDesignerPart::setReadWrite(bool rw)
|
||||
{
|
||||
ReadWritePart::setReadWrite(rw);
|
||||
}
|
||||
|
||||
void KDevDesignerPart::setModified(bool modified)
|
||||
{
|
||||
/* TDEAction *save = actionCollection()->action(KStdAction::stdName(KStdAction::Save));
|
||||
if (!save)
|
||||
return;
|
||||
if (modified)
|
||||
save->setEnabled(true);
|
||||
else
|
||||
save->setEnabled(false);*/
|
||||
|
||||
ReadWritePart::setModified(modified);
|
||||
}
|
||||
|
||||
bool KDevDesignerPart::openFile()
|
||||
{
|
||||
m_widget->fileOpen("", "", m_file);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool KDevDesignerPart::saveFile()
|
||||
{
|
||||
if (isReadWrite() == false)
|
||||
return false;
|
||||
m_widget->actionFileSaveAll->activate();
|
||||
return true;
|
||||
}
|
||||
|
||||
void KDevDesignerPart::stateSync( TDEAction * tdeaction, TQAction * qaction )
|
||||
{
|
||||
if (!qaction)
|
||||
return;
|
||||
tdeaction->setEnabled(qaction->isEnabled());
|
||||
DesignerAction *ac = dynamic_cast<DesignerAction*>(qaction);
|
||||
if (!ac)
|
||||
return;
|
||||
connect(ac, TQT_SIGNAL(actionEnabled(bool )), tdeaction, TQT_SLOT(setEnabled(bool )));
|
||||
}
|
||||
|
||||
void KDevDesignerPart::setupToolsAction( TDERadioAction * toggle, TQAction * action )
|
||||
{
|
||||
if (!action)
|
||||
return;
|
||||
|
||||
toggle->setGroup("tools");
|
||||
toggle->setExclusiveGroup("tools");
|
||||
connect(action, TQT_SIGNAL(toggled(bool )), this, TQT_SLOT(setToggleActionChecked(bool )));
|
||||
connect(toggle, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(setToggleActionOn(bool)));
|
||||
toggle->setChecked(action->isOn());
|
||||
m_actionMap[action] = toggle;
|
||||
m_actionMap2[toggle] = action;
|
||||
}
|
||||
|
||||
|
||||
// It's usually safe to leave the factory code alone.. with the
|
||||
// notable exception of the TDEAboutData data
|
||||
#include <tdeaboutdata.h>
|
||||
#include <tdelocale.h>
|
||||
|
||||
TDEInstance* KDevDesignerPartFactory::s_instance = 0L;
|
||||
TDEAboutData* KDevDesignerPartFactory::s_about = 0L;
|
||||
|
||||
KDevDesignerPartFactory::KDevDesignerPartFactory()
|
||||
: KParts::Factory()
|
||||
{
|
||||
}
|
||||
|
||||
KDevDesignerPartFactory::~KDevDesignerPartFactory()
|
||||
{
|
||||
delete s_instance;
|
||||
delete s_about;
|
||||
|
||||
s_instance = 0L;
|
||||
}
|
||||
|
||||
KParts::Part* KDevDesignerPartFactory::createPartObject( TQWidget *parentWidget, const char *widgetName,
|
||||
TQObject *parent, const char *name,
|
||||
const char *classname, const TQStringList &args )
|
||||
{
|
||||
// Create an instance of our Part
|
||||
KDevDesignerPart* obj = new KDevDesignerPart( parentWidget, widgetName, parent, name, args );
|
||||
|
||||
// See if we are to be read-write or not
|
||||
if (TQCString(classname) == "KParts::ReadOnlyPart")
|
||||
obj->setReadWrite(false);
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
TDEInstance* KDevDesignerPartFactory::instance()
|
||||
{
|
||||
if( !s_instance )
|
||||
{
|
||||
s_about = new TDEAboutData("kdevdesignerpart", I18N_NOOP("KDevDesignerPart"), "0.1");
|
||||
s_about->addAuthor("Alexander Dymo", 0, "cloudtemple@mksat.net");
|
||||
s_about->addAuthor("Trolltech AS", 0, "info@trolltech.com");
|
||||
s_instance = new TDEInstance(s_about);
|
||||
}
|
||||
return s_instance;
|
||||
}
|
||||
|
||||
extern "C"
|
||||
{
|
||||
void* init_libkdevdesignerpart()
|
||||
{
|
||||
return new KDevDesignerPartFactory;
|
||||
}
|
||||
}
|
||||
|
||||
//actions
|
||||
|
||||
void KDevDesignerPart::fileNew( )
|
||||
{
|
||||
if (!m_widget->actionNewFile)
|
||||
{
|
||||
tqWarning("wrong m_widget->actionNewFile");
|
||||
return;
|
||||
}
|
||||
m_widget->actionNewFile->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::fileOpen()
|
||||
{
|
||||
m_widget->fileOpen();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::fileSaveAs()
|
||||
{
|
||||
m_widget->actionFileSaveAs->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::fileClose( )
|
||||
{
|
||||
m_widget->actionFileClose->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::fileCreateTemplate( )
|
||||
{
|
||||
m_widget->fileCreateTemplate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::editUndo( )
|
||||
{
|
||||
m_widget->actionEditUndo->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::editRedo( )
|
||||
{
|
||||
m_widget->actionEditRedo->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::editCut( )
|
||||
{
|
||||
m_widget->actionEditCut->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::editPaste( )
|
||||
{
|
||||
m_widget->actionEditPaste->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::editCopy( )
|
||||
{
|
||||
m_widget->actionEditCopy->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::editDelete( )
|
||||
{
|
||||
m_widget->actionEditDelete->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::editSelectAll( )
|
||||
{
|
||||
m_widget->actionEditSelectAll->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::editAccels( )
|
||||
{
|
||||
m_widget->actionEditAccels->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::editFunctions( )
|
||||
{
|
||||
m_widget->actionEditFunctions->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::editConnections( )
|
||||
{
|
||||
m_widget->actionEditConnections->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::editFormSettings( )
|
||||
{
|
||||
m_widget->actionEditFormSettings->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::editPreferences( )
|
||||
{
|
||||
m_widget->actionEditPreferences->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::projectAddFile( )
|
||||
{
|
||||
m_widget->actionProjectAddFile->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::projectImageCollection( )
|
||||
{
|
||||
m_widget->actionEditPixmapCollection->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::projectDatabaseCollections( )
|
||||
{
|
||||
m_widget->actionEditDatabaseConnections->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::projectSettings( )
|
||||
{
|
||||
m_widget->actionEditProjectSettings->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::toolsConfigureToolbox( )
|
||||
{
|
||||
m_widget->toolsConfigure();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::layoutAdjustSize( )
|
||||
{
|
||||
m_widget->actionEditAdjustSize->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::layoutHLayout( )
|
||||
{
|
||||
m_widget->actionEditHLayout->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::layoutVLayout( )
|
||||
{
|
||||
m_widget->actionEditVLayout->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::layoutGridLayout( )
|
||||
{
|
||||
m_widget->actionEditGridLayout->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::layoutSplitHLayout( )
|
||||
{
|
||||
m_widget->actionEditSplitHorizontal->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::layoutSplitVLayout( )
|
||||
{
|
||||
m_widget->actionEditSplitVertical->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::layoutBreak( )
|
||||
{
|
||||
m_widget->actionEditBreakLayout->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::windowPreview( )
|
||||
{
|
||||
m_widget->actionPreview->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::windowNext( )
|
||||
{
|
||||
m_widget->actionWindowNext->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::windowPrev( )
|
||||
{
|
||||
m_widget->actionWindowPrevious->activate();
|
||||
}
|
||||
|
||||
void KDevDesignerPart::statusMessage( const TQString & msg )
|
||||
{
|
||||
emit setStatusBarText(msg);
|
||||
}
|
||||
|
||||
void KDevDesignerPart::setToggleActionChecked( bool b)
|
||||
{
|
||||
if (!sender())
|
||||
return;
|
||||
const TQAction *action = dynamic_cast<const TQAction*>(sender());
|
||||
if (!action)
|
||||
return;
|
||||
if (b)
|
||||
{
|
||||
if (action == m_widget->actionPointerTool)
|
||||
pointerAction->setChecked(true);
|
||||
return;
|
||||
}
|
||||
TDERadioAction *tdeaction = m_actionMap[action];
|
||||
if (!tdeaction)
|
||||
return;
|
||||
// kdDebug() << "untoggle action: " << tdeaction->text() << endl;
|
||||
tdeaction->blockSignals(true);
|
||||
tdeaction->setChecked(b);
|
||||
tdeaction->blockSignals(false);
|
||||
}
|
||||
|
||||
void KDevDesignerPart::setToggleActionOn( bool b )
|
||||
{
|
||||
if (!sender())
|
||||
return;
|
||||
const TDERadioAction *action = dynamic_cast<const TDERadioAction *>(sender());
|
||||
if (!action)
|
||||
return;
|
||||
// kdDebug() << (b?TQString("toggle"):TQString("untoggle")) << " action: " << action->text() << endl;
|
||||
TQAction *qaction = m_actionMap2[action];
|
||||
if (!qaction)
|
||||
return;
|
||||
disconnect(qaction, TQT_SIGNAL(toggled(bool )), this, TQT_SLOT(setToggleActionChecked(bool )));
|
||||
qaction->setOn(b);
|
||||
connect(qaction, TQT_SIGNAL(toggled(bool )), this, TQT_SLOT(setToggleActionChecked(bool )));
|
||||
}
|
||||
|
||||
void KDevDesignerPart::openProject( const TQString & // projectFile
|
||||
)
|
||||
{
|
||||
//TODO: implement
|
||||
return;
|
||||
}
|
||||
|
||||
KInterfaceDesigner::DesignerType KDevDesignerPart::designerType( )
|
||||
{
|
||||
return KInterfaceDesigner::TQtDesigner;
|
||||
}
|
||||
|
||||
void KDevDesignerPart::emitAddedFunction( const TQString & form, KInterfaceDesigner::Function func )
|
||||
{
|
||||
kdDebug() << "KDevDesignerPart::emitAddedFunction: form " << form << ", function: " << func.function << endl;
|
||||
emit addedFunction(designerType(), form, func);
|
||||
}
|
||||
|
||||
void KDevDesignerPart::emitRemovedFunction( const TQString & form, KInterfaceDesigner::Function func )
|
||||
{
|
||||
kdDebug() << "KDevDesignerPart::emitRemovedFunction: form " << form << ", function: " << func.function << endl;
|
||||
emit removedFunction(designerType(), form, func);
|
||||
}
|
||||
|
||||
void KDevDesignerPart::emitEditedFunction( const TQString & form, KInterfaceDesigner::Function oldFunc, KInterfaceDesigner::Function func )
|
||||
{
|
||||
kdDebug() << "KDevDesignerPart::emitEditedFunction: form " << form
|
||||
<< ", old function: " << oldFunc.function
|
||||
<< ", function: " << func.function << endl;
|
||||
|
||||
// m_widget->formWindow()->clearSelection(false);
|
||||
emit editedFunction(designerType(), form, oldFunc, func);
|
||||
}
|
||||
|
||||
void KDevDesignerPart::emitEditFunction(const TQString &formName, const TQString &functionName)
|
||||
{
|
||||
kdDebug() << "KDevDesignerPart::emitEditedFunction: form " << formName
|
||||
<< ", function: " << functionName << endl;
|
||||
emit editFunction(designerType(), formName, functionName);
|
||||
}
|
||||
|
||||
void KDevDesignerPart::formModified(bool b)
|
||||
{
|
||||
kdDebug() << "KDevDesignerPart::formModified " << b << endl;
|
||||
setModified(b);
|
||||
}
|
||||
|
||||
void KDevDesignerPart::emitEditSource(const TQString &formName)
|
||||
{
|
||||
emit editSource(designerType(), formName);
|
||||
}
|
||||
|
||||
void KDevDesignerPart::emitNewStatus(const TQString &formName, int status)
|
||||
{
|
||||
emit newStatus(formName, status);
|
||||
}
|
||||
|
||||
void KDevDesignerPart::toolsEditCustomWidgets( )
|
||||
{
|
||||
m_widget->toolsCustomWidget();
|
||||
}
|
||||
|
||||
#include "kdevdesigner_part.moc"
|
@ -0,0 +1,148 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Alexander Dymo *
|
||||
* cloudtemple@mksat.net *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef _KDEVDESIGNERPART_H_
|
||||
#define _KDEVDESIGNERPART_H_
|
||||
|
||||
#include <tqmap.h>
|
||||
|
||||
#include <tdeparts/part.h>
|
||||
#include <tdeparts/factory.h>
|
||||
|
||||
#include "designer.h"
|
||||
|
||||
class TQWidget;
|
||||
class TQPainter;
|
||||
class KURL;
|
||||
class MainWindow;
|
||||
class TDEAction;
|
||||
class TQAction;
|
||||
class TDERadioAction;
|
||||
|
||||
class KDevDesignerPart : public KInterfaceDesigner::Designer
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
KDevDesignerPart(TQWidget *parentWidget, const char *widgetName,
|
||||
TQObject *parent, const char *name, const TQStringList &args);
|
||||
virtual ~KDevDesignerPart();
|
||||
|
||||
virtual void setReadWrite(bool rw);
|
||||
virtual void setModified(bool modified);
|
||||
|
||||
void statusMessage(const TQString &msg);
|
||||
|
||||
//KInterfaceDesigner::Designer methods
|
||||
virtual void openProject(const TQString &projectFile);
|
||||
virtual KInterfaceDesigner::DesignerType designerType();
|
||||
|
||||
void emitAddedFunction(const TQString &form, KInterfaceDesigner::Function func);
|
||||
void emitEditedFunction(const TQString &form, KInterfaceDesigner::Function oldFunc, KInterfaceDesigner::Function func);
|
||||
void emitRemovedFunction(const TQString &form, KInterfaceDesigner::Function func);
|
||||
|
||||
void emitEditFunction(const TQString &formName, const TQString &functionName);
|
||||
void emitEditSource(const TQString &formName);
|
||||
|
||||
void emitNewStatus(const TQString &formName, int status);
|
||||
|
||||
protected:
|
||||
virtual bool openFile();
|
||||
virtual bool saveFile();
|
||||
|
||||
void setupDesignerWindow();
|
||||
void setupActions();
|
||||
|
||||
void stateSync(TDEAction *tdeaction, TQAction *qaction);
|
||||
void setupToolsAction(TDERadioAction *toggle, TQAction *action);
|
||||
|
||||
protected slots:
|
||||
void setToggleActionChecked(bool b);
|
||||
void setToggleActionOn(bool b);
|
||||
|
||||
void fileNew();
|
||||
void fileOpen();
|
||||
void fileClose();
|
||||
void fileSaveAs();
|
||||
void fileCreateTemplate();
|
||||
|
||||
void editUndo();
|
||||
void editRedo();
|
||||
void editCut();
|
||||
void editCopy();
|
||||
void editPaste();
|
||||
void editDelete();
|
||||
void editSelectAll();
|
||||
void editAccels();
|
||||
void editFunctions();
|
||||
void editConnections();
|
||||
void editFormSettings();
|
||||
void editPreferences();
|
||||
|
||||
void projectAddFile();
|
||||
void projectImageCollection();
|
||||
void projectDatabaseCollections();
|
||||
void projectSettings();
|
||||
|
||||
void toolsConfigureToolbox();
|
||||
void toolsEditCustomWidgets();
|
||||
|
||||
void layoutAdjustSize();
|
||||
void layoutHLayout();
|
||||
void layoutVLayout();
|
||||
void layoutGridLayout();
|
||||
void layoutSplitHLayout();
|
||||
void layoutSplitVLayout();
|
||||
void layoutBreak();
|
||||
|
||||
void windowPreview();
|
||||
void windowNext();
|
||||
void windowPrev();
|
||||
|
||||
void formModified(bool b);
|
||||
private:
|
||||
MainWindow *m_widget;
|
||||
|
||||
TQMap<const TQAction*, TDERadioAction*> m_actionMap;
|
||||
TQMap<const TDERadioAction*, TQAction*> m_actionMap2;
|
||||
TDERadioAction* pointerAction;
|
||||
};
|
||||
|
||||
class TDEInstance;
|
||||
class TDEAboutData;
|
||||
|
||||
class KDevDesignerPartFactory : public KParts::Factory
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
KDevDesignerPartFactory();
|
||||
virtual ~KDevDesignerPartFactory();
|
||||
virtual KParts::Part* createPartObject( TQWidget *parentWidget, const char *widgetName,
|
||||
TQObject *parent, const char *name,
|
||||
const char *classname, const TQStringList &args );
|
||||
static TDEInstance* instance();
|
||||
|
||||
private:
|
||||
static TDEInstance* s_instance;
|
||||
static TDEAboutData* s_about;
|
||||
};
|
||||
|
||||
#endif // _KDEVDESIGNERPART_H_
|
@ -0,0 +1,121 @@
|
||||
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
|
||||
<kpartgui name="kdevdesigner_part" version="6">
|
||||
<MenuBar>
|
||||
<Menu name="file" noMerge="1"><text>&File</text>
|
||||
<Action name="file_createtemplate" group="new_merge"/>
|
||||
<Action name="file_save" group="save_merge"/>
|
||||
<Action name="file_save_as" group="save_merge"/>
|
||||
</Menu>
|
||||
|
||||
<Menu name="edit" noMerge="1"><text>&Edit</text>
|
||||
<Action name="edit_undo" group="edit_undo_merge"/>
|
||||
<Action name="edit_redo" group="edit_undo_merge"/>
|
||||
<Separator group="edit_undo_merge"/>
|
||||
<Action name="edit_cut" group="edit_paste_merge"/>
|
||||
<Action name="edit_copy" group="edit_paste_merge"/>
|
||||
<Action name="edit_paste" group="edit_paste_merge"/>
|
||||
<Separator group="edit_paste_merge"/>
|
||||
<Action name="edit_delete" group="edit_select_merge"/>
|
||||
<Action name="edit_select_all" group="edit_select_merge"/>
|
||||
<Separator group="edit_select_merge"/>
|
||||
<Action name="edit_accels" group="edit_select_merge"/>
|
||||
<Separator group="edit_select_merge"/>
|
||||
<Action name="edit_functions" group="edit_select_merge"/>
|
||||
<Action name="edit_connections" group="edit_select_merge"/>
|
||||
<Action name="edit_formsettings" group="edit_select_merge"/>
|
||||
<Separator group="edit_select_merge"/>
|
||||
</Menu>
|
||||
|
||||
<Menu name="project" noMerge="1"><text>&Project</text>
|
||||
<Action name="project_imagecollection" group="designer_project"/>
|
||||
<Action name="project_databasecollections" group="designer_project"/>
|
||||
<Separator group="designer_project"/>
|
||||
<Action name="project_settings" group="designer_project"/>
|
||||
<Separator group="designer_project"/>
|
||||
</Menu>
|
||||
|
||||
<Menu name="tools" noMerge="1"><text>&Tools</text>
|
||||
<Action name="tools_pointer" group="tools_operations"/>
|
||||
<Action name="tools_connect" group="tools_operations"/>
|
||||
<Action name="tools_taborder" group="tools_operations"/>
|
||||
<Action name="tools_setbuddy" group="tools_operations"/>
|
||||
<Action name="tools_toolbox" group="tools_operations"/>
|
||||
<Action name="tools_editcustomwidgets" group="tools_operations"/>
|
||||
<Separator group="tools_operations"/>
|
||||
</Menu>
|
||||
|
||||
<Menu name="layout" noMerge="1"><text>&Layout</text>
|
||||
<Action name="layout_adjustsize"/>
|
||||
<Separator/>
|
||||
<Action name="layout_h"/>
|
||||
<Action name="layout_v"/>
|
||||
<Action name="layout_grid"/>
|
||||
<Action name="layout_splith"/>
|
||||
<Action name="layout_splitv"/>
|
||||
<Action name="layout_break"/>
|
||||
<Separator/>
|
||||
<Action name="layout_spacer"/>
|
||||
</Menu>
|
||||
|
||||
<Menu name="settings" noMerge="1"><text>&Settings</text>
|
||||
<Action name="options_configure" group="configure_merge"/>
|
||||
</Menu>
|
||||
|
||||
<Menu name="window" noMerge="1"><text>&Window</text>
|
||||
<Action name="window_preview" group="window_operations"/>
|
||||
<Separator group="window_operations"/>
|
||||
<Action name="window_next" group="window_operations"/>
|
||||
<Action name="window_prev" group="window_operations"/>
|
||||
</Menu>
|
||||
|
||||
</MenuBar>
|
||||
|
||||
<!--<ToolBar name="fileToolBar" noMerge="1"><text>File Toolbar</text>
|
||||
<Action name="file_new"/>
|
||||
<Action name="file_open"/>
|
||||
<Action name="file_save"/>
|
||||
</ToolBar>
|
||||
|
||||
<ToolBar name="editToolBar" noMerge="1"><text>Edit Toolbar</text>
|
||||
<Action name="edit_undo"/>
|
||||
<Action name="edit_redo"/>
|
||||
<Separator/>
|
||||
<Action name="edit_cut"/>
|
||||
<Action name="edit_copy"/>
|
||||
<Action name="edit_paste"/>
|
||||
</ToolBar> -->
|
||||
|
||||
<ToolBar name="mainToolBar" noMerge="1"><text>Main Toolbar</text>
|
||||
<Action name="file_open" group="file_operations"/>
|
||||
<Action name="file_save" group="file_operations"/>
|
||||
<Separator group="file_operations"/>
|
||||
<Action name="edit_undo" group="edit_operations"/>
|
||||
<Action name="edit_redo" group="edit_operations"/>
|
||||
<Separator group="edit_operations"/>
|
||||
<Action name="edit_cut" group="edit_operations"/>
|
||||
<Action name="edit_copy" group="edit_operations"/>
|
||||
<Action name="edit_paste" group="edit_operations"/>
|
||||
</ToolBar>
|
||||
|
||||
|
||||
<ToolBar name="layoutToolBar" noMerge="1"><text>Layout Toolbar</text>
|
||||
<Action name="layout_adjustsize"/>
|
||||
<Separator/>
|
||||
<Action name="layout_h"/>
|
||||
<Action name="layout_v"/>
|
||||
<Action name="layout_grid"/>
|
||||
<Action name="layout_splith"/>
|
||||
<Action name="layout_splitv"/>
|
||||
<Action name="layout_break"/>
|
||||
<Separator/>
|
||||
<Action name="layout_spacer"/>
|
||||
</ToolBar>
|
||||
|
||||
<ToolBar name="toolsToolBar" noMerge="1"><text>Tools Toolbar</text>
|
||||
<Action name="tools_pointer"/>
|
||||
<Action name="tools_connect"/>
|
||||
<Action name="tools_taborder"/>
|
||||
<Action name="tools_setbuddy"/>
|
||||
</ToolBar>
|
||||
|
||||
</kpartgui>
|
@ -0,0 +1,116 @@
|
||||
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
|
||||
<kpartgui name="kdevdesigner_part" version="4">
|
||||
<MenuBar>
|
||||
<Menu name="file" noMerge="1"><text>&File</text>
|
||||
<Action name="file_new" group="new_merge"/>
|
||||
<Action name="file_open" group="open_merge"/>
|
||||
<Separator/>
|
||||
<Action name="file_close" group="close_merge"/>
|
||||
<Separator/>
|
||||
<Action name="file_save" group="save_merge"/>
|
||||
<Action name="file_save_as" group="save_merge"/>
|
||||
<Action name="file_saveall" group="save_merge"/>
|
||||
<Separator/>
|
||||
<Action name="file_createtemplate"/>
|
||||
<Separator/>
|
||||
</Menu>
|
||||
|
||||
<Menu name="edit" noMerge="1"><text>&Edit</text>
|
||||
<Action name="edit_undo" group="edit_undo_merge"/>
|
||||
<Action name="edit_redo" group="edit_undo_merge"/>
|
||||
<Separator group="edit_undo_merge"/>
|
||||
<Action name="edit_cut" group="edit_paste_merge"/>
|
||||
<Action name="edit_copy" group="edit_paste_merge"/>
|
||||
<Action name="edit_paste" group="edit_paste_merge"/>
|
||||
<Separator group="edit_paste_merge"/>
|
||||
<Action name="edit_delete" group="edit_select_merge"/>
|
||||
<Action name="edit_select_all" group="edit_select_merge"/>
|
||||
<Separator group="edit_select_merge"/>
|
||||
<Action name="edit_accels"/>
|
||||
<Separator/>
|
||||
<Action name="edit_functions"/>
|
||||
<Action name="edit_connections"/>
|
||||
<Action name="edit_formsettings"/>
|
||||
</Menu>
|
||||
|
||||
<Menu name="project" noMerge="1"><text>&Project</text>
|
||||
<Action name="project_addfile"/>
|
||||
<Action name="project_imagecollection"/>
|
||||
<Action name="project_databasecollections"/>
|
||||
<Separator/>
|
||||
<Action name="project_settings"/>
|
||||
</Menu>
|
||||
|
||||
<Menu name="tools" noMerge="1"><text>&Tools</text>
|
||||
<Action name="tools_pointer" group="tools_operations"/>
|
||||
<Action name="tools_connect" group="tools_operations"/>
|
||||
<Action name="tools_taborder" group="tools_operations"/>
|
||||
<Action name="tools_setbuddy" group="tools_operations"/>
|
||||
<Action name="tools_toolbox" group="tools_operations"/>
|
||||
<Action name="tools_editcustomwidgets" group="tools_operations"/>
|
||||
<!-- <Separator/>
|
||||
<Action name="tools_toolbox"/>-->
|
||||
</Menu>
|
||||
|
||||
<Menu name="layout" noMerge="1"><text>&Layout</text>
|
||||
<Action name="layout_adjustsize"/>
|
||||
<Separator/>
|
||||
<Action name="layout_h"/>
|
||||
<Action name="layout_v"/>
|
||||
<Action name="layout_grid"/>
|
||||
<Action name="layout_splith"/>
|
||||
<Action name="layout_splitv"/>
|
||||
<Action name="layout_break"/>
|
||||
<Separator/>
|
||||
<Action name="layout_spacer"/>
|
||||
</Menu>
|
||||
|
||||
<Menu name="settings" noMerge="1"><text>&Settings</text>
|
||||
<Action name="options_configure"/>
|
||||
</Menu>
|
||||
|
||||
<Menu name="window" noMerge="1"><text>&Window</text>
|
||||
<Action name="window_preview" group="window_operations"/>
|
||||
<Separator/>
|
||||
<Action name="window_next" group="window_operations"/>
|
||||
<Action name="window_prev" group="window_operations"/>
|
||||
</Menu>
|
||||
|
||||
</MenuBar>
|
||||
|
||||
<ToolBar name="fileToolBar" noMerge="1"><text>File Toolbar</text>
|
||||
<Action name="file_new"/>
|
||||
<Action name="file_open"/>
|
||||
<Action name="file_save"/>
|
||||
</ToolBar>
|
||||
|
||||
<ToolBar name="editToolBar" noMerge="1"><text>Edit Toolbar</text>
|
||||
<Action name="edit_undo"/>
|
||||
<Action name="edit_redo"/>
|
||||
<Separator/>
|
||||
<Action name="edit_cut"/>
|
||||
<Action name="edit_copy"/>
|
||||
<Action name="edit_paste"/>
|
||||
</ToolBar>
|
||||
|
||||
<ToolBar name="layoutToolBar" noMerge="1"><text>Layout Toolbar</text>
|
||||
<Action name="layout_adjustsize"/>
|
||||
<Separator/>
|
||||
<Action name="layout_h"/>
|
||||
<Action name="layout_v"/>
|
||||
<Action name="layout_grid"/>
|
||||
<Action name="layout_splith"/>
|
||||
<Action name="layout_splitv"/>
|
||||
<Action name="layout_break"/>
|
||||
<Separator/>
|
||||
<Action name="layout_spacer"/>
|
||||
</ToolBar>
|
||||
|
||||
<ToolBar name="toolsToolBar" noMerge="1"><text>Tools Toolbar</text>
|
||||
<Action name="tools_pointer"/>
|
||||
<Action name="tools_connect"/>
|
||||
<Action name="tools_taborder"/>
|
||||
<Action name="tools_setbuddy"/>
|
||||
</ToolBar>
|
||||
|
||||
</kpartgui>
|
@ -0,0 +1,513 @@
|
||||
/**********************************************************************
|
||||
** Copyright (C) 2000 Trolltech AS. All rights reserved.
|
||||
**
|
||||
** This file is part of TQt Designer.
|
||||
**
|
||||
** This file may be distributed and/or modified under the terms of the
|
||||
** GNU General Public License version 2 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file.
|
||||
**
|
||||
** Licensees holding valid TQt Enterprise Edition or TQt Professional Edition
|
||||
** licenses may use this file in accordance with the TQt Commercial License
|
||||
** Agreement provided with the Software.
|
||||
**
|
||||
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
**
|
||||
** See http://www.trolltech.com/gpl/ for GPL licensing information.
|
||||
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
|
||||
** information about TQt Commercial License Agreements.
|
||||
**
|
||||
** Contact info@trolltech.com if any conditions of this licensing are
|
||||
** not clear to you.
|
||||
**
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef MAINWINDOW_H
|
||||
#define MAINWINDOW_H
|
||||
|
||||
#include "metadatabase.h"
|
||||
#include "../interfaces/actioninterface.h" // for GCC 2.7.* compatibility
|
||||
#include "../interfaces/editorinterface.h"
|
||||
#include "../interfaces/templatewizardiface.h"
|
||||
#include "../interfaces/languageinterface.h"
|
||||
#include "../interfaces/filterinterface.h"
|
||||
#include "../interfaces/interpreterinterface.h"
|
||||
#include "../interfaces/preferenceinterface.h"
|
||||
#include "../interfaces/projectsettingsiface.h"
|
||||
#include "../interfaces/sourcetemplateiface.h"
|
||||
#include "sourceeditor.h"
|
||||
|
||||
#include <tqaction.h>
|
||||
#include <tqmainwindow.h>
|
||||
#include <tqmap.h>
|
||||
#include <tqguardedptr.h>
|
||||
#include <tqpluginmanager_p.h>
|
||||
#include <tqobjectlist.h>
|
||||
|
||||
class TQToolBox;
|
||||
class PropertyEditor;
|
||||
class TQWorkspace;
|
||||
class TQMenuBar;
|
||||
class FormWindow;
|
||||
class TQPopupMenu;
|
||||
class HierarchyView;
|
||||
class TQCloseEvent;
|
||||
class Workspace;
|
||||
class ActionEditor;
|
||||
class Project;
|
||||
class OutputWindow;
|
||||
class TQTimer;
|
||||
class FindDialog;
|
||||
struct DesignerProject;
|
||||
class ReplaceDialog;
|
||||
class GotoLineDialog;
|
||||
class SourceFile;
|
||||
class FormFile;
|
||||
class TQAssistantClient;
|
||||
class DesignerAction;
|
||||
|
||||
#if defined(TQ_FULL_TEMPLATE_INSTANTIATION)
|
||||
#include <tqtoolbar.h>
|
||||
#else
|
||||
class TQToolBar;
|
||||
#endif
|
||||
class Preferences;
|
||||
|
||||
class KDevDesignerPart;
|
||||
|
||||
class MainWindow : public TQMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
enum LineMode { Error, Step, StackFrame };
|
||||
|
||||
MainWindow( KDevDesignerPart *part, bool asClient, bool single = FALSE, const TQString &plgDir = "/designer" );
|
||||
~MainWindow();
|
||||
|
||||
HierarchyView *objectHierarchy() const;
|
||||
Workspace *workspace() const;
|
||||
PropertyEditor *propertyeditor() const;
|
||||
ActionEditor *actioneditor() const;
|
||||
|
||||
void resetTool();
|
||||
int currentTool() const;
|
||||
|
||||
FormWindow *formWindow();
|
||||
|
||||
bool unregisterClient( FormWindow *w );
|
||||
void editorClosed( SourceEditor *e );
|
||||
TQWidget *isAFormWindowChild( TQObject *o ) const;
|
||||
TQWidget *isAToolBarChild( TQObject *o ) const;
|
||||
|
||||
void insertFormWindow( FormWindow *fw );
|
||||
TQWorkspace *qWorkspace() const;
|
||||
|
||||
void popupFormWindowMenu( const TQPoint &gp, FormWindow *fw );
|
||||
void popupWidgetMenu( const TQPoint &gp, FormWindow *fw, TQWidget *w );
|
||||
|
||||
TQPopupMenu *setupNormalHierarchyMenu( TQWidget *parent );
|
||||
TQPopupMenu *setupTabWidgetHierarchyMenu( TQWidget *parent, const char *addSlot, const char *removeSlot );
|
||||
|
||||
FormWindow *openFormWindow( const TQString &fn, bool validFileName = TRUE, FormFile *ff = 0 );
|
||||
bool isCustomWidgetUsed( MetaDataBase::CustomWidget *w );
|
||||
|
||||
void setGrid( const TQPoint &p );
|
||||
void setShowGrid( bool b );
|
||||
void setSnapGrid( bool b );
|
||||
TQPoint grid() const { return grd; }
|
||||
bool showGrid() const { return sGrid; }
|
||||
bool snapGrid() const { return snGrid && sGrid; }
|
||||
|
||||
TQString documentationPath() const;
|
||||
|
||||
static MainWindow *self;
|
||||
|
||||
TQString templatePath() const { return templPath; }
|
||||
|
||||
void editFunction( const TQString &func, bool rereadSource = FALSE );
|
||||
|
||||
bool isPreviewing() const { return previewing; }
|
||||
|
||||
Project *currProject() const { return currentProject; }
|
||||
|
||||
FormWindow *activeForm() const { return lastActiveFormWindow; }
|
||||
|
||||
TemplateWizardInterface* templateWizardInterface( const TQString& className );
|
||||
TQStringList sourceTemplates() const;
|
||||
SourceTemplateInterface* sourceTemplateInterface( const TQString& templ );
|
||||
TQUnknownInterface* designerInterface() const { return desInterface; }
|
||||
TQPtrList<DesignerProject> projectList() const;
|
||||
TQStringList projectNames() const;
|
||||
TQStringList projectFileNames() const;
|
||||
Project *findProject( const TQString &projectName ) const;
|
||||
void setCurrentProject( Project *pro );
|
||||
void setCurrentProjectByFilename( const TQString& proFilename );
|
||||
OutputWindow *outputWindow() const { return oWindow; }
|
||||
void addPreferencesTab( TQWidget *tab, const TQString &title, TQObject *receiver, const char *init_slot, const char *accept_slot );
|
||||
void addProjectTab( TQWidget *tab, const TQString &title, TQObject *receiver, const char *init_slot, const char *accept_slot );
|
||||
void setModified( bool b, TQWidget *window );
|
||||
void functionsChanged();
|
||||
void updateFunctionList();
|
||||
void updateWorkspace();
|
||||
void runProjectPrecondition();
|
||||
void runProjectPostcondition( TQObjectList *l );
|
||||
|
||||
void formNameChanged( FormWindow *fw );
|
||||
|
||||
int currentLayoutDefaultSpacing() const;
|
||||
int currentLayoutDefaultMargin() const;
|
||||
|
||||
void saveAllBreakPoints();
|
||||
void resetBreakPoints();
|
||||
|
||||
SourceFile *sourceFile();
|
||||
void createNewProject( const TQString &lang );
|
||||
|
||||
void popupProjectMenu( const TQPoint &pos );
|
||||
TQObject *findRealObject( TQObject *o );
|
||||
|
||||
void setSingleProject( Project *pro );
|
||||
bool singleProjectMode() const { return singleProject; }
|
||||
|
||||
void showSourceLine( TQObject *o, int line, LineMode lm );
|
||||
|
||||
void shuttingDown();
|
||||
void showGUIStuff( bool b );
|
||||
void setEditorsReadOnly( bool b );
|
||||
bool areEditorsReadOnly() const { return editorsReadOnly; }
|
||||
void toggleSignalHandlers( bool show );
|
||||
bool showSignalHandlers() const { return sSignalHandlers; }
|
||||
void writeConfig();
|
||||
|
||||
void openProject( const TQString &fn );
|
||||
void setPluginDirectory( const TQString &pd );
|
||||
TQString pluginDirectory() const { return pluginDir; }
|
||||
|
||||
TQAssistantClient* assistantClient() const { return assistant; }
|
||||
|
||||
void addRecentlyOpenedFile( const TQString &fn ) { addRecentlyOpened( fn, recentlyFiles ); }
|
||||
|
||||
void statusMessage(const TQString &msg);
|
||||
|
||||
//integration
|
||||
KDevDesignerPart *part() const { return m_part; }
|
||||
|
||||
public slots:
|
||||
void showProperties( TQObject *w );
|
||||
void updateProperties( TQObject *w );
|
||||
void showDialogHelp();
|
||||
void showDebugStep( TQObject *o, int line );
|
||||
void showStackFrame( TQObject *o, int line );
|
||||
void showErrorMessage( TQObject *o, int line, const TQString &errorMessage );
|
||||
void finishedRun();
|
||||
void breakPointsChanged();
|
||||
|
||||
signals:
|
||||
void currentToolChanged();
|
||||
void hasActiveForm( bool );
|
||||
void hasActiveWindow( bool );
|
||||
void hasActiveWindowOrProject( bool );
|
||||
void hasNonDummyProject( bool );
|
||||
void formModified( bool );
|
||||
void formWindowsChanged();
|
||||
void formWindowChanged();
|
||||
void projectChanged();
|
||||
void editorChanged();
|
||||
|
||||
protected:
|
||||
bool eventFilter( TQObject *o, TQEvent *e );
|
||||
void closeEvent( TQCloseEvent *e );
|
||||
|
||||
public slots:
|
||||
void fileNew();
|
||||
void fileNewDialog();
|
||||
void fileNewFile();
|
||||
void fileClose();
|
||||
void fileQuit();
|
||||
void fileCloseProject(); // not visible in menu, called from fileClose
|
||||
void fileOpen();
|
||||
void fileOpen( const TQString &filter, const TQString &extension, const TQString &filename = "" , bool inProject = TRUE );
|
||||
bool fileSave();
|
||||
bool fileSaveForm(); // not visible in menu, called from fileSave
|
||||
bool fileSaveProject(); // not visible in menu, called from fileSaveProject
|
||||
bool fileSaveAs();
|
||||
void fileSaveAll();
|
||||
void fileCreateTemplate();
|
||||
|
||||
public slots:
|
||||
void editUndo();
|
||||
void editRedo();
|
||||
void editCut();
|
||||
void editCopy();
|
||||
void editPaste();
|
||||
void editDelete();
|
||||
void editSelectAll();
|
||||
void editLower();
|
||||
void editRaise();
|
||||
void editAdjustSize();
|
||||
void editLayoutHorizontal();
|
||||
void editLayoutVertical();
|
||||
void editLayoutHorizontalSplit();
|
||||
void editLayoutVerticalSplit();
|
||||
void editLayoutGrid();
|
||||
void editLayoutContainerHorizontal();
|
||||
void editLayoutContainerVertical();
|
||||
void editLayoutContainerGrid();
|
||||
void editBreakLayout();
|
||||
void editAccels();
|
||||
void editFunctions();
|
||||
void editConnections();
|
||||
SourceEditor *editSource();
|
||||
SourceEditor *editSource( SourceFile *f );
|
||||
SourceEditor *openSourceEditor();
|
||||
SourceEditor *createSourceEditor( TQObject *object, Project *project,
|
||||
const TQString &lang = TQString(),
|
||||
const TQString &func = TQString(),
|
||||
bool rereadSource = FALSE );
|
||||
void editFormSettings();
|
||||
void editProjectSettings();
|
||||
void editPixmapCollection();
|
||||
void editDatabaseConnections();
|
||||
void editPreferences();
|
||||
|
||||
void projectInsertFile();
|
||||
|
||||
void searchFind();
|
||||
void searchIncremetalFindMenu();
|
||||
void searchIncremetalFind();
|
||||
void searchIncremetalFindNext();
|
||||
void searchReplace();
|
||||
void searchGotoLine();
|
||||
|
||||
void previewForm();
|
||||
void previewForm( const TQString& );
|
||||
|
||||
void toolsCustomWidget();
|
||||
void toolsConfigure();
|
||||
|
||||
void helpContents();
|
||||
void helpManual();
|
||||
void helpAbout();
|
||||
void helpAboutQt();
|
||||
void helpRegister();
|
||||
|
||||
private slots:
|
||||
void activeWindowChanged( TQWidget *w );
|
||||
void updateUndoRedo( bool, bool, const TQString &, const TQString & );
|
||||
void updateEditorUndoRedo();
|
||||
|
||||
void toolSelected( TQAction* );
|
||||
|
||||
void clipboardChanged();
|
||||
void selectionChanged();
|
||||
|
||||
void windowsMenuActivated( int id );
|
||||
void setupWindowActions();
|
||||
|
||||
void createNewTemplate();
|
||||
void projectSelected( TQAction *a );
|
||||
|
||||
void setupRecentlyFilesMenu();
|
||||
void setupRecentlyProjectsMenu();
|
||||
void recentlyFilesMenuActivated( int id );
|
||||
void recentlyProjectsMenuActivated( int id );
|
||||
|
||||
void emitProjectSignals();
|
||||
|
||||
void showStartDialog();
|
||||
|
||||
private:
|
||||
void setupMDI();
|
||||
void setupMenuBar();
|
||||
void setupEditActions();
|
||||
void setupProjectActions();
|
||||
void setupSearchActions();
|
||||
void setupToolActions();
|
||||
void setupLayoutActions();
|
||||
void setupFileActions();
|
||||
void setupPreviewActions();
|
||||
void setupHelpActions();
|
||||
void setupRMBMenus();
|
||||
|
||||
void setupPropertyEditor();
|
||||
void setupHierarchyView();
|
||||
void setupWorkspace();
|
||||
void setupActionEditor();
|
||||
void setupOutputWindow();
|
||||
void setupToolbox();
|
||||
|
||||
void setupActionManager();
|
||||
void setupPluginManagers();
|
||||
|
||||
void enableAll( bool enable );
|
||||
|
||||
TQWidget* previewFormInternal( TQStyle* style = 0, TQPalette* pal = 0 );
|
||||
|
||||
void readConfig();
|
||||
|
||||
void setupRMBProperties( TQValueList<uint> &ids, TQMap<TQString, int> &props, TQWidget *w );
|
||||
void handleRMBProperties( int id, TQMap<TQString, int> &props, TQWidget *w );
|
||||
void setupRMBSpecialCommands( TQValueList<uint> &ids, TQMap<TQString, int> &commands, TQWidget *w );
|
||||
void handleRMBSpecialCommands( int id, TQMap<TQString, int> &commands, TQWidget *w );
|
||||
void setupRMBSpecialCommands( TQValueList<uint> &ids, TQMap<TQString, int> &commands, FormWindow *w );
|
||||
void handleRMBSpecialCommands( int id, TQMap<TQString, int> &commands, FormWindow *w );
|
||||
bool openEditor( TQWidget *w, FormWindow *fw );
|
||||
void rebuildCustomWidgetGUI();
|
||||
void rebuildCommonWidgetsToolBoxPage();
|
||||
void checkTempFiles();
|
||||
|
||||
void addRecentlyOpened( const TQString &fn, TQStringList &lst );
|
||||
|
||||
TQString whatsThisFrom( const TQString &key );
|
||||
|
||||
private slots:
|
||||
void doFunctionsChanged();
|
||||
bool openProjectSettings( Project *pro );
|
||||
|
||||
private:
|
||||
struct Tab
|
||||
{
|
||||
TQWidget *w;
|
||||
TQString title;
|
||||
TQObject *receiver;
|
||||
const char *init_slot, *accept_slot;
|
||||
TQ_DUMMY_COMPARISON_OPERATOR( Tab )
|
||||
};
|
||||
|
||||
private:
|
||||
PropertyEditor *propertyEditor;
|
||||
HierarchyView *hierarchyView;
|
||||
Workspace *wspace;
|
||||
TQWidget *lastPressWidget;
|
||||
TQWorkspace *qworkspace;
|
||||
TQMenuBar *menubar;
|
||||
TQGuardedPtr<FormWindow> lastActiveFormWindow;
|
||||
bool breakLayout, layoutChilds, layoutSelected;
|
||||
TQPoint grd;
|
||||
bool sGrid, snGrid;
|
||||
bool restoreConfig;
|
||||
bool backPix;
|
||||
bool splashScreen;
|
||||
TQString fileFilter;
|
||||
|
||||
TQMap<TQAction*, Project*> projects;
|
||||
DesignerAction *actionEditUndo, *actionEditRedo, *actionEditCut, *actionEditCopy,
|
||||
*actionEditPaste, *actionEditDelete,
|
||||
*actionEditAdjustSize,
|
||||
*actionEditHLayout, *actionEditVLayout, *actionEditGridLayout,
|
||||
*actionEditSplitHorizontal, *actionEditSplitVertical,
|
||||
*actionEditSelectAll, *actionEditBreakLayout, *actionEditFunctions, *actionEditConnections,
|
||||
*actionEditLower, *actionEditRaise;
|
||||
TQAction *actionInsertSpacer;
|
||||
TQActionGroup *actionGroupTools, *actionGroupProjects;
|
||||
TQAction* actionPointerTool, *actionConnectTool, *actionOrderTool, *actionBuddyTool;
|
||||
TQAction* actionCurrentTool;
|
||||
DesignerAction *actionHelpContents, *actionHelpAbout, *actionHelpAboutTQt, *actionHelpWhatsThis;
|
||||
DesignerAction *actionHelpManual;
|
||||
#if defined(TQT_NON_COMMERCIAL)
|
||||
DesignerAction *actionHelpRegister;
|
||||
#endif
|
||||
DesignerAction *actionToolsCustomWidget, *actionEditPreferences;
|
||||
DesignerAction *actionWindowTile, *actionWindowCascade, *actionWindowClose, *actionWindowCloseAll;
|
||||
DesignerAction *actionWindowNext, *actionWindowPrevious;
|
||||
DesignerAction *actionEditFormSettings, *actionEditAccels;
|
||||
DesignerAction *actionEditSource, *actionNewFile, *actionFileSave, *actionFileExit;
|
||||
DesignerAction *actionFileClose, *actionFileSaveAs, *actionFileSaveAll;
|
||||
DesignerAction *actionSearchFind, *actionSearchIncremetal, *actionSearchReplace, *actionSearchGotoLine;
|
||||
DesignerAction *actionProjectAddFile, *actionEditPixmapCollection, *actionEditDatabaseConnections,
|
||||
*actionEditProjectSettings, *actionPreview;
|
||||
TQActionGroup *actionGroupNew;
|
||||
|
||||
TQPopupMenu *rmbWidgets;
|
||||
TQPopupMenu *rmbFormWindow;
|
||||
TQPopupMenu *customWidgetMenu, *windowMenu, *fileMenu, *recentlyFilesMenu, *recentlyProjectsMenu;
|
||||
TQPopupMenu *toolsMenu, *layoutMenu, *previewMenu;
|
||||
TQToolBar *customWidgetToolBar, *layoutToolBar, *projectToolBar, *customWidgetToolBar2, *toolsToolBar;
|
||||
TQToolBar *commonWidgetsToolBar;
|
||||
TQPtrList<TQToolBar> widgetToolBars;
|
||||
|
||||
Preferences *prefDia;
|
||||
TQMap<TQString,TQString> propertyDocumentation;
|
||||
bool client;
|
||||
TQString templPath;
|
||||
ActionEditor *actionEditor;
|
||||
Project *currentProject;
|
||||
TQPluginManager<ActionInterface> *actionPluginManager;
|
||||
TQPluginManager<EditorInterface> *editorPluginManager;
|
||||
TQPluginManager<TemplateWizardInterface> *templateWizardPluginManager;
|
||||
TQPluginManager<InterpreterInterface> *interpreterPluginManager;
|
||||
TQPluginManager<PreferenceInterface> *preferencePluginManager;
|
||||
TQPluginManager<ProjectSettingsInterface> *projectSettingsPluginManager;
|
||||
TQPluginManager<SourceTemplateInterface> *sourceTemplatePluginManager;
|
||||
TQPtrList<SourceEditor> sourceEditors;
|
||||
bool previewing;
|
||||
TQUnknownInterface *desInterface;
|
||||
TQStringList recentlyFiles;
|
||||
TQStringList recentlyProjects;
|
||||
OutputWindow *oWindow;
|
||||
TQValueList<Tab> preferenceTabs;
|
||||
TQValueList<Tab> projectTabs;
|
||||
bool databaseAutoEdit;
|
||||
TQTimer *updateFunctionsTimer;
|
||||
TQTimer *autoSaveTimer;
|
||||
bool autoSaveEnabled;
|
||||
int autoSaveInterval;
|
||||
TQLineEdit *incrementalSearch;
|
||||
TQGuardedPtr<FindDialog> findDialog;
|
||||
TQGuardedPtr<ReplaceDialog> replaceDialog;
|
||||
TQGuardedPtr<GotoLineDialog> gotoLineDialog;
|
||||
Project *eProject;
|
||||
bool inDebugMode;
|
||||
TQObjectList debuggingForms;
|
||||
TQString lastOpenFilter;
|
||||
TQGuardedPtr<TQWidget> previewedForm;
|
||||
TQPopupMenu *projectMenu;
|
||||
TQString menuHelpFile;
|
||||
bool singleProject;
|
||||
TQToolBox *toolBox;
|
||||
int toolsMenuId, toolsMenuIndex;
|
||||
uint guiStuffVisible : 1;
|
||||
uint editorsReadOnly : 1;
|
||||
uint savePluginPaths : 1;
|
||||
TQAssistantClient *assistant;
|
||||
bool shStartDialog;
|
||||
TQString pluginDir;
|
||||
bool sSignalHandlers;
|
||||
|
||||
KDevDesignerPart *m_part;
|
||||
|
||||
public:
|
||||
TQString lastSaveFilter;
|
||||
TQPtrList<TQAction> toolActions;
|
||||
TQPtrList<TQAction> commonWidgetsPage;
|
||||
|
||||
friend class KDevDesignerPart;
|
||||
};
|
||||
|
||||
class SenderObject : public TQObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
SenderObject( TQUnknownInterface *i ) : iface( i ) { iface->addRef(); }
|
||||
~SenderObject() { iface->release(); }
|
||||
|
||||
public slots:
|
||||
void emitInitSignal() { emit initSignal( iface ); }
|
||||
void emitAcceptSignal() { emit acceptSignal( iface ); }
|
||||
|
||||
signals:
|
||||
void initSignal( TQUnknownInterface * );
|
||||
void acceptSignal( TQUnknownInterface * );
|
||||
|
||||
private:
|
||||
TQUnknownInterface *iface;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,415 @@
|
||||
/**********************************************************************
|
||||
** Copyright (C) 2000 Trolltech AS. All rights reserved.
|
||||
**
|
||||
** This file is part of TQt Designer.
|
||||
**
|
||||
** This file may be distributed and/or modified under the terms of the
|
||||
** GNU General Public License version 2 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file.
|
||||
**
|
||||
** Licensees holding valid TQt Enterprise Edition or TQt Professional Edition
|
||||
** licenses may use this file in accordance with the TQt Commercial License
|
||||
** Agreement provided with the Software.
|
||||
**
|
||||
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
**
|
||||
** See http://www.trolltech.com/gpl/ for GPL licensing information.
|
||||
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
|
||||
** information about TQt Commercial License Agreements.
|
||||
**
|
||||
** Contact info@trolltech.com if any conditions of this licensing are
|
||||
** not clear to you.
|
||||
**
|
||||
**********************************************************************/
|
||||
|
||||
#include "multilineeditorimpl.h"
|
||||
#include "formwindow.h"
|
||||
#include "command.h"
|
||||
#include "mainwindow.h"
|
||||
#include "richtextfontdialog.h"
|
||||
#include "syntaxhighlighter_html.h"
|
||||
#include "widgetfactory.h"
|
||||
|
||||
#include <kiconloader.h>
|
||||
#include "kdevdesigner_part.h"
|
||||
|
||||
#include <tqtextedit.h>
|
||||
#include <tqrichtext_p.h>
|
||||
#include <tqpushbutton.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqtoolbutton.h>
|
||||
#include <tqapplication.h>
|
||||
#include <tqaction.h>
|
||||
#include <tqmetaobject.h>
|
||||
|
||||
#include <tdelocale.h>
|
||||
|
||||
ToolBarItem::ToolBarItem( TQWidget *parent, TQWidget *toolBar,
|
||||
const TQString &label, const TQString &tagstr,
|
||||
const TQIconSet &icon, const TQKeySequence &key )
|
||||
: TQAction( parent )
|
||||
{
|
||||
setIconSet( icon );
|
||||
setText( label );
|
||||
setAccel( key );
|
||||
addTo( toolBar );
|
||||
tag = tagstr;
|
||||
connect( this, TQT_SIGNAL( activated() ), this, TQT_SLOT( wasActivated() ) );
|
||||
}
|
||||
|
||||
ToolBarItem::~ToolBarItem()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ToolBarItem::wasActivated()
|
||||
{
|
||||
emit clicked( tag );
|
||||
}
|
||||
|
||||
TextEdit::TextEdit( TQWidget *parent, const char *name )
|
||||
: TQTextEdit( parent, name )
|
||||
{
|
||||
setTextFormat( TQt::PlainText );
|
||||
}
|
||||
|
||||
TQTextParagraph* TextEdit::paragraph()
|
||||
{
|
||||
TQTextCursor *tc = new TQTextCursor( TQTextEdit::document() );
|
||||
return tc->paragraph();
|
||||
}
|
||||
|
||||
|
||||
MultiLineEditor::MultiLineEditor( bool call_static, bool richtextMode, TQWidget *parent, TQWidget *editWidget,
|
||||
FormWindow *fw, const TQString &text )
|
||||
: MultiLineEditorBase( parent, 0, WType_Dialog | WShowModal ), formwindow( fw ), doWrap( FALSE )
|
||||
{
|
||||
callStatic = call_static;
|
||||
|
||||
if ( callStatic )
|
||||
applyButton->hide();
|
||||
|
||||
textEdit = new TextEdit( centralWidget(), "textedit" );
|
||||
Layout4->insertWidget( 0, textEdit );
|
||||
|
||||
if ( richtextMode ) {
|
||||
TQPopupMenu *stylesMenu = new TQPopupMenu( this );
|
||||
menuBar->insertItem( i18n( "&Styles" ), stylesMenu );
|
||||
|
||||
basicToolBar = new TQToolBar( i18n( "Basics" ), this, DockTop );
|
||||
|
||||
ToolBarItem *it = new ToolBarItem( this, basicToolBar, i18n( "Italic" ),
|
||||
"i", BarIcon( "designer_textitalic.png", KDevDesignerPartFactory::instance() ), CTRL+Key_I );
|
||||
it->addTo( stylesMenu );
|
||||
connect( it, TQT_SIGNAL( clicked( const TQString& ) ),
|
||||
this, TQT_SLOT( insertTags( const TQString& )));
|
||||
|
||||
ToolBarItem *b = new ToolBarItem( this, basicToolBar, i18n( "Bold" ),
|
||||
"b", BarIcon( "designer_textbold.png", KDevDesignerPartFactory::instance() ), CTRL+Key_B );
|
||||
b->addTo( stylesMenu );
|
||||
connect( b, TQT_SIGNAL( clicked( const TQString& ) ),
|
||||
this, TQT_SLOT( insertTags( const TQString& )));
|
||||
|
||||
ToolBarItem *ul = new ToolBarItem( this, basicToolBar, i18n( "Underline" ),
|
||||
"u", BarIcon( "designer_textunderline.png" , KDevDesignerPartFactory::instance()), CTRL+Key_U );
|
||||
ul->addTo( stylesMenu );
|
||||
connect( ul, TQT_SIGNAL( clicked( const TQString& ) ),
|
||||
this, TQT_SLOT( insertTags( const TQString& )));
|
||||
|
||||
ToolBarItem *tt = new ToolBarItem( this, basicToolBar, i18n( "Typewriter" ),
|
||||
"tt", BarIcon( "designer_textteletext.png", KDevDesignerPartFactory::instance() ) );
|
||||
tt->addTo( stylesMenu );
|
||||
connect( tt, TQT_SIGNAL( clicked( const TQString& ) ),
|
||||
this, TQT_SLOT( insertTags( const TQString& )));
|
||||
|
||||
basicToolBar->addSeparator();
|
||||
|
||||
TQPopupMenu *layoutMenu = new TQPopupMenu( this );
|
||||
menuBar->insertItem( i18n( "&Layout" ), layoutMenu );
|
||||
|
||||
TQAction *brAction = new TQAction( this );
|
||||
brAction->setIconSet( BarIcon( "designer_textlinebreak.png", KDevDesignerPartFactory::instance() ) );
|
||||
brAction->setText( i18n("Break" ) );
|
||||
brAction->addTo( basicToolBar );
|
||||
brAction->addTo( layoutMenu );
|
||||
connect( brAction, TQT_SIGNAL( activated() ) , this, TQT_SLOT( insertBR() ) );
|
||||
|
||||
ToolBarItem *p = new ToolBarItem( this, basicToolBar, i18n( "Paragraph" ),
|
||||
"p", BarIcon( "designer_textparagraph.png", KDevDesignerPartFactory::instance() ) );
|
||||
p->addTo( layoutMenu );
|
||||
connect( p, TQT_SIGNAL( clicked( const TQString& ) ),
|
||||
this, TQT_SLOT( insertTags( const TQString& )));
|
||||
layoutMenu->insertSeparator();
|
||||
basicToolBar->addSeparator();
|
||||
|
||||
ToolBarItem *al = new ToolBarItem( this, basicToolBar, i18n( "Align left" ),
|
||||
"p align=\"left\"", BarIcon( "designer_textleft.png", KDevDesignerPartFactory::instance() ) );
|
||||
al->addTo( layoutMenu );
|
||||
connect( al, TQT_SIGNAL( clicked( const TQString& ) ),
|
||||
this, TQT_SLOT( insertTags( const TQString& )));
|
||||
|
||||
ToolBarItem *ac = new ToolBarItem( this, basicToolBar, i18n( "Align center" ),
|
||||
"p align=\"center\"", BarIcon( "designer_textcenter.png", KDevDesignerPartFactory::instance() ) );
|
||||
ac->addTo( layoutMenu );
|
||||
connect( ac, TQT_SIGNAL( clicked( const TQString& ) ),
|
||||
this, TQT_SLOT( insertTags( const TQString& )));
|
||||
|
||||
ToolBarItem *ar = new ToolBarItem( this, basicToolBar, i18n( "Align right" ),
|
||||
"p align=\"right\"", BarIcon( "designer_textright.png", KDevDesignerPartFactory::instance() ) );
|
||||
ar->addTo( layoutMenu );
|
||||
connect( ar, TQT_SIGNAL( clicked( const TQString& ) ),
|
||||
this, TQT_SLOT( insertTags( const TQString& )));
|
||||
|
||||
ToolBarItem *block = new ToolBarItem( this, basicToolBar, i18n( "Blockquote" ),
|
||||
"blockquote", BarIcon( "designer_textjustify.png", KDevDesignerPartFactory::instance() ) );
|
||||
block->addTo( layoutMenu );
|
||||
connect( block, TQT_SIGNAL( clicked( const TQString& ) ),
|
||||
this, TQT_SLOT( insertTags( const TQString& )));
|
||||
|
||||
|
||||
TQPopupMenu *fontMenu = new TQPopupMenu( this );
|
||||
menuBar->insertItem( i18n( "&Font" ), fontMenu );
|
||||
|
||||
fontToolBar = new TQToolBar( "Fonts", this, DockTop );
|
||||
|
||||
TQAction *fontAction = new TQAction( this );
|
||||
fontAction->setIconSet( BarIcon( "designer_textfont.png", KDevDesignerPartFactory::instance() ) );
|
||||
fontAction->setText( i18n("Font" ) );
|
||||
fontAction->addTo( fontToolBar );
|
||||
fontAction->addTo( fontMenu );
|
||||
connect( fontAction, TQT_SIGNAL( activated() ) , this, TQT_SLOT( showFontDialog() ) );
|
||||
|
||||
|
||||
ToolBarItem *fp1 = new ToolBarItem( this, fontToolBar, i18n( "Fontsize +1" ),
|
||||
"font size=\"+1\"", BarIcon( "designer_textlarger.png", KDevDesignerPartFactory::instance() ) );
|
||||
connect( fp1, TQT_SIGNAL( clicked( const TQString& ) ),
|
||||
this, TQT_SLOT( insertTags( const TQString& )));
|
||||
|
||||
ToolBarItem *fm1 = new ToolBarItem( this, fontToolBar, i18n( "Fontsize -1" ),
|
||||
"font size=\"-1\"", BarIcon( "designer_textsmaller.png", KDevDesignerPartFactory::instance() ) );
|
||||
connect( fm1, TQT_SIGNAL( clicked( const TQString& ) ),
|
||||
this, TQT_SLOT( insertTags( const TQString& )));
|
||||
|
||||
ToolBarItem *h1 = new ToolBarItem( this, fontToolBar, i18n( "Headline 1" ),
|
||||
"h1", BarIcon( "designer_texth1.png", KDevDesignerPartFactory::instance() ) );
|
||||
connect( h1, TQT_SIGNAL( clicked( const TQString& ) ),
|
||||
this, TQT_SLOT( insertTags( const TQString& )));
|
||||
|
||||
ToolBarItem *h2 = new ToolBarItem( this, fontToolBar, i18n( "Headline 2" ),
|
||||
"h2", BarIcon( "designer_texth2.png", KDevDesignerPartFactory::instance() ) );
|
||||
connect( h2, TQT_SIGNAL( clicked( const TQString& ) ),
|
||||
this, TQT_SLOT( insertTags( const TQString& )));
|
||||
|
||||
ToolBarItem *h3 = new ToolBarItem( this, fontToolBar, i18n( "Headline 3" ),
|
||||
"h3", BarIcon( "designer_texth3.png", KDevDesignerPartFactory::instance() ) );
|
||||
connect( h3, TQT_SIGNAL( clicked( const TQString& ) ),
|
||||
this, TQT_SLOT( insertTags( const TQString& )));
|
||||
|
||||
TQPopupMenu *optionsMenu = new TQPopupMenu( this );
|
||||
menuBar->insertItem( i18n( "O&ptions" ), optionsMenu );
|
||||
|
||||
optionsToolBar = new TQToolBar( "Options", this, DockTop );
|
||||
wrapAction = new TQAction( this );
|
||||
wrapAction->setToggleAction( TRUE );
|
||||
wrapAction->setIconSet( BarIcon( "designer_wordwrap.png", KDevDesignerPartFactory::instance() ) );
|
||||
wrapAction->setText( i18n( "Word Wrapping" ) );
|
||||
wrapAction->addTo( optionsToolBar );
|
||||
wrapAction->addTo( optionsMenu );
|
||||
connect( wrapAction, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( changeWrapMode( bool ) ) );
|
||||
|
||||
oldDoWrap = doWrap;
|
||||
wrapAction->setOn( doWrap );
|
||||
|
||||
connect( helpButton, TQT_SIGNAL( clicked() ), MainWindow::self, TQT_SLOT( showDialogHelp() ) );
|
||||
textEdit->document()->setFormatter( new TQTextFormatterBreakInWords );
|
||||
textEdit->document()->setUseFormatCollection( FALSE );
|
||||
textEdit->document()->setPreProcessor( new SyntaxHighlighter_HTML );
|
||||
|
||||
if ( !callStatic && ::tqqt_cast<TQTextEdit*>(editWidget) ) {
|
||||
mlined = (TQTextEdit*)editWidget;
|
||||
mlined->setReadOnly( TRUE );
|
||||
|
||||
const TQMetaProperty *wordWrap = mlined->metaObject()->property(
|
||||
mlined->metaObject()->findProperty( "wordWrap", TRUE ), TRUE );
|
||||
oldWrapMode = 0;
|
||||
oldWrapString = "NoWrap";
|
||||
if ( wordWrap ) {
|
||||
oldWrapMode = mlined->property( "wordWrap" );
|
||||
oldWrapString = TQString( wordWrap->valueToKey( oldWrapMode.toInt() ) );
|
||||
if ( oldWrapString != "NoWrap" )
|
||||
doWrap = TRUE;
|
||||
}
|
||||
textEdit->setAlignment( mlined->alignment() );
|
||||
textEdit->setWordWrap( mlined->wordWrap() );
|
||||
textEdit->setWrapColumnOrWidth( mlined->wrapColumnOrWidth() );
|
||||
textEdit->setWrapPolicy( mlined->wrapPolicy() );
|
||||
textEdit->setText( mlined->text() );
|
||||
if ( !mlined->text().isEmpty() )
|
||||
textEdit->selectAll();
|
||||
} else {
|
||||
textEdit->setText( text );
|
||||
textEdit->selectAll();
|
||||
}
|
||||
} else {
|
||||
textEdit->setText( text );
|
||||
textEdit->selectAll();
|
||||
}
|
||||
textEdit->setFocus();
|
||||
}
|
||||
|
||||
int MultiLineEditor::exec()
|
||||
{
|
||||
res = 1;
|
||||
show();
|
||||
tqApp->enter_loop();
|
||||
return res;
|
||||
}
|
||||
|
||||
void MultiLineEditor::okClicked()
|
||||
{
|
||||
applyClicked();
|
||||
close();
|
||||
}
|
||||
|
||||
void MultiLineEditor::applyClicked()
|
||||
{
|
||||
if ( !callStatic ) {
|
||||
PopulateMultiLineEditCommand *cmd = new PopulateMultiLineEditCommand( i18n( "Set the Text of '%1'" ).arg( mlined->name() ),
|
||||
formwindow, mlined, textEdit->text() );
|
||||
cmd->execute();
|
||||
formwindow->commandHistory()->addCommand( cmd );
|
||||
|
||||
if ( oldDoWrap != doWrap ) {
|
||||
TQString pn( i18n( "Set 'wordWrap' of '%2'" ).arg( mlined->name() ) );
|
||||
SetPropertyCommand *propcmd;
|
||||
if ( doWrap )
|
||||
propcmd = new SetPropertyCommand( pn, formwindow,
|
||||
TQT_TQOBJECT(mlined), MainWindow::self->propertyeditor(),
|
||||
"wordWrap", WidgetFactory::property( TQT_TQOBJECT(mlined), "wordWrap" ),
|
||||
TQVariant( 1 ), "WidgetWidth", oldWrapString );
|
||||
else
|
||||
propcmd = new SetPropertyCommand( pn, formwindow,
|
||||
TQT_TQOBJECT(mlined), MainWindow::self->propertyeditor(),
|
||||
"wordWrap", WidgetFactory::property( TQT_TQOBJECT(mlined), "wordWrap" ),
|
||||
TQVariant( 0 ), "NoWrap", oldWrapString );
|
||||
|
||||
propcmd->execute();
|
||||
formwindow->commandHistory()->addCommand( propcmd, TRUE );
|
||||
}
|
||||
textEdit->setFocus();
|
||||
}
|
||||
else {
|
||||
staticText = textEdit->text();
|
||||
}
|
||||
}
|
||||
|
||||
void MultiLineEditor::cancelClicked()
|
||||
{
|
||||
res = 0;
|
||||
close();
|
||||
}
|
||||
|
||||
void MultiLineEditor::closeEvent( TQCloseEvent *e )
|
||||
{
|
||||
tqApp->exit_loop();
|
||||
MultiLineEditorBase::closeEvent( e );
|
||||
}
|
||||
|
||||
void MultiLineEditor::insertTags( const TQString &tag )
|
||||
{
|
||||
int pfrom, pto, ifrom, ito;
|
||||
TQString tagend( tag.simplifyWhiteSpace() );
|
||||
tagend.remove( tagend.find( ' ', 0 ), tagend.length() );
|
||||
if ( textEdit->hasSelectedText() ) {
|
||||
textEdit->getSelection( &pfrom, &ifrom, &pto, &ito );
|
||||
TQString buf = textEdit->selectedText();
|
||||
buf = TQString( "<%1>%3</%2>" ).arg( tag ).arg( tagend ).arg( buf );
|
||||
textEdit->removeSelectedText();
|
||||
textEdit->insertAt( buf, pfrom, ifrom );
|
||||
textEdit->setCursorPosition( pto, ito + 2 + tag.length() );
|
||||
}
|
||||
else {
|
||||
int para, index;
|
||||
textEdit->getCursorPosition( ¶, &index );
|
||||
textEdit->insert( TQString( "<%1></%2>" ).arg( tag ).arg( tagend ) );
|
||||
index += 2 + tag.length();
|
||||
textEdit->setCursorPosition( para, index );
|
||||
}
|
||||
}
|
||||
|
||||
void MultiLineEditor::insertBR()
|
||||
{
|
||||
textEdit->insert( "<br>" );
|
||||
}
|
||||
|
||||
void MultiLineEditor::showFontDialog()
|
||||
{
|
||||
bool selText = FALSE;
|
||||
int pfrom, pto, ifrom, ito;
|
||||
if ( textEdit->hasSelectedText() ) {
|
||||
textEdit->getSelection( &pfrom, &ifrom, &pto, &ito );
|
||||
selText = TRUE;
|
||||
}
|
||||
RichTextFontDialog *fd = new RichTextFontDialog( this );
|
||||
if ( fd->exec() == TQDialog::Accepted ) {
|
||||
TQString size, font;
|
||||
if ( fd->getSize() != "0" )
|
||||
size = "size=\"" + fd->getSize() + "\"";
|
||||
TQString color;
|
||||
if ( !fd->getColor().isEmpty() && fd->getColor() != "#000000" )
|
||||
color = "color=\"" + fd->getColor() + "\"";
|
||||
if ( fd->getFont() != "default" )
|
||||
font = "face=\"" + fd->getFont() + "\"";
|
||||
TQString tag( TQString( "font %1 %2 %3" )
|
||||
.arg( color ).arg( size ).arg( font ) );
|
||||
|
||||
if ( selText )
|
||||
textEdit->setSelection( pfrom, ifrom, pto, ito );
|
||||
insertTags( tag.simplifyWhiteSpace() );
|
||||
}
|
||||
else if ( selText )
|
||||
textEdit->setSelection( pfrom, ifrom, pto, ito );
|
||||
}
|
||||
|
||||
TQString MultiLineEditor::getStaticText()
|
||||
{
|
||||
return staticText.stripWhiteSpace();
|
||||
}
|
||||
|
||||
TQString MultiLineEditor::getText( TQWidget *parent, const TQString &text, bool richtextMode, bool *useWrap )
|
||||
{
|
||||
MultiLineEditor medit( TRUE, richtextMode, parent, 0, 0, text );
|
||||
if ( richtextMode )
|
||||
medit.setUseWrapping( *useWrap );
|
||||
if ( medit.exec() == TQDialog::Accepted ) {
|
||||
*useWrap = medit.useWrapping();
|
||||
return medit.getStaticText();
|
||||
}
|
||||
return TQString();
|
||||
}
|
||||
|
||||
void MultiLineEditor::changeWrapMode( bool b )
|
||||
{
|
||||
doWrap = b;
|
||||
if ( doWrap && !callStatic ) {
|
||||
if ( oldDoWrap )
|
||||
textEdit->setProperty( "wordWrap", oldWrapMode );
|
||||
else
|
||||
textEdit->setWordWrap( TQTextEdit::WidgetWidth );
|
||||
} else {
|
||||
textEdit->setWordWrap( TQTextEdit::NoWrap );
|
||||
}
|
||||
}
|
||||
|
||||
bool MultiLineEditor::useWrapping() const
|
||||
{
|
||||
return doWrap;
|
||||
}
|
||||
|
||||
void MultiLineEditor::setUseWrapping( bool b )
|
||||
{
|
||||
doWrap = b;
|
||||
wrapAction->setOn( doWrap );
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Alexander Dymo *
|
||||
* cloudtemple@mksat.net *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
***************************************************************************/
|
||||
#include "myiconloader.h"
|
||||
#include "kdevdesigner_part.h"
|
||||
#include <kiconloader.h>
|
||||
|
||||
TQPixmap BarIcon2( const TQString & name )
|
||||
{
|
||||
return BarIcon(name, KDevDesignerPartFactory::instance());
|
||||
}
|
||||
|
||||
TQPixmap SmallIcon2( const TQString & name)
|
||||
{
|
||||
return SmallIcon(name, KDevDesignerPartFactory::instance());
|
||||
}
|
@ -0,0 +1,414 @@
|
||||
/**********************************************************************
|
||||
** Copyright (C) 2000-2001 Trolltech AS. All rights reserved.
|
||||
**
|
||||
** This file is part of TQt Designer.
|
||||
**
|
||||
** This file may be distributed and/or modified under the terms of the
|
||||
** GNU General Public License version 2 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file.
|
||||
**
|
||||
** Licensees holding valid TQt Enterprise Edition or TQt Professional Edition
|
||||
** licenses may use this file in accordance with the TQt Commercial License
|
||||
** Agreement provided with the Software.
|
||||
**
|
||||
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
**
|
||||
** See http://www.trolltech.com/gpl/ for GPL licensing information.
|
||||
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
|
||||
** information about TQt Commercial License Agreements.
|
||||
**
|
||||
** Contact info@trolltech.com if any conditions of this licensing are
|
||||
** not clear to you.
|
||||
**
|
||||
**********************************************************************/
|
||||
|
||||
#include "newformimpl.h"
|
||||
#include "mainwindow.h"
|
||||
#include "metadatabase.h"
|
||||
#include "project.h"
|
||||
#include "formwindow.h"
|
||||
#include "widgetfactory.h"
|
||||
#include "widgetdatabase.h"
|
||||
#include "actioneditorimpl.h"
|
||||
#include "hierarchyview.h"
|
||||
#include "resource.h"
|
||||
#include "projectsettingsimpl.h"
|
||||
#include "sourcefile.h"
|
||||
|
||||
#include <kiconloader.h>
|
||||
#include "kdevdesigner_part.h"
|
||||
#include <tdelocale.h>
|
||||
|
||||
#include <tqiconview.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqfileinfo.h>
|
||||
#include <tqdir.h>
|
||||
#include <tqpushbutton.h>
|
||||
#include <stdlib.h>
|
||||
#include <tqcombobox.h>
|
||||
#include <tqworkspace.h>
|
||||
#include <tqmessagebox.h>
|
||||
|
||||
static int forms = 0;
|
||||
|
||||
ProjectItem::ProjectItem( TQIconView *view, const TQString &text )
|
||||
: NewItem( view, text )
|
||||
{
|
||||
}
|
||||
|
||||
void ProjectItem::insert( Project * )
|
||||
{
|
||||
MainWindow::self->createNewProject( lang );
|
||||
}
|
||||
|
||||
|
||||
|
||||
FormItem::FormItem( TQIconView *view, const TQString &text )
|
||||
: NewItem( view, text )
|
||||
{
|
||||
}
|
||||
|
||||
void FormItem::insert( Project *pro )
|
||||
{
|
||||
TQString n = "Form" + TQString::number( ++forms );
|
||||
FormWindow *fw = 0;
|
||||
FormFile *ff = new FormFile( FormFile::createUnnamedFileName(), TRUE, pro );
|
||||
fw = new FormWindow( ff, MainWindow::self, MainWindow::self->qWorkspace(), n );
|
||||
fw->setProject( pro );
|
||||
MetaDataBase::addEntry( TQT_TQOBJECT(fw) );
|
||||
if ( fType == Widget ) {
|
||||
TQWidget *w = WidgetFactory::create( WidgetDatabase::idFromClassName( TQWIDGET_OBJECT_NAME_STRING ),
|
||||
fw, n.latin1() );
|
||||
fw->setMainContainer( w );
|
||||
} else if ( fType == Dialog ) {
|
||||
TQWidget *w = WidgetFactory::create( WidgetDatabase::idFromClassName( TQDIALOG_OBJECT_NAME_STRING ), fw, n.latin1() );
|
||||
fw->setMainContainer( w );
|
||||
} else if ( fType == Wizard ) {
|
||||
TQWidget *w = WidgetFactory::create( WidgetDatabase::idFromClassName( TQWIZARD_OBJECT_NAME_STRING ),
|
||||
fw, n.latin1() );
|
||||
fw->setMainContainer( w );
|
||||
} else if ( fType == MainWindow ) {
|
||||
TQWidget *w = WidgetFactory::create( WidgetDatabase::idFromClassName( TQMAINWINDOW_OBJECT_NAME_STRING ),
|
||||
fw, n.latin1() );
|
||||
fw->setMainContainer( w );
|
||||
}
|
||||
|
||||
fw->setCaption( n );
|
||||
fw->resize( 600, 480 );
|
||||
MainWindow::self->insertFormWindow( fw );
|
||||
|
||||
TemplateWizardInterface *iface =
|
||||
MainWindow::self->templateWizardInterface( fw->mainContainer()->className() );
|
||||
if ( iface ) {
|
||||
iface->setup( fw->mainContainer()->className(), fw->mainContainer(),
|
||||
fw->iFace(), MainWindow::self->designerInterface() );
|
||||
iface->release();
|
||||
}
|
||||
|
||||
// the wizard might have changed a lot, lets update everything
|
||||
MainWindow::self->actioneditor()->setFormWindow( fw );
|
||||
MainWindow::self->objectHierarchy()->setFormWindow( fw, TQT_TQOBJECT(fw) );
|
||||
MainWindow::self->objectHierarchy()->formDefinitionView()->refresh();
|
||||
MainWindow::self->objectHierarchy()->rebuild();
|
||||
fw->killAccels( TQT_TQOBJECT(fw) );
|
||||
fw->project()->setModified( TRUE );
|
||||
fw->setFocus();
|
||||
if ( !pro->isDummy() ) {
|
||||
fw->setSavePixmapInProject( TRUE );
|
||||
fw->setSavePixmapInline( FALSE );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
CustomFormItem::CustomFormItem( TQIconView *view, const TQString &text )
|
||||
: NewItem( view, text )
|
||||
{
|
||||
}
|
||||
|
||||
static void unifyFormName( FormWindow *fw, TQWorkspace *qworkspace )
|
||||
{
|
||||
TQStringList lst;
|
||||
TQWidgetList windows = qworkspace->windowList();
|
||||
for ( TQWidget *w =windows.first(); w; w = windows.next() ) {
|
||||
if ( w == fw )
|
||||
continue;
|
||||
lst << w->name();
|
||||
}
|
||||
|
||||
if ( lst.findIndex( fw->name() ) == -1 )
|
||||
return;
|
||||
TQString origName = fw->name();
|
||||
TQString n = origName;
|
||||
int i = 1;
|
||||
while ( lst.findIndex( n ) != -1 ) {
|
||||
n = origName + TQString::number( i++ );
|
||||
}
|
||||
fw->setName( n );
|
||||
fw->setCaption( n );
|
||||
}
|
||||
|
||||
void CustomFormItem::insert( Project *pro )
|
||||
{
|
||||
TQString filename = templateFileName();
|
||||
if ( !filename.isEmpty() && TQFile::exists( filename ) ) {
|
||||
Resource resource( MainWindow::self );
|
||||
FormFile *ff = new FormFile( filename, TRUE, pro );
|
||||
if ( !resource.load( ff ) ) {
|
||||
TQMessageBox::information( MainWindow::self, i18n("Load Template"),
|
||||
i18n("Could not load form description from template '%1'" ).arg( filename ) );
|
||||
delete ff;
|
||||
return;
|
||||
}
|
||||
ff->setFileName( TQString() );
|
||||
if ( MainWindow::self->formWindow() ) {
|
||||
MainWindow::self->formWindow()->setFileName( TQString() );
|
||||
unifyFormName( MainWindow::self->formWindow(), MainWindow::self->qWorkspace() );
|
||||
if ( !pro->isDummy() ) {
|
||||
MainWindow::self->formWindow()->setSavePixmapInProject( TRUE );
|
||||
MainWindow::self->formWindow()->setSavePixmapInline( FALSE );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
SourceFileItem::SourceFileItem( TQIconView *view, const TQString &text )
|
||||
: NewItem( view, text ), visible( TRUE )
|
||||
{
|
||||
}
|
||||
|
||||
void SourceFileItem::insert( Project *pro )
|
||||
{
|
||||
SourceFile *f = new SourceFile( SourceFile::createUnnamedFileName( ext ), TRUE, pro );
|
||||
MainWindow::self->editSource( f );
|
||||
}
|
||||
|
||||
void SourceFileItem::setProject( Project *pro )
|
||||
{
|
||||
TQIconView *iv = iconView();
|
||||
bool v = lang == pro->language();
|
||||
if ( !iv || v == visible )
|
||||
return;
|
||||
visible = v;
|
||||
if ( !visible )
|
||||
iv->takeItem( this );
|
||||
else
|
||||
iv->insertItem( this );
|
||||
}
|
||||
|
||||
|
||||
|
||||
SourceTemplateItem::SourceTemplateItem( TQIconView *view, const TQString &text )
|
||||
: NewItem( view, text ), visible( TRUE )
|
||||
{
|
||||
}
|
||||
|
||||
void SourceTemplateItem::insert( Project *pro )
|
||||
{
|
||||
SourceTemplateInterface *siface = MainWindow::self->sourceTemplateInterface( text() );
|
||||
if ( !siface )
|
||||
return;
|
||||
SourceTemplateInterface::Source src = siface->create( text(), MainWindow::self->designerInterface() );
|
||||
SourceFile *f = 0;
|
||||
if ( src.type == SourceTemplateInterface::Source::Invalid )
|
||||
return;
|
||||
if ( src.type == SourceTemplateInterface::Source::FileName )
|
||||
f = new SourceFile( src.filename, FALSE, pro );
|
||||
else
|
||||
f = new SourceFile( SourceFile::createUnnamedFileName( src.extension ), TRUE, pro );
|
||||
if ( f->isAccepted()) {
|
||||
f->setText( src.code );
|
||||
MainWindow::self->editSource( f );
|
||||
f->setModified( TRUE );
|
||||
} else {
|
||||
delete f;
|
||||
}
|
||||
}
|
||||
|
||||
void SourceTemplateItem::setProject( Project *pro )
|
||||
{
|
||||
TQIconView *iv = iconView();
|
||||
bool v = !pro->isDummy() && lang == pro->language();
|
||||
if ( !iv || v == visible )
|
||||
return;
|
||||
visible = v;
|
||||
if ( !visible )
|
||||
iv->takeItem( this );
|
||||
else
|
||||
iv->insertItem( this );
|
||||
}
|
||||
|
||||
void NewForm::insertTemplates( TQIconView *tView,
|
||||
const TQString &templatePath )
|
||||
{
|
||||
TQStringList::Iterator it;
|
||||
TQStringList languages = MetaDataBase::languages();
|
||||
if ( !MainWindow::self->singleProjectMode() ) {
|
||||
for ( it = languages.begin(); it != languages.end(); ++it ) {
|
||||
ProjectItem *pi = new ProjectItem( tView, i18n("%1 Project" ).arg( *it ) );
|
||||
allItems.append( pi );
|
||||
pi->setLanguage( *it );
|
||||
pi->setPixmap( BarIcon( "designer_project.png" , KDevDesignerPartFactory::instance()) );
|
||||
pi->setDragEnabled( FALSE );
|
||||
}
|
||||
}
|
||||
TQIconViewItem *cur = 0;
|
||||
FormItem *fi = new FormItem( tView,i18n( "Dialog" ) );
|
||||
allItems.append( fi );
|
||||
fi->setFormType( FormItem::Dialog );
|
||||
fi->setPixmap( BarIcon( "designer_newform.png" , KDevDesignerPartFactory::instance()) );
|
||||
fi->setDragEnabled( FALSE );
|
||||
cur = fi;
|
||||
if ( !MainWindow::self->singleProjectMode() ) {
|
||||
fi = new FormItem( tView,i18n( "Wizard" ) );
|
||||
allItems.append( fi );
|
||||
fi->setFormType( FormItem::Wizard );
|
||||
fi->setPixmap( BarIcon( "designer_newform.png" , KDevDesignerPartFactory::instance()) );
|
||||
fi->setDragEnabled( FALSE );
|
||||
fi = new FormItem( tView, i18n( "Widget" ) );
|
||||
allItems.append( fi );
|
||||
fi->setFormType( FormItem::Widget );
|
||||
fi->setPixmap( BarIcon( "designer_newform.png" , KDevDesignerPartFactory::instance()) );
|
||||
fi->setDragEnabled( FALSE );
|
||||
fi = new FormItem( tView, i18n( "Main Window" ) );
|
||||
allItems.append( fi );
|
||||
fi->setFormType( FormItem::MainWindow );
|
||||
fi->setPixmap( BarIcon( "designer_newform.png" , KDevDesignerPartFactory::instance()) );
|
||||
fi->setDragEnabled( FALSE );
|
||||
|
||||
TQString templPath = templatePath;
|
||||
TQStringList templRoots;
|
||||
const char *qtdir = getenv( "QTDIR" );
|
||||
if(qtdir)
|
||||
templRoots << qtdir;
|
||||
templRoots << tqInstallPathData();
|
||||
if(qtdir) //try the tools/designer directory last!
|
||||
templRoots << (TQString(qtdir) + "/tools/designer");
|
||||
for ( TQStringList::Iterator it = templRoots.begin(); it != templRoots.end(); ++it ) {
|
||||
TQString path = (*it) + "/templates";
|
||||
if ( TQFile::exists( path )) {
|
||||
templPath = path;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( !templPath.isEmpty() ) {
|
||||
TQDir dir( templPath );
|
||||
const TQFileInfoList *filist = dir.entryInfoList( TQDir::DefaultFilter, TQDir::DirsFirst | TQDir::Name );
|
||||
if ( filist ) {
|
||||
TQFileInfoListIterator it( *filist );
|
||||
TQFileInfo *fi;
|
||||
while ( ( fi = it.current() ) != 0 ) {
|
||||
++it;
|
||||
if ( !fi->isFile() || fi->extension() != "ui" )
|
||||
continue;
|
||||
TQString name = fi->baseName();
|
||||
name = name.replace( '_', ' ' );
|
||||
CustomFormItem *ci = new CustomFormItem( tView, name );
|
||||
allItems.append( ci );
|
||||
ci->setDragEnabled( FALSE );
|
||||
ci->setPixmap( BarIcon( "designer_newform.png" , KDevDesignerPartFactory::instance()) );
|
||||
ci->setTemplateFile( fi->absFilePath() );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for ( it = languages.begin(); it != languages.end(); ++it ) {
|
||||
LanguageInterface *iface = MetaDataBase::languageInterface( *it );
|
||||
if ( iface ) {
|
||||
TQMap<TQString, TQString> extensionMap;
|
||||
iface->preferedExtensions( extensionMap );
|
||||
for ( TQMap<TQString, TQString>::Iterator eit = extensionMap.begin();
|
||||
eit != extensionMap.end(); ++eit ) {
|
||||
SourceFileItem * si = new SourceFileItem( tView, *eit );
|
||||
allItems.append( si );
|
||||
si->setExtension( eit.key() );
|
||||
si->setLanguage( *it );
|
||||
si->setPixmap( BarIcon( "designer_filenew.png", KDevDesignerPartFactory::instance() ) );
|
||||
si->setDragEnabled( FALSE );
|
||||
}
|
||||
iface->release();
|
||||
}
|
||||
}
|
||||
|
||||
if ( !MainWindow::self->singleProjectMode() ) {
|
||||
TQStringList sourceTemplates = MainWindow::self->sourceTemplates();
|
||||
for ( TQStringList::Iterator sit = sourceTemplates.begin(); sit != sourceTemplates.end(); ++sit ) {
|
||||
SourceTemplateInterface *siface = MainWindow::self->sourceTemplateInterface( *sit );
|
||||
if ( !siface )
|
||||
continue;
|
||||
SourceTemplateItem * si = new SourceTemplateItem( tView, *sit );
|
||||
allItems.append( si );
|
||||
si->setTemplate( *sit );
|
||||
si->setLanguage( siface->language( *sit ) );
|
||||
si->setPixmap( BarIcon( "designer_filenew.png", KDevDesignerPartFactory::instance() ) );
|
||||
si->setDragEnabled( FALSE );
|
||||
siface->release();
|
||||
}
|
||||
}
|
||||
|
||||
tView->viewport()->setFocus();
|
||||
tView->setCurrentItem( cur );
|
||||
|
||||
if ( MainWindow::self->singleProjectMode() )
|
||||
adjustSize();
|
||||
}
|
||||
|
||||
NewForm::NewForm( TQIconView *templateView, const TQString &templatePath )
|
||||
{
|
||||
insertTemplates( templateView, templatePath );
|
||||
projectChanged( i18n( "<No Project>" ) );
|
||||
}
|
||||
|
||||
NewForm::NewForm( TQWidget *parent, const TQStringList& projects,
|
||||
const TQString& currentProject, const TQString &templatePath )
|
||||
: NewFormBase( parent, 0, TRUE )
|
||||
{
|
||||
connect( helpButton, TQT_SIGNAL( clicked() ), MainWindow::self, TQT_SLOT( showDialogHelp() ) );
|
||||
|
||||
projectCombo->insertStringList( projects );
|
||||
projectCombo->setCurrentText( currentProject );
|
||||
|
||||
insertTemplates( templateView, templatePath );
|
||||
|
||||
projectChanged( projectCombo->currentText() );
|
||||
}
|
||||
|
||||
void NewForm::accept()
|
||||
{
|
||||
if ( !templateView->currentItem() )
|
||||
return;
|
||||
Project *pro = MainWindow::self->findProject( projectCombo->currentText() );
|
||||
if ( !pro )
|
||||
return;
|
||||
MainWindow::self->setCurrentProject( pro );
|
||||
NewFormBase::accept();
|
||||
( (NewItem*)templateView->currentItem() )->insert( pro );
|
||||
}
|
||||
|
||||
void NewForm::projectChanged( const TQString &project )
|
||||
{
|
||||
Project *pro = MainWindow::self->findProject( project );
|
||||
if ( !pro )
|
||||
return;
|
||||
TQIconViewItem *i;
|
||||
for ( i = allItems.first(); i; i = allItems.next() )
|
||||
( (NewItem*)i )->setProject( pro );
|
||||
templateView->setCurrentItem( templateView->firstItem() );
|
||||
templateView->arrangeItemsInGrid( TRUE );
|
||||
}
|
||||
|
||||
void NewForm::itemChanged( TQIconViewItem *item )
|
||||
{
|
||||
labelProject->setEnabled( item->rtti() != NewItem::ProjectType );
|
||||
projectCombo->setEnabled( item->rtti() != NewItem::ProjectType );
|
||||
}
|
||||
|
||||
TQPtrList<TQIconViewItem> NewForm::allViewItems()
|
||||
{
|
||||
return allItems;
|
||||
}
|
@ -0,0 +1,85 @@
|
||||
#################################################
|
||||
#
|
||||
# (C) 2012 Slavek Banko
|
||||
# slavek (DOT) banko (AT) axis.cz
|
||||
#
|
||||
# Improvements and feedback are welcome
|
||||
#
|
||||
# This file is released under GPL >= 2
|
||||
#
|
||||
#################################################
|
||||
|
||||
install(
|
||||
FILES
|
||||
designer_adjustsize.png designer_appicon.png designer_arrow.png
|
||||
designer_background.png designer_book.png designer_buttongroup.png
|
||||
designer_checkbox.png designer_combobox.png designer_connecttool.png
|
||||
designer_cross.png designer_customwidget.png designer_d_adjustsize.png
|
||||
designer_d_book.png designer_d_buttongroup.png designer_d_checkbox.png
|
||||
designer_d_combobox.png designer_d_connecttool.png designer_d_customwidget.png
|
||||
designer_d_databrowser.png designer_d_datatable.png designer_d_dataview.png
|
||||
designer_d_dateedit.png designer_d_datetimeedit.png designer_d_dial.png
|
||||
designer_d_down.png designer_d_editbreaklayout.png designer_d_editcopy.png
|
||||
designer_d_editcut.png designer_d_editdelete.png designer_d_editgrid.png
|
||||
designer_d_edithlayout.png designer_d_edithlayoutsplit.png
|
||||
designer_d_editlower.png designer_d_editpaste.png designer_d_editraise.png
|
||||
designer_d_editslots.png designer_d_editvlayout.png
|
||||
designer_d_editvlayoutsplit.png designer_d_filenew.png designer_d_fileopen.png
|
||||
designer_d_filesave.png designer_d_folder.png designer_d_form.png
|
||||
designer_d_frame.png designer_d_groupbox.png designer_d_help.png
|
||||
designer_d_home.png designer_d_iconview.png designer_d_image.png
|
||||
designer_d_label.png designer_d_layout.png designer_d_lcdnumber.png
|
||||
designer_d_left.png designer_d_line.png designer_d_lineedit.png
|
||||
designer_d_listbox.png designer_d_listview.png designer_d_multilineedit.png
|
||||
designer_d_newform.png designer_d_ordertool.png designer_d_pixlabel.png
|
||||
designer_d_pointer.png designer_d_print.png designer_d_progress.png
|
||||
designer_d_project.png designer_d_pushbutton.png designer_d_radiobutton.png
|
||||
designer_d_redo.png designer_d_richtextedit.png designer_d_right.png
|
||||
designer_d_scrollbar.png designer_d_searchfind.png designer_d_setbuddy.png
|
||||
designer_d_slider.png designer_d_spacer.png designer_d_spinbox.png
|
||||
designer_d_table.png designer_d_tabwidget.png designer_d_textbold.png
|
||||
designer_d_textbrowser.png designer_d_textcenter.png designer_d_textedit.png
|
||||
designer_d_textfont.png designer_d_texth1.png designer_d_texth2.png
|
||||
designer_d_texth3.png designer_d_textitalic.png designer_d_textjustify.png
|
||||
designer_d_textlarger.png designer_d_textleft.png designer_d_textlinebreak.png
|
||||
designer_d_textparagraph.png designer_d_textright.png designer_d_textsmaller.png
|
||||
designer_d_textteletext.png designer_d_textunderline.png designer_d_textview.png
|
||||
designer_d_timeedit.png designer_d_toolbox.png designer_d_toolbutton.png
|
||||
designer_d_undo.png designer_d_up.png designer_d_widgetstack.png
|
||||
designer_d_wizarddata.png designer_d_wizarddialog.png designer_d_wordwrap.png
|
||||
designer_databrowser.png designer_datatable.png designer_dataview.png
|
||||
designer_dateedit.png designer_datetimeedit.png designer_dial.png
|
||||
designer_down.png designer_editbreaklayout.png designer_editcopy.png
|
||||
designer_editcut.png designer_editdelete.png designer_editgrid.png
|
||||
designer_edithlayout.png designer_edithlayoutsplit.png designer_editlower.png
|
||||
designer_editpaste.png designer_editraise.png designer_editslots.png
|
||||
designer_editvlayout.png designer_editvlayoutsplit.png designer_filenew.png
|
||||
designer_fileopen.png designer_filesave.png designer_folder.png
|
||||
designer_form.png designer_frame.png designer_groupbox.png designer_hand.png
|
||||
designer_help.png designer_home.png designer_hsplit.png designer_ibeam.png
|
||||
designer_iconview.png designer_image.png designer_label.png designer_layout.png
|
||||
designer_lcdnumber.png designer_left.png designer_line.png designer_lineedit.png
|
||||
designer_listbox.png designer_listview.png designer_multilineedit.png
|
||||
designer_newform.png designer_no.png designer_object.png designer_ordertool.png
|
||||
designer_pixlabel.png designer_pointer.png designer_print.png
|
||||
designer_progress.png designer_project.png designer_pushbutton.png
|
||||
designer_qtlogo.png designer_radiobutton.png designer_redo.png
|
||||
designer_resetproperty.png designer_richtextedit.png designer_right.png
|
||||
designer_s_down.png designer_s_editcut.png designer_s_left.png
|
||||
designer_s_right.png designer_s_up.png designer_scrollbar.png
|
||||
designer_searchfind.png designer_setbuddy.png designer_sizeall.png
|
||||
designer_sizeb.png designer_sizef.png designer_sizeh.png designer_sizev.png
|
||||
designer_slider.png designer_spacer.png designer_spinbox.png designer_splash.png
|
||||
designer_table.png designer_tabwidget.png designer_textbold.png
|
||||
designer_textbrowser.png designer_textcenter.png designer_textedit.png
|
||||
designer_textfont.png designer_texth1.png designer_texth2.png
|
||||
designer_texth3.png designer_textitalic.png designer_textjustify.png
|
||||
designer_textlarger.png designer_textleft.png designer_textlinebreak.png
|
||||
designer_textparagraph.png designer_textright.png designer_textsmaller.png
|
||||
designer_textteletext.png designer_textunderline.png designer_textview.png
|
||||
designer_timeedit.png designer_toolbox.png designer_toolbutton.png
|
||||
designer_undo.png designer_up.png designer_uparrow.png designer_vsplit.png
|
||||
designer_wait.png designer_widgetstack.png designer_wizarddata.png
|
||||
designer_wizarddialog.png designer_wordwrap.png
|
||||
DESTINATION ${DATA_INSTALL_DIR}/kdevdesignerpart/pics
|
||||
)
|
@ -0,0 +1,2 @@
|
||||
picsdirdir = $(kde_datadir)/kdevdesignerpart/pics
|
||||
picsdir_DATA = designer_adjustsize.png designer_appicon.png designer_arrow.png designer_background.png designer_book.png designer_buttongroup.png designer_checkbox.png designer_combobox.png designer_connecttool.png designer_cross.png designer_customwidget.png designer_d_adjustsize.png designer_d_book.png designer_d_buttongroup.png designer_d_checkbox.png designer_d_combobox.png designer_d_connecttool.png designer_d_customwidget.png designer_d_databrowser.png designer_d_datatable.png designer_d_dataview.png designer_d_dateedit.png designer_d_datetimeedit.png designer_d_dial.png designer_d_down.png designer_d_editbreaklayout.png designer_d_editcopy.png designer_d_editcut.png designer_d_editdelete.png designer_d_editgrid.png designer_d_edithlayout.png designer_d_edithlayoutsplit.png designer_d_editlower.png designer_d_editpaste.png designer_d_editraise.png designer_d_editslots.png designer_d_editvlayout.png designer_d_editvlayoutsplit.png designer_d_filenew.png designer_d_fileopen.png designer_d_filesave.png designer_d_folder.png designer_d_form.png designer_d_frame.png designer_d_groupbox.png designer_d_help.png designer_d_home.png designer_d_iconview.png designer_d_image.png designer_d_label.png designer_d_layout.png designer_d_lcdnumber.png designer_d_left.png designer_d_line.png designer_d_lineedit.png designer_d_listbox.png designer_d_listview.png designer_d_multilineedit.png designer_d_newform.png designer_d_ordertool.png designer_d_pixlabel.png designer_d_pointer.png designer_d_print.png designer_d_progress.png designer_d_project.png designer_d_pushbutton.png designer_d_radiobutton.png designer_d_redo.png designer_d_richtextedit.png designer_d_right.png designer_d_scrollbar.png designer_d_searchfind.png designer_d_setbuddy.png designer_d_slider.png designer_d_spacer.png designer_d_spinbox.png designer_d_table.png designer_d_tabwidget.png designer_d_textbold.png designer_d_textbrowser.png designer_d_textcenter.png designer_d_textedit.png designer_d_textfont.png designer_d_texth1.png designer_d_texth2.png designer_d_texth3.png designer_d_textitalic.png designer_d_textjustify.png designer_d_textlarger.png designer_d_textleft.png designer_d_textlinebreak.png designer_d_textparagraph.png designer_d_textright.png designer_d_textsmaller.png designer_d_textteletext.png designer_d_textunderline.png designer_d_textview.png designer_d_timeedit.png designer_d_toolbox.png designer_d_toolbutton.png designer_d_undo.png designer_d_up.png designer_d_widgetstack.png designer_d_wizarddata.png designer_d_wizarddialog.png designer_d_wordwrap.png designer_databrowser.png designer_datatable.png designer_dataview.png designer_dateedit.png designer_datetimeedit.png designer_dial.png designer_down.png designer_editbreaklayout.png designer_editcopy.png designer_editcut.png designer_editdelete.png designer_editgrid.png designer_edithlayout.png designer_edithlayoutsplit.png designer_editlower.png designer_editpaste.png designer_editraise.png designer_editslots.png designer_editvlayout.png designer_editvlayoutsplit.png designer_filenew.png designer_fileopen.png designer_filesave.png designer_folder.png designer_form.png designer_frame.png designer_groupbox.png designer_hand.png designer_help.png designer_home.png designer_hsplit.png designer_ibeam.png designer_iconview.png designer_image.png designer_label.png designer_layout.png designer_lcdnumber.png designer_left.png designer_line.png designer_lineedit.png designer_listbox.png designer_listview.png designer_multilineedit.png designer_newform.png designer_no.png designer_object.png designer_ordertool.png designer_pixlabel.png designer_pointer.png designer_print.png designer_progress.png designer_project.png designer_pushbutton.png designer_qtlogo.png designer_radiobutton.png designer_redo.png designer_resetproperty.png designer_richtextedit.png designer_right.png designer_s_down.png designer_s_editcut.png designer_s_left.png designer_s_right.png designer_s_up.png designer_scrollbar.png designer_searchfind.png designer_setbuddy.png designer_sizeall.png designer_sizeb.png designer_sizef.png designer_sizeh.png designer_sizev.png designer_slider.png designer_spacer.png designer_spinbox.png designer_splash.png designer_table.png designer_tabwidget.png designer_textbold.png designer_textbrowser.png designer_textcenter.png designer_textedit.png designer_textfont.png designer_texth1.png designer_texth2.png designer_texth3.png designer_textitalic.png designer_textjustify.png designer_textlarger.png designer_textleft.png designer_textlinebreak.png designer_textparagraph.png designer_textright.png designer_textsmaller.png designer_textteletext.png designer_textunderline.png designer_textview.png designer_timeedit.png designer_toolbox.png designer_toolbutton.png designer_undo.png designer_up.png designer_uparrow.png designer_vsplit.png designer_wait.png designer_widgetstack.png designer_wizarddata.png designer_wizarddialog.png designer_wordwrap.png
|
Before Width: | Height: | Size: 495 B After Width: | Height: | Size: 495 B |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 217 B After Width: | Height: | Size: 217 B |
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.6 KiB |
Before Width: | Height: | Size: 825 B After Width: | Height: | Size: 825 B |
Before Width: | Height: | Size: 648 B After Width: | Height: | Size: 648 B |
Before Width: | Height: | Size: 817 B After Width: | Height: | Size: 817 B |
Before Width: | Height: | Size: 549 B After Width: | Height: | Size: 549 B |
Before Width: | Height: | Size: 553 B After Width: | Height: | Size: 553 B |
Before Width: | Height: | Size: 164 B After Width: | Height: | Size: 164 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 529 B After Width: | Height: | Size: 529 B |
Before Width: | Height: | Size: 561 B After Width: | Height: | Size: 561 B |
Before Width: | Height: | Size: 482 B After Width: | Height: | Size: 482 B |
Before Width: | Height: | Size: 547 B After Width: | Height: | Size: 547 B |
Before Width: | Height: | Size: 420 B After Width: | Height: | Size: 420 B |
Before Width: | Height: | Size: 450 B After Width: | Height: | Size: 450 B |
Before Width: | Height: | Size: 629 B After Width: | Height: | Size: 629 B |
Before Width: | Height: | Size: 603 B After Width: | Height: | Size: 603 B |
Before Width: | Height: | Size: 592 B After Width: | Height: | Size: 592 B |
Before Width: | Height: | Size: 663 B After Width: | Height: | Size: 663 B |
Before Width: | Height: | Size: 452 B After Width: | Height: | Size: 452 B |
Before Width: | Height: | Size: 669 B After Width: | Height: | Size: 669 B |
Before Width: | Height: | Size: 706 B After Width: | Height: | Size: 706 B |
Before Width: | Height: | Size: 441 B After Width: | Height: | Size: 441 B |
Before Width: | Height: | Size: 635 B After Width: | Height: | Size: 635 B |
Before Width: | Height: | Size: 517 B After Width: | Height: | Size: 517 B |
Before Width: | Height: | Size: 800 B After Width: | Height: | Size: 800 B |
Before Width: | Height: | Size: 684 B After Width: | Height: | Size: 684 B |
Before Width: | Height: | Size: 425 B After Width: | Height: | Size: 425 B |
Before Width: | Height: | Size: 272 B After Width: | Height: | Size: 272 B |
Before Width: | Height: | Size: 328 B After Width: | Height: | Size: 328 B |
Before Width: | Height: | Size: 453 B After Width: | Height: | Size: 453 B |
Before Width: | Height: | Size: 599 B After Width: | Height: | Size: 599 B |
Before Width: | Height: | Size: 454 B After Width: | Height: | Size: 454 B |
Before Width: | Height: | Size: 535 B After Width: | Height: | Size: 535 B |
Before Width: | Height: | Size: 272 B After Width: | Height: | Size: 272 B |
Before Width: | Height: | Size: 333 B After Width: | Height: | Size: 333 B |
Before Width: | Height: | Size: 298 B After Width: | Height: | Size: 298 B |
Before Width: | Height: | Size: 407 B After Width: | Height: | Size: 407 B |
Before Width: | Height: | Size: 267 B After Width: | Height: | Size: 267 B |
Before Width: | Height: | Size: 841 B After Width: | Height: | Size: 841 B |
Before Width: | Height: | Size: 274 B After Width: | Height: | Size: 274 B |
Before Width: | Height: | Size: 427 B After Width: | Height: | Size: 427 B |
Before Width: | Height: | Size: 465 B After Width: | Height: | Size: 465 B |
Before Width: | Height: | Size: 786 B After Width: | Height: | Size: 786 B |
Before Width: | Height: | Size: 743 B After Width: | Height: | Size: 743 B |
Before Width: | Height: | Size: 548 B After Width: | Height: | Size: 548 B |
Before Width: | Height: | Size: 482 B After Width: | Height: | Size: 482 B |
Before Width: | Height: | Size: 670 B After Width: | Height: | Size: 670 B |
Before Width: | Height: | Size: 497 B After Width: | Height: | Size: 497 B |
Before Width: | Height: | Size: 452 B After Width: | Height: | Size: 452 B |
Before Width: | Height: | Size: 422 B After Width: | Height: | Size: 422 B |
Before Width: | Height: | Size: 327 B After Width: | Height: | Size: 327 B |
Before Width: | Height: | Size: 445 B After Width: | Height: | Size: 445 B |
Before Width: | Height: | Size: 410 B After Width: | Height: | Size: 410 B |
Before Width: | Height: | Size: 640 B After Width: | Height: | Size: 640 B |
Before Width: | Height: | Size: 482 B After Width: | Height: | Size: 482 B |
Before Width: | Height: | Size: 443 B After Width: | Height: | Size: 443 B |
Before Width: | Height: | Size: 533 B After Width: | Height: | Size: 533 B |
Before Width: | Height: | Size: 619 B After Width: | Height: | Size: 619 B |
Before Width: | Height: | Size: 476 B After Width: | Height: | Size: 476 B |
Before Width: | Height: | Size: 593 B After Width: | Height: | Size: 593 B |
Before Width: | Height: | Size: 375 B After Width: | Height: | Size: 375 B |
Before Width: | Height: | Size: 915 B After Width: | Height: | Size: 915 B |
Before Width: | Height: | Size: 445 B After Width: | Height: | Size: 445 B |
Before Width: | Height: | Size: 605 B After Width: | Height: | Size: 605 B |
Before Width: | Height: | Size: 465 B After Width: | Height: | Size: 465 B |
Before Width: | Height: | Size: 562 B After Width: | Height: | Size: 562 B |
Before Width: | Height: | Size: 425 B After Width: | Height: | Size: 425 B |
Before Width: | Height: | Size: 364 B After Width: | Height: | Size: 364 B |
Before Width: | Height: | Size: 501 B After Width: | Height: | Size: 501 B |
Before Width: | Height: | Size: 427 B After Width: | Height: | Size: 427 B |
Before Width: | Height: | Size: 548 B After Width: | Height: | Size: 548 B |
Before Width: | Height: | Size: 519 B After Width: | Height: | Size: 519 B |
Before Width: | Height: | Size: 477 B After Width: | Height: | Size: 477 B |
Before Width: | Height: | Size: 512 B After Width: | Height: | Size: 512 B |
Before Width: | Height: | Size: 404 B After Width: | Height: | Size: 404 B |
Before Width: | Height: | Size: 519 B After Width: | Height: | Size: 519 B |
Before Width: | Height: | Size: 534 B After Width: | Height: | Size: 534 B |
Before Width: | Height: | Size: 453 B After Width: | Height: | Size: 453 B |
Before Width: | Height: | Size: 526 B After Width: | Height: | Size: 526 B |
Before Width: | Height: | Size: 412 B After Width: | Height: | Size: 412 B |
Before Width: | Height: | Size: 476 B After Width: | Height: | Size: 476 B |
Before Width: | Height: | Size: 537 B After Width: | Height: | Size: 537 B |
Before Width: | Height: | Size: 509 B After Width: | Height: | Size: 509 B |
Before Width: | Height: | Size: 454 B After Width: | Height: | Size: 454 B |
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 442 B |
Before Width: | Height: | Size: 537 B After Width: | Height: | Size: 537 B |
Before Width: | Height: | Size: 443 B After Width: | Height: | Size: 443 B |
Before Width: | Height: | Size: 528 B After Width: | Height: | Size: 528 B |
Before Width: | Height: | Size: 543 B After Width: | Height: | Size: 543 B |
Before Width: | Height: | Size: 445 B After Width: | Height: | Size: 445 B |
Before Width: | Height: | Size: 513 B After Width: | Height: | Size: 513 B |
Before Width: | Height: | Size: 463 B After Width: | Height: | Size: 463 B |
Before Width: | Height: | Size: 498 B After Width: | Height: | Size: 498 B |
Before Width: | Height: | Size: 529 B After Width: | Height: | Size: 529 B |
Before Width: | Height: | Size: 827 B After Width: | Height: | Size: 827 B |
Before Width: | Height: | Size: 465 B After Width: | Height: | Size: 465 B |
Before Width: | Height: | Size: 670 B After Width: | Height: | Size: 670 B |
Before Width: | Height: | Size: 471 B After Width: | Height: | Size: 471 B |
Before Width: | Height: | Size: 444 B After Width: | Height: | Size: 444 B |
Before Width: | Height: | Size: 558 B After Width: | Height: | Size: 558 B |
Before Width: | Height: | Size: 294 B After Width: | Height: | Size: 294 B |
Before Width: | Height: | Size: 421 B After Width: | Height: | Size: 421 B |
Before Width: | Height: | Size: 507 B After Width: | Height: | Size: 507 B |
Before Width: | Height: | Size: 907 B After Width: | Height: | Size: 907 B |
Before Width: | Height: | Size: 923 B After Width: | Height: | Size: 923 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 505 B After Width: | Height: | Size: 505 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 595 B After Width: | Height: | Size: 595 B |
Before Width: | Height: | Size: 744 B After Width: | Height: | Size: 744 B |
Before Width: | Height: | Size: 485 B After Width: | Height: | Size: 485 B |
Before Width: | Height: | Size: 649 B After Width: | Height: | Size: 649 B |
Before Width: | Height: | Size: 833 B After Width: | Height: | Size: 833 B |
Before Width: | Height: | Size: 520 B After Width: | Height: | Size: 520 B |
Before Width: | Height: | Size: 295 B After Width: | Height: | Size: 295 B |
Before Width: | Height: | Size: 344 B After Width: | Height: | Size: 344 B |
Before Width: | Height: | Size: 609 B After Width: | Height: | Size: 609 B |
Before Width: | Height: | Size: 907 B After Width: | Height: | Size: 907 B |
Before Width: | Height: | Size: 614 B After Width: | Height: | Size: 614 B |
Before Width: | Height: | Size: 690 B After Width: | Height: | Size: 690 B |
Before Width: | Height: | Size: 289 B After Width: | Height: | Size: 289 B |
Before Width: | Height: | Size: 355 B After Width: | Height: | Size: 355 B |
Before Width: | Height: | Size: 313 B After Width: | Height: | Size: 313 B |
Before Width: | Height: | Size: 681 B After Width: | Height: | Size: 681 B |
Before Width: | Height: | Size: 328 B After Width: | Height: | Size: 328 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 301 B After Width: | Height: | Size: 301 B |
Before Width: | Height: | Size: 400 B After Width: | Height: | Size: 400 B |
Before Width: | Height: | Size: 439 B After Width: | Height: | Size: 439 B |
Before Width: | Height: | Size: 198 B After Width: | Height: | Size: 198 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 203 B After Width: | Height: | Size: 203 B |
Before Width: | Height: | Size: 162 B After Width: | Height: | Size: 162 B |
Before Width: | Height: | Size: 613 B After Width: | Height: | Size: 613 B |
Before Width: | Height: | Size: 769 B After Width: | Height: | Size: 769 B |
Before Width: | Height: | Size: 953 B After Width: | Height: | Size: 953 B |
Before Width: | Height: | Size: 706 B After Width: | Height: | Size: 706 B |
Before Width: | Height: | Size: 558 B After Width: | Height: | Size: 558 B |
Before Width: | Height: | Size: 678 B After Width: | Height: | Size: 678 B |
Before Width: | Height: | Size: 287 B After Width: | Height: | Size: 287 B |
Before Width: | Height: | Size: 405 B After Width: | Height: | Size: 405 B |
Before Width: | Height: | Size: 386 B After Width: | Height: | Size: 386 B |
Before Width: | Height: | Size: 759 B After Width: | Height: | Size: 759 B |
Before Width: | Height: | Size: 454 B After Width: | Height: | Size: 454 B |
Before Width: | Height: | Size: 531 B After Width: | Height: | Size: 531 B |
Before Width: | Height: | Size: 230 B After Width: | Height: | Size: 230 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 587 B After Width: | Height: | Size: 587 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 586 B |
Before Width: | Height: | Size: 742 B After Width: | Height: | Size: 742 B |
Before Width: | Height: | Size: 559 B After Width: | Height: | Size: 559 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 408 B After Width: | Height: | Size: 408 B |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 586 B |
Before Width: | Height: | Size: 592 B After Width: | Height: | Size: 592 B |
Before Width: | Height: | Size: 184 B After Width: | Height: | Size: 184 B |
Before Width: | Height: | Size: 834 B After Width: | Height: | Size: 834 B |
Before Width: | Height: | Size: 656 B After Width: | Height: | Size: 656 B |
Before Width: | Height: | Size: 574 B After Width: | Height: | Size: 574 B |
Before Width: | Height: | Size: 444 B After Width: | Height: | Size: 444 B |
Before Width: | Height: | Size: 564 B After Width: | Height: | Size: 564 B |
Before Width: | Height: | Size: 557 B After Width: | Height: | Size: 557 B |
Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 586 B |
Before Width: | Height: | Size: 408 B After Width: | Height: | Size: 408 B |
Before Width: | Height: | Size: 843 B After Width: | Height: | Size: 843 B |
Before Width: | Height: | Size: 428 B After Width: | Height: | Size: 428 B |
Before Width: | Height: | Size: 208 B After Width: | Height: | Size: 208 B |
Before Width: | Height: | Size: 203 B After Width: | Height: | Size: 203 B |
Before Width: | Height: | Size: 203 B After Width: | Height: | Size: 203 B |
Before Width: | Height: | Size: 179 B After Width: | Height: | Size: 179 B |
Before Width: | Height: | Size: 177 B After Width: | Height: | Size: 177 B |
Before Width: | Height: | Size: 729 B After Width: | Height: | Size: 729 B |
Before Width: | Height: | Size: 715 B After Width: | Height: | Size: 715 B |
Before Width: | Height: | Size: 455 B After Width: | Height: | Size: 455 B |
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
Before Width: | Height: | Size: 483 B After Width: | Height: | Size: 483 B |
Before Width: | Height: | Size: 572 B After Width: | Height: | Size: 572 B |
Before Width: | Height: | Size: 498 B After Width: | Height: | Size: 498 B |
Before Width: | Height: | Size: 514 B After Width: | Height: | Size: 514 B |
Before Width: | Height: | Size: 429 B After Width: | Height: | Size: 429 B |
Before Width: | Height: | Size: 497 B After Width: | Height: | Size: 497 B |
Before Width: | Height: | Size: 494 B After Width: | Height: | Size: 494 B |
Before Width: | Height: | Size: 462 B After Width: | Height: | Size: 462 B |
Before Width: | Height: | Size: 512 B After Width: | Height: | Size: 512 B |
Before Width: | Height: | Size: 486 B After Width: | Height: | Size: 486 B |
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 442 B |
Before Width: | Height: | Size: 409 B After Width: | Height: | Size: 409 B |