├── debian ├── compat ├── source │ └── format ├── control ├── rules ├── copyright └── changelog ├── .gitignore ├── po ├── LINGUAS ├── extra │ ├── LINGUAS │ ├── POTFILES │ ├── meson.build │ ├── nl.po │ ├── extra.pot │ └── fr.po ├── pt_BR.mo ├── aa.po ├── ab.po ├── ae.po ├── af.po ├── ak.po ├── am.po ├── an.po ├── ar.po ├── as.po ├── ast.po ├── av.po ├── ay.po ├── az.po ├── ba.po ├── bh.po ├── bi.po ├── bm.po ├── bn.po ├── bo.po ├── br.po ├── bs.po ├── ca.po ├── ce.po ├── ch.po ├── ckb.po ├── co.po ├── cr.po ├── cu.po ├── cv.po ├── cy.po ├── da.po ├── dv.po ├── dz.po ├── ee.po ├── el.po ├── en_AU.po ├── en_CA.po ├── en_GB.po ├── eu.po ├── fa.po ├── ff.po ├── fj.po ├── fy.po ├── ga.po ├── gd.po ├── gl.po ├── gn.po ├── gu.po ├── gv.po ├── ha.po ├── hi.po ├── ho.po ├── ht.po ├── hy.po ├── hz.po ├── ia.po ├── id.po ├── ie.po ├── ig.po ├── ii.po ├── ik.po ├── io.po ├── is.po ├── iu.po ├── jv.po ├── ka.po ├── kg.po ├── ki.po ├── kj.po ├── kk.po ├── kl.po ├── km.po ├── kn.po ├── kr.po ├── ks.po ├── ku.po ├── kv.po ├── kw.po ├── ky.po ├── la.po ├── lb.po ├── lg.po ├── li.po ├── ln.po ├── lo.po ├── lu.po ├── mg.po ├── mh.po ├── mi.po ├── mk.po ├── ml.po ├── mn.po ├── mo.po ├── mr.po ├── ms.po ├── mt.po ├── my.po ├── na.po ├── nd.po ├── ne.po ├── ng.po ├── nr.po ├── nv.po ├── ny.po ├── oc.po ├── oj.po ├── om.po ├── or.po ├── os.po ├── pa.po ├── pi.po ├── ps.po ├── qu.po ├── rm.po ├── rn.po ├── rue.po ├── rw.po ├── sa.po ├── sc.po ├── sd.po ├── se.po ├── sg.po ├── si.po ├── sm.po ├── sma.po ├── sn.po ├── so.po ├── sq.po ├── ss.po ├── st.po ├── su.po ├── sw.po ├── ta.po ├── te.po ├── tg.po ├── th.po ├── ti.po ├── tk.po ├── tl.po ├── tn.po ├── to.po ├── ts.po ├── tt.po ├── tw.po ├── ty.po ├── ug.po ├── ur.po ├── uz.po ├── ve.po ├── vo.po ├── wa.po ├── wo.po ├── xh.po ├── yi.po ├── yo.po ├── za.po ├── zh.po ├── zh_CN.po ├── zh_HK.po ├── zh_TW.po ├── zu.po ├── bg.po ├── de.po ├── eo.po ├── es.po ├── et.po ├── fi.po ├── fo.po ├── fr_CA.po ├── he.po ├── hu.po ├── it.po ├── nb.po ├── nn.po ├── no.po ├── pt.po ├── sv.po ├── tr.po ├── ja.po ├── ko.po ├── vi.po ├── meson.build ├── cs.po ├── sk.po ├── lv.po ├── ro.po ├── sl.po ├── pl.po ├── lt.po ├── be.po ├── hr.po ├── ru.po ├── sr.po ├── uk.po ├── POTFILES ├── nl.po ├── fr.po ├── pt_BR.po └── com.github.bartzaalberg.php-tester.pot ├── AUTHORS ├── hooks └── pre-commit.hook ├── screenshot.png ├── screenshot2.png ├── snap ├── gui │ ├── php-tester.png │ └── php-tester.desktop ├── com.github.bartzaalberg.php-tester.desktop └── snapcraft.yaml ├── src ├── Components │ ├── HeaderLabel.vala │ └── HeaderBar.vala ├── Constants.vala ├── Views │ ├── NoPhpFoundView.vala │ └── StandardView.vala ├── Dialogs │ ├── Alert.vala │ └── Preferences.vala ├── StackManager.vala ├── Application.vala ├── PhpVersionManager.vala ├── SourceViewManager.vala ├── FileManager.vala └── MainWindow.vala ├── .travis.yml ├── data ├── com.github.bartzaalberg.php-tester.desktop.in ├── meson.build ├── com.github.bartzaalberg.php-tester.gschema.xml ├── icons │ ├── 16 │ │ └── com.github.bartzaalberg.php-tester.svg │ ├── 24 │ │ └── com.github.bartzaalberg.php-tester.svg │ ├── 32 │ │ └── com.github.bartzaalberg.php-tester.svg │ ├── 48 │ │ └── com.github.bartzaalberg.php-tester.svg │ ├── 64 │ │ └── com.github.bartzaalberg.php-tester.svg │ └── 128 │ │ └── com.github.bartzaalberg.php-tester.svg └── com.github.bartzaalberg.php-tester.appdata.xml.in ├── meson.build └── README.md /debian/compat: -------------------------------------------------------------------------------- 1 | 9 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | build/ 3 | -------------------------------------------------------------------------------- /po/LINGUAS: -------------------------------------------------------------------------------- 1 | fr 2 | nl 3 | -------------------------------------------------------------------------------- /po/extra/LINGUAS: -------------------------------------------------------------------------------- 1 | nl 2 | fr 3 | -------------------------------------------------------------------------------- /debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (native) 2 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | Bart Zaalberg 2 | -------------------------------------------------------------------------------- /hooks/pre-commit.hook: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | io.elementary.vala-lint -d src 4 | -------------------------------------------------------------------------------- /po/pt_BR.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbelievableflavour/php-tester/HEAD/po/pt_BR.mo -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbelievableflavour/php-tester/HEAD/screenshot.png -------------------------------------------------------------------------------- /screenshot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbelievableflavour/php-tester/HEAD/screenshot2.png -------------------------------------------------------------------------------- /po/aa.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ab.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ae.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/af.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ak.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/am.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/an.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ar.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/as.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ast.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/av.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ay.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/az.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ba.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/bh.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/bi.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/bm.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/bn.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/bo.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/br.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/bs.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ca.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ce.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ch.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ckb.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/co.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/cr.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/cu.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/cv.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/cy.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/da.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/dv.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/dz.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ee.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/el.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/en_AU.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/en_CA.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/en_GB.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/eu.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/fa.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ff.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/fj.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/fy.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ga.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/gd.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/gl.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/gn.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/gu.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/gv.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ha.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/hi.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ho.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ht.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/hy.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/hz.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ia.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/id.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ie.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ig.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ii.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ik.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/io.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/is.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/iu.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/jv.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ka.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/kg.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ki.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/kj.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/kk.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/kl.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/km.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/kn.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/kr.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ks.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ku.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/kv.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/kw.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ky.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/la.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/lb.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/lg.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/li.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ln.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/lo.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/lu.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/mg.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/mh.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/mi.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/mk.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ml.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/mn.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/mo.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/mr.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ms.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/mt.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/my.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/na.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/nd.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ne.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ng.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/nr.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/nv.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ny.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/oc.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/oj.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/om.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/or.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/os.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/pa.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/pi.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ps.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/qu.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/rm.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/rn.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/rue.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/rw.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/sa.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/sc.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/sd.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/se.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/sg.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/si.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/sm.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/sma.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/sn.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/so.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/sq.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ss.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/st.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/su.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/sw.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ta.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/te.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/tg.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/th.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ti.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/tk.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/tl.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/tn.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/to.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ts.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/tt.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/tw.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ty.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ug.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ur.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/uz.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/ve.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/vo.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/wa.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/wo.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/xh.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/yi.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/yo.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/za.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/zh.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/zh_CN.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/zh_HK.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/zh_TW.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /po/zu.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | -------------------------------------------------------------------------------- /snap/gui/php-tester.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbelievableflavour/php-tester/HEAD/snap/gui/php-tester.png -------------------------------------------------------------------------------- /po/extra/POTFILES: -------------------------------------------------------------------------------- 1 | data/com.github.bartzaalberg.php-tester.appdata.xml.in 2 | data/com.github.bartzaalberg.php-tester.desktop.in 3 | -------------------------------------------------------------------------------- /po/bg.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 6 | -------------------------------------------------------------------------------- /po/de.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 6 | -------------------------------------------------------------------------------- /po/eo.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 6 | -------------------------------------------------------------------------------- /po/es.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 6 | -------------------------------------------------------------------------------- /po/et.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 6 | -------------------------------------------------------------------------------- /po/fi.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 6 | -------------------------------------------------------------------------------- /po/fo.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 6 | -------------------------------------------------------------------------------- /po/fr_CA.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n>1;\n" 6 | -------------------------------------------------------------------------------- /po/he.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 6 | -------------------------------------------------------------------------------- /po/hu.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 6 | -------------------------------------------------------------------------------- /po/it.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 6 | -------------------------------------------------------------------------------- /po/nb.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 6 | -------------------------------------------------------------------------------- /po/nn.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 6 | -------------------------------------------------------------------------------- /po/no.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 6 | -------------------------------------------------------------------------------- /po/pt.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 6 | -------------------------------------------------------------------------------- /po/sv.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 6 | -------------------------------------------------------------------------------- /po/tr.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 6 | -------------------------------------------------------------------------------- /po/ja.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n" 6 | -------------------------------------------------------------------------------- /po/ko.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n" 6 | -------------------------------------------------------------------------------- /po/vi.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n" 6 | -------------------------------------------------------------------------------- /po/extra/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext('extra', 2 | args: ['--directory='+meson.source_root(), '--from-code=UTF-8'], 3 | install: false, 4 | preset: 'glib' 5 | ) 6 | -------------------------------------------------------------------------------- /po/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext(meson.project_name(), 2 | args: ['--directory='+meson.source_root(), '--from-code=UTF-8'], 3 | preset: 'glib' 4 | ) 5 | subdir('extra') 6 | -------------------------------------------------------------------------------- /po/cs.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" 6 | -------------------------------------------------------------------------------- /po/sk.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" 6 | -------------------------------------------------------------------------------- /po/lv.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n" 6 | -------------------------------------------------------------------------------- /po/ro.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2;\n" 6 | -------------------------------------------------------------------------------- /po/sl.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n" 6 | -------------------------------------------------------------------------------- /po/pl.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 6 | -------------------------------------------------------------------------------- /po/lt.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 6 | -------------------------------------------------------------------------------- /po/be.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 6 | -------------------------------------------------------------------------------- /po/hr.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 6 | -------------------------------------------------------------------------------- /po/ru.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 6 | -------------------------------------------------------------------------------- /po/sr.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 6 | -------------------------------------------------------------------------------- /po/uk.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 6 | -------------------------------------------------------------------------------- /src/Components/HeaderLabel.vala: -------------------------------------------------------------------------------- 1 | namespace PhpTester { 2 | public class HeaderLabel : Gtk.Label { 3 | 4 | public HeaderLabel (string text) { 5 | label = text; 6 | get_style_context ().add_class ("h4"); 7 | halign = Gtk.Align.START; 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Constants.vala: -------------------------------------------------------------------------------- 1 | namespace PhpTester.Constants { 2 | public const string APPLICATION_NAME = "com.github.bartzaalberg.php-tester"; 3 | public const int APPLICATION_WIDTH = 700; 4 | public const int APPLICATION_HEIGHT = 500; 5 | public const Gdk.RGBA BRAND_COLOR = { 0.451, 0.514, 0.737, 1.0 }; 6 | } 7 | -------------------------------------------------------------------------------- /snap/gui/php-tester.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=PHP Tester 3 | GenericName=PHP Tester 4 | Comment=Application to test php code 5 | Categories=Utility;Development;Education; 6 | Exec=com.github.bartzaalberg.php-tester 7 | Icon=${SNAP}/meta/gui/php-tester.png 8 | Terminal=false 9 | Type=Application 10 | X-GNOME-Gettext-Domain=php-tester 11 | Keywords=GUI;PHP;Development; 12 | 13 | -------------------------------------------------------------------------------- /snap/com.github.bartzaalberg.php-tester.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=PHP Tester 3 | GenericName=PHP Tester 4 | Comment=Application to test php code 5 | Categories=Utility;Development;Education; 6 | Exec=com.github.bartzaalberg.php-tester 7 | Icon=${SNAP}/meta/com.github.bartzaalberg.php-tester.svg 8 | Terminal=false 9 | Type=Application 10 | X-GNOME-Gettext-Domain=php-tester 11 | Keywords=GUI;PHP;Development; 12 | 13 | -------------------------------------------------------------------------------- /po/POTFILES: -------------------------------------------------------------------------------- 1 | src/Application.vala 2 | src/MainWindow.vala 3 | src/Constants.vala 4 | src/SourceViewManager.vala 5 | src/StackManager.vala 6 | src/PhpVersionManager.vala 7 | src/FileManager.vala 8 | src/Dialogs/Alert.vala 9 | src/Dialogs/Cheatsheet.vala 10 | src/Dialogs/Preferences.vala 11 | src/Components/HeaderBar.vala 12 | src/Components/HeaderLabel.vala 13 | src/Views/StandardView.vala 14 | src/Views/NoPhpFoundView.vala 15 | -------------------------------------------------------------------------------- /src/Views/NoPhpFoundView.vala: -------------------------------------------------------------------------------- 1 | using Granite.Widgets; 2 | 3 | namespace PhpTester { 4 | public class NoPhpFoundView : Gtk.ScrolledWindow { 5 | 6 | public NoPhpFoundView () { 7 | var no_php_found_view = new Welcome ( 8 | _("No PHP versions found"), 9 | _("Please install a versions of PHP and restart the application.") 10 | ); 11 | 12 | this.add (no_php_found_view); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | language: node_js 4 | 5 | node_js: 6 | - 10.17.0 7 | 8 | sudo: required 9 | 10 | services: 11 | - docker 12 | 13 | addons: 14 | apt: 15 | sources: 16 | - ubuntu-toolchain-r-test 17 | packages: 18 | - libstdc++-5-dev 19 | 20 | install: 21 | - npm i -g @elementaryos/houston 22 | 23 | script: 24 | - houston ci 25 | --type system-app 26 | --name-domain com.github.bartzaalberg.php-tester 27 | --name-human "PHP Tester" 28 | -------------------------------------------------------------------------------- /data/com.github.bartzaalberg.php-tester.desktop.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=PHP Tester 3 | GenericName=PHP Tester 4 | Comment=Test some PHP code! 5 | Categories=Utility;Development;Education; 6 | Exec=com.github.bartzaalberg.php-tester 7 | Icon=com.github.bartzaalberg.php-tester 8 | Terminal=false 9 | Type=Application 10 | X-GNOME-Gettext-Domain=php-tester 11 | Keywords=GUI;PHP;Development; 12 | Actions=AboutDialog; 13 | 14 | [Desktop Action AboutDialog] 15 | Exec=xdg-open appstream://com.github.bartzaalberg.php-tester 16 | Name=About PHP Tester 17 | -------------------------------------------------------------------------------- /debian/control: -------------------------------------------------------------------------------- 1 | Source: com.github.bartzaalberg.php-tester 2 | Section: utils 3 | Priority: optional 4 | Maintainer: Bart Zaalberg 5 | Build-Depends: meson, 6 | debhelper (>= 10.5.1), 7 | libgranite-dev, 8 | libgtk-3-dev, 9 | valac, 10 | libgtksourceview-3.0-dev 11 | 12 | Package: com.github.bartzaalberg.php-tester 13 | Architecture: any 14 | Depends: ${misc:Depends}, ${shlibs:Depends} 15 | Pre-Depends: dpkg (>= 1.15.6) 16 | Description: PHP tester 17 | -------------------------------------------------------------------------------- /src/Dialogs/Alert.vala: -------------------------------------------------------------------------------- 1 | using Granite; 2 | 3 | namespace PhpTester { 4 | public class Alert : Object { 5 | 6 | public Alert (string title, string description) { 7 | var message_dialog = new MessageDialog.with_image_from_icon_name (title, description, "dialog-warning"); 8 | message_dialog.window_position = Gtk.WindowPosition.CENTER_ON_PARENT; 9 | message_dialog.show_all (); 10 | 11 | if (message_dialog.run () == Gtk.ResponseType.CLOSE) { 12 | message_dialog.destroy (); 13 | } 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # -*- makefile -*- 3 | # Sample debian/rules that uses debhelper. 4 | # This file was originally written by Joey Hess and Craig Small. 5 | # As a special exception, when this file is copied by dh-make into a 6 | # dh-make output file, you may use that output file without restriction. 7 | # This special exception was added by Craig Small in version 0.37 of dh-make. 8 | 9 | # Uncomment this to turn on verbose mode. 10 | #export DH_VERBOSE=1 11 | 12 | # Enable additional explot mitigation 13 | # (PIE and *full* RELRO at the time of this writing) 14 | #export DEB_BUILD_MAINT_OPTIONS=hardening=+all 15 | 16 | %: 17 | dh $@ 18 | 19 | override_dh_builddeb: 20 | dh_builddeb -- -Zxz 21 | 22 | 23 | override_dh_install: 24 | dh_install --fail-missing 25 | -------------------------------------------------------------------------------- /meson.build: -------------------------------------------------------------------------------- 1 | project('com.github.bartzaalberg.php-tester', 'vala', 'c') 2 | 3 | gnome = import('gnome') 4 | i18n = import('i18n') 5 | 6 | add_global_arguments('-DGETTEXT_PACKAGE="@0@"'.format (meson.project_name()), language:'c') 7 | 8 | executable( 9 | meson.project_name(), 10 | 'src/Application.vala', 11 | 'src/MainWindow.vala', 12 | 'src/Constants.vala', 13 | 'src/SourceViewManager.vala', 14 | 'src/StackManager.vala', 15 | 'src/PhpVersionManager.vala', 16 | 'src/FileManager.vala', 17 | 'src/Dialogs/Alert.vala', 18 | 'src/Dialogs/Preferences.vala', 19 | 'src/Components/HeaderBar.vala', 20 | 'src/Components/HeaderLabel.vala', 21 | 'src/Views/StandardView.vala', 22 | 'src/Views/NoPhpFoundView.vala', 23 | dependencies: [ 24 | dependency('gtk+-3.0'), 25 | dependency('gtksourceview-3.0'), 26 | dependency('granite') 27 | ], 28 | install: true 29 | ) 30 | 31 | subdir('data') 32 | subdir('po') 33 | 34 | python3 = import('python3').find_python() 35 | run_command(python3, '-c', 'import shutil; shutil.copy("hooks/pre-commit.hook", ".git/hooks/pre-commit")') 36 | -------------------------------------------------------------------------------- /debian/copyright: -------------------------------------------------------------------------------- 1 | Upstream Author(s): 2 | 3 | Bart Zaalberg 4 | 5 | 6 | Copyright: 7 | 8 | Copyright (C) 2017 Bart Zaalberg 9 | 10 | License: 11 | 12 | This program is free software: you can redistribute it and/or modify 13 | it under the terms of the GNU General Public License as published by 14 | the Free Software Foundation, either version 3 of the License, or 15 | (at your option) any later version. 16 | 17 | This package is distributed in the hope that it will be useful, 18 | but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | GNU General Public License for more details. 21 | 22 | You should have received a copy of the GNU General Public License 23 | along with this program. If not, see . 24 | 25 | On Debian systems, the complete text of the GNU General 26 | Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". 27 | 28 | The Debian packaging is: 29 | 30 | Copyright (C) 2014 Cody Garver 31 | 32 | and is licensed under the GPL version 3, see above. 33 | -------------------------------------------------------------------------------- /data/meson.build: -------------------------------------------------------------------------------- 1 | icon_sizes = ['16', '24', '32', '48', '64', '128'] 2 | 3 | foreach i : icon_sizes 4 | install_data( 5 | join_paths('icons', i, meson.project_name() + '.svg'), 6 | install_dir: join_paths(get_option('datadir'), 'icons', 'hicolor', i + 'x' + i, 'apps') 7 | ) 8 | install_data( 9 | join_paths('icons', i, meson.project_name() + '.svg'), 10 | install_dir: join_paths(get_option('datadir'), 'icons', 'hicolor', i + 'x' + i + '@2', 'apps') 11 | ) 12 | endforeach 13 | 14 | install_data( 15 | join_paths(meson.project_name() + '.gschema.xml'), 16 | install_dir: join_paths(get_option('datadir'), 'glib-2.0', 'schemas') 17 | ) 18 | 19 | i18n.merge_file( 20 | input: meson.project_name() + '.desktop.in', 21 | output: meson.project_name() + '.desktop', 22 | po_dir: join_paths(meson.source_root(), 'po', 'extra'), 23 | type: 'desktop', 24 | install: true, 25 | install_dir: join_paths(get_option('datadir'), 'applications') 26 | ) 27 | 28 | i18n.merge_file( 29 | input: meson.project_name() + '.appdata.xml.in', 30 | output: meson.project_name() + '.appdata.xml', 31 | po_dir: join_paths(meson.source_root(), 'po', 'extra'), 32 | install: true, 33 | install_dir: join_paths(get_option('datadir'), 'metainfo') 34 | ) 35 | -------------------------------------------------------------------------------- /src/Views/StandardView.vala: -------------------------------------------------------------------------------- 1 | using Granite.Widgets; 2 | 3 | namespace PhpTester { 4 | public class StandardView : Gtk.ScrolledWindow { 5 | 6 | private SourceViewManager source_view_manager = SourceViewManager.get_instance (); 7 | private FileManager file_manager = FileManager.get_instance (); 8 | 9 | public StandardView () { 10 | var view = source_view_manager.get_view (); 11 | view.set_wrap_mode (Gtk.WrapMode.CHAR); 12 | view.buffer.text = file_manager.get_code_test_file_as_string (); 13 | 14 | Gtk.ScrolledWindow view_box = new Gtk.ScrolledWindow (null, null); 15 | view_box.set_policy (Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC); 16 | view_box.set_size_request (200,200); 17 | view_box.add (view); 18 | 19 | Gtk.ScrolledWindow result_box = new Gtk.ScrolledWindow (null, null); 20 | result_box.set_policy (Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC); 21 | result_box.set_size_request (200,200); 22 | result_box.add (source_view_manager.get_result ()); 23 | 24 | var pane = new Gtk.Paned (Gtk.Orientation.HORIZONTAL); 25 | pane.expand = true; 26 | pane.pack1 (view_box, false, false); 27 | pane.pack2 (result_box, false, false); 28 | 29 | add (pane); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/StackManager.vala: -------------------------------------------------------------------------------- 1 | namespace PhpTester { 2 | public class StackManager : Object { 3 | 4 | static StackManager? instance; 5 | 6 | private Gtk.Stack stack; 7 | private const string STANDARD_VIEW_ID = "standard-view"; 8 | private const string NO_PHP_FOUND_VIEW_ID = "no-php-found-view"; 9 | 10 | StackManager () { 11 | stack = new Gtk.Stack (); 12 | stack.transition_type = Gtk.StackTransitionType.SLIDE_LEFT_RIGHT; 13 | } 14 | 15 | public static StackManager get_instance () { 16 | if (instance == null) { 17 | instance = new StackManager (); 18 | } 19 | return instance; 20 | } 21 | 22 | public Gtk.Stack get_stack () { 23 | return this.stack; 24 | } 25 | 26 | public void load_views (Gtk.Window window) { 27 | stack.add_named (new StandardView (), STANDARD_VIEW_ID); 28 | stack.add_named (new NoPhpFoundView (), NO_PHP_FOUND_VIEW_ID); 29 | 30 | stack.notify["visible-child"].connect (() => { 31 | var header_bar = HeaderBar.get_instance (); 32 | 33 | if (stack.get_visible_child_name () == NO_PHP_FOUND_VIEW_ID) { 34 | header_bar.disable_all_buttons_except_options (); 35 | } 36 | }); 37 | 38 | window.add (stack); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /snap/snapcraft.yaml: -------------------------------------------------------------------------------- 1 | name: php-tester 2 | version: '1.5.4' 3 | summary: A simple tool to run your PHP scribbles. 4 | description: | 5 | A Vala application to test PHP snippets without having to start a server. 6 | 7 | icon: snap/gui/php-tester.png 8 | grade: devel # must be 'stable' to release into candidate/stable channels 9 | confinement: classic # use 'strict' once you have the right plugs and slots 10 | 11 | apps: 12 | php-tester: 13 | command: com.github.bartzaalberg.php-tester 14 | desktop: usr/share/applications/com.github.bartzaalberg.php-tester.desktop 15 | plugs: [home, x11, unity7, gsettings] 16 | 17 | parts: 18 | granite: 19 | plugin: cmake 20 | source: lp:granite/0.4 21 | source-type: bzr 22 | configflags: [-DCMAKE_BUILD_TYPE=Release, -DCMAKE_INSTALL_PREFIX=/usr, -DCMAKE_INSTALL_LIBDIR=/usr/lib] 23 | build-packages: 24 | - build-essential 25 | - valac 26 | stage-packages: 27 | - valac-0.30-vapi 28 | 29 | php-tester: 30 | after: [granite, desktop-gtk3] 31 | source: https://github.com/bartzaalberg/php-tester.git 32 | plugin: cmake 33 | configflags: [-DCMAKE_INSTALL_PREFIX=/usr] 34 | build-packages: 35 | - build-essential 36 | - valac 37 | - intltool 38 | - libgee-0.8-dev 39 | - debhelper 40 | - libgtk-3-dev 41 | - libgranite-dev 42 | - libgtksourceview-3.0-dev 43 | stage-packages: 44 | - gnome-keyring 45 | - gobject-introspection 46 | - libgdk-pixbuf2.0-0 47 | - libgee-0.8-2 48 | - libgtk-3-0 49 | -------------------------------------------------------------------------------- /data/com.github.bartzaalberg.php-tester.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | false 5 | Maximized 6 | Whether the window is maximized 7 | 8 | 9 | (1024, 750) 10 | Window position 11 | Most recent window position (x, y) 12 | 13 | 14 | (-1, -1) 15 | Window size 16 | Most recent window size (width, height) 17 | 18 | 19 | 'classic' 20 | Preferred Style Scheme 21 | Set the preferred style scheme. 22 | 23 | 24 | true 25 | Use system font 26 | Whether Scratch should use the default system font 27 | 28 | 29 | 'Droid Sans Mono 10' 30 | Preferred Font 31 | Set the preferred font. 32 | 33 | 34 | '' 35 | The PHP version you are using 36 | Set the preferred PHP version. 37 | 38 | 39 | '/usr/bin' 40 | The PHP path 41 | This path is used to search for PHP. If this path is wrong the application wont be able to operate 42 | 43 | 44 | false 45 | Dark Theme 46 | Prefer Dark Theme 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | # Archived 5 | This repository is not maintained anymore and will not be updated to Elementary OS 6.0. You have my blessing to create a fork and update the application to post publish it in Elementary 6.0 under your own name. 6 | 7 | # PHP Tester 8 | Test your PHP code easily 9 | 10 |

11 | 12 | 13 | Get it on AppCenter 14 | 15 |

16 | 17 |

18 | 20 |

21 | 22 | ### PHP code without a server! 23 | 24 | A Vala application to test PHP snippets without having to start a server. 25 | 26 | ## Installation 27 | 28 | First you will need to install elementary SDK 29 | 30 | `sudo apt install elementary-sdk` 31 | 32 | ### Dependencies 33 | 34 | These dependencies must be present before building 35 | - `valac` 36 | - `gtk+-3.0` 37 | - `granite` 38 | - `gtksourceview-3.0` 39 | 40 | You can install these on a Ubuntu-based system by executing this command: 41 | 42 | `sudo apt install valac libgtk-3-dev libgranite-dev gtksourceview-3.0` 43 | 44 | ### Building 45 | ``` 46 | meson build --prefix=/usr 47 | cd build 48 | ninja 49 | ``` 50 | 51 | ### Installing 52 | `sudo ninja install` 53 | 54 | ### Recompile the schema after installation 55 | `sudo glib-compile-schemas /usr/share/glib-2.0/schemas` 56 | 57 | ### Update .pot file 58 | Call the following command from the build folder: 59 | 60 | `ninja com.github.bartzaalberg.php-tester-pot` 61 | 62 | ## FAQ 63 | 64 | #### I have XAMPP installed but the application can't find PHP. Why is that so? 65 | 66 | Unfortunately XAMPP puts PHP in a location that PHP Tester cannot reach. As a workaround you can create a symlink to the default location. Set the PHP path back to `/usr/bin` from the applicatoin and run the following command. 67 | 68 | `sudo ln -s /opt/lampp/bin/php /usr/bin/php` 69 | -------------------------------------------------------------------------------- /po/nl.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "MIME-Version: 1.0\n" 4 | "Content-Type: text/plain; charset=UTF-8\n" 5 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 6 | 7 | 8 | #: ../src/Components/HeaderBar.vala:74 ../src/Dialogs/Cheatsheet.vala:14 9 | msgid "Run the code" 10 | msgstr "Activeer de code" 11 | 12 | #: ../src/Components/HeaderBar.vala:82 13 | msgid "Copy input or output" 14 | msgstr "Kopieer input of output" 15 | 16 | #: ../src/Components/HeaderBar.vala:85 17 | msgid "Copy Input" 18 | msgstr "Kopieer input" 19 | 20 | #: ../src/Components/HeaderBar.vala:90 21 | msgid "Copy Output" 22 | msgstr "Kopieer output" 23 | 24 | #: ../src/Components/HeaderBar.vala:105 25 | msgid "Settings" 26 | msgstr "Instellingen" 27 | 28 | #: ../src/Components/HeaderBar.vala:108 29 | msgid "Markdown Cheatsheet" 30 | msgstr "" 31 | 32 | #: ../src/Components/HeaderBar.vala:113 ../src/Dialogs/Preferences.vala:9 33 | #: ../src/Dialogs/Preferences.vala:14 34 | msgid "Preferences" 35 | msgstr "Voorkeuren" 36 | 37 | #: ../src/Views/NoPhpFoundView.vala:7 38 | msgid "No PHP versions found" 39 | msgstr "Er is geen versie van PHP gevonden" 40 | 41 | #: ../src/Views/NoPhpFoundView.vala:7 42 | msgid "Please install a versions of PHP and restart the application." 43 | msgstr "Installeer een versie van PHP en herstart de applicatie." 44 | 45 | #: ../src/SourceViewManager.vala:44 46 | msgid "Result will show up here" 47 | msgstr "Het resultaat wordt hier weergegeven" 48 | 49 | #: ../src/Dialogs/Cheatsheet.vala:4 ../src/Dialogs/Cheatsheet.vala:7 50 | msgid "Cheatsheet" 51 | msgstr "" 52 | 53 | #: ../src/Dialogs/Cheatsheet.vala:17 54 | msgid "Copy input" 55 | msgstr "Kopieer input" 56 | 57 | #: ../src/Dialogs/Cheatsheet.vala:20 58 | msgid "Copy output" 59 | msgstr "Kopieer output" 60 | 61 | #: ../src/Dialogs/Cheatsheet.vala:23 62 | msgid "Open the cheatsheet" 63 | msgstr "Open het cheatsheet" 64 | 65 | #: ../src/Dialogs/Cheatsheet.vala:26 ../src/Dialogs/Preferences.vala:32 66 | msgid "Close" 67 | msgstr "Sluiten" 68 | 69 | #: ../src/Dialogs/Preferences.vala:20 70 | msgid "Custom font:" 71 | msgstr "" 72 | 73 | #: ../src/Dialogs/Preferences.vala:30 74 | msgid "Theme:" 75 | msgstr "Thema:" 76 | 77 | #: ../src/Dialogs/Preferences.vala:38 78 | msgid "Save" 79 | msgstr "Opslaan" 80 | 81 | #: ../src/FileManager.vala:99 82 | msgid "An error occurred" 83 | msgstr "Er is een fout opgetreden" 84 | -------------------------------------------------------------------------------- /po/extra/nl.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: extra\n" 4 | "Language: nl\n" 5 | "MIME-Version: 1.0\n" 6 | "Content-Type: text/plain; charset=UTF-8\n" 7 | "Content-Transfer-Encoding: 8bit\n" 8 | 9 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:6 10 | #: data/com.github.bartzaalberg.php-tester.desktop.in:3 11 | msgid "PHP Tester" 12 | msgstr "PHP Tester" 13 | 14 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:7 15 | #: data/com.github.bartzaalberg.php-tester.desktop.in:4 16 | msgid "Test some PHP code!" 17 | msgstr "Test je PHP code!" 18 | 19 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:9 20 | msgid "A simple tool to test your PHP code." 21 | msgstr "Een eenvoudige tool om je PHP code te test" 22 | 23 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:10 24 | msgid "Features:" 25 | msgstr "Kenmerken:" 26 | 27 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:12 28 | msgid "Code without having to start a whole project!" 29 | msgstr "Programmeer zonder een een heel project te hoeven opzetten" 30 | 31 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:13 32 | msgid "Switch PHP versions on the fly!" 33 | msgstr "Verander elk moment van PHP versie" 34 | 35 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:14 36 | msgid "Copy your snippet with a simple click on a button!" 37 | msgstr "Kopieer je snippet met een simpele klik op een knop!" 38 | 39 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:15 40 | msgid "Continue where you left off last time" 41 | msgstr "Ga verder waar je de vorige keer geindigd bent." 42 | 43 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:16 44 | msgid "Run your code with a simple shortcut! (ctrl + r)" 45 | msgstr "Draai je code met een simpele shortcut (ctrl +r)" 46 | 47 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:16 48 | msgid "Choose a cool theme to code in" 49 | msgstr "Kies een cool thema om in the programmeren" 50 | 51 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:30 52 | msgid "Bart Zaalberg" 53 | msgstr "Bart Zaalberg" 54 | 55 | #: data/com.github.bartzaalberg.php-tester.desktop.in:6 56 | msgid "com.github.bartzaalberg.php-tester" 57 | msgstr "com.github.bartzaalberg.php-tester" 58 | 59 | #: data/com.github.bartzaalberg.php-tester.desktop.in:11 60 | msgid "GUI;PHP;Development;" 61 | msgstr "GUI;PHP;Development;Ontwikkelen;" 62 | -------------------------------------------------------------------------------- /po/extra/extra.pot: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.bartzaalberg.alias package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: extra\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2019-01-24 19:02+0100\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=CHARSET\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:6 21 | #: data/com.github.bartzaalberg.php-tester.desktop.in:3 22 | msgid "PHP Tester" 23 | msgstr "" 24 | 25 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:7 26 | #: data/com.github.bartzaalberg.php-tester.desktop.in:4 27 | msgid "Test some PHP code!" 28 | msgstr "" 29 | 30 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:9 31 | msgid "A simple tool to test your PHP code." 32 | msgstr "" 33 | 34 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:10 35 | msgid "Features:" 36 | msgstr "" 37 | 38 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:12 39 | msgid "Code without having to start a whole project!" 40 | msgstr "" 41 | 42 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:13 43 | msgid "Switch PHP versions on the fly!" 44 | msgstr "" 45 | 46 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:14 47 | msgid "Copy your snippet with a simple click on a button!" 48 | msgstr "" 49 | 50 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:15 51 | msgid "Continue where you left off last time" 52 | msgstr "" 53 | 54 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:16 55 | msgid "Run your code with a simple shortcut! (ctrl + r)" 56 | msgstr "" 57 | 58 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:16 59 | msgid "Choose a cool theme to code in" 60 | msgstr "" 61 | 62 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:30 63 | msgid "Bart Zaalberg" 64 | msgstr "" 65 | 66 | #: data/com.github.bartzaalberg.php-tester.desktop.in:6 67 | msgid "com.github.bartzaalberg.php-tester" 68 | msgstr "" 69 | 70 | #: data/com.github.bartzaalberg.php-tester.desktop.in:11 71 | msgid "GUI;PHP;Development;" 72 | msgstr "" 73 | -------------------------------------------------------------------------------- /po/extra/fr.po: -------------------------------------------------------------------------------- 1 | # French translation for extra package. 2 | # Copyright (C) 2019 THE extra'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.bartzaalberg.alias package. 4 | # NathanBnm, 2019. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: extra\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2019-01-24 19:02+0100\n" 12 | "PO-Revision-Date: 2019-01-28 21:00+0100\n" 13 | "Last-Translator: NathanBnm\n" 14 | "Language-Team: Français\n" 15 | "Language: fr\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:6 21 | #: data/com.github.bartzaalberg.php-tester.desktop.in:3 22 | msgid "PHP Tester" 23 | msgstr "PHP Tester" 24 | 25 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:7 26 | #: data/com.github.bartzaalberg.php-tester.desktop.in:4 27 | msgid "Test some PHP code!" 28 | msgstr "Testez du code PHP !" 29 | 30 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:9 31 | msgid "A simple tool to test your PHP code." 32 | msgstr "Un simple outil pour tester votre code PHP." 33 | 34 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:10 35 | msgid "Features:" 36 | msgstr "Fonctionnalités :" 37 | 38 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:12 39 | msgid "Code without having to start a whole project!" 40 | msgstr "Codez sans avoir à démarrer un projet complet !" 41 | 42 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:13 43 | msgid "Switch PHP versions on the fly!" 44 | msgstr "Changez de version de PHP à la volée !" 45 | 46 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:14 47 | msgid "Copy your snippet with a simple click on a button!" 48 | msgstr "Copiez votre extrait d'un simple clic sur un bouton !" 49 | 50 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:15 51 | msgid "Continue where you left off last time" 52 | msgstr "Continuez là où vous vous étiez arrêté la dernière fois" 53 | 54 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:16 55 | msgid "Run your code with a simple shortcut! (ctrl + r)" 56 | msgstr "Exécutez votre code avec un simple raccourci ! (Ctrl + R)" 57 | 58 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:16 59 | msgid "Choose a cool theme to code in" 60 | msgstr "Choisissez un thème cool pour coder" 61 | 62 | #: data/com.github.bartzaalberg.php-tester.appdata.xml.in:30 63 | msgid "Bart Zaalberg" 64 | msgstr "Bart Zaalberg" 65 | 66 | #: data/com.github.bartzaalberg.php-tester.desktop.in:6 67 | msgid "com.github.bartzaalberg.php-tester" 68 | msgstr "com.github.bartzaalberg.php-tester" 69 | 70 | #: data/com.github.bartzaalberg.php-tester.desktop.in:11 71 | msgid "GUI;PHP;Development;" 72 | msgstr "GUI;PHP;Développement;" 73 | -------------------------------------------------------------------------------- /po/fr.po: -------------------------------------------------------------------------------- 1 | # French translations for PACKAGE package. 2 | # Copyright (C) 2019 THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # NathanBnm, 2019. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2017-11-13 17:02+0100\n" 12 | "PO-Revision-Date: 2019-01-15 23:06+0100\n" 13 | "Last-Translator: NathanBnm\n" 14 | "Language-Team: Français\n" 15 | "Language: fr\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: ../src/Components/HeaderBar.vala:74 ../src/Dialogs/Cheatsheet.vala:14 21 | msgid "Run the code" 22 | msgstr "Exécuter le code" 23 | 24 | #: ../src/Components/HeaderBar.vala:82 25 | msgid "Copy input or output" 26 | msgstr "Copier l'entrée ou la sortie" 27 | 28 | #: ../src/Components/HeaderBar.vala:85 29 | msgid "Copy Input" 30 | msgstr "Copier l'entrée" 31 | 32 | #: ../src/Components/HeaderBar.vala:90 33 | msgid "Copy Output" 34 | msgstr "Copier la sortie" 35 | 36 | #: ../src/Components/HeaderBar.vala:105 37 | msgid "Settings" 38 | msgstr "Paramètres" 39 | 40 | #: ../src/Components/HeaderBar.vala:108 41 | msgid "Markdown Cheatsheet" 42 | msgstr "Raccourcis clavier" 43 | 44 | #: ../src/Components/HeaderBar.vala:113 ../src/Dialogs/Preferences.vala:9 45 | #: ../src/Dialogs/Preferences.vala:14 46 | msgid "Preferences" 47 | msgstr "Préférences" 48 | 49 | #: ../src/Views/NoPhpFoundView.vala:7 50 | msgid "No PHP versions found" 51 | msgstr "Pas de versions de PHP trouvées" 52 | 53 | #: ../src/Views/NoPhpFoundView.vala:7 54 | msgid "Please install a versions of PHP and try again." 55 | msgstr "Veuillez installer une version de PHP et réessayer." 56 | 57 | #: ../src/SourceViewManager.vala:44 58 | msgid "Result will show up here" 59 | msgstr "Le résultat s'affichera ici" 60 | 61 | #: ../src/Dialogs/Cheatsheet.vala:4 ../src/Dialogs/Cheatsheet.vala:7 62 | msgid "Cheatsheet" 63 | msgstr "Raccourcis clavier" 64 | 65 | #: ../src/Dialogs/Cheatsheet.vala:17 66 | msgid "Copy input" 67 | msgstr "Copier l'entrée" 68 | 69 | #: ../src/Dialogs/Cheatsheet.vala:20 70 | msgid "Copy output" 71 | msgstr "Copier la sortie" 72 | 73 | #: ../src/Dialogs/Cheatsheet.vala:23 74 | msgid "Open the cheatsheet" 75 | msgstr "Ouvrir les raccourcis clavier" 76 | 77 | #: ../src/Dialogs/Cheatsheet.vala:26 ../src/Dialogs/Preferences.vala:32 78 | msgid "Close" 79 | msgstr "Fermer" 80 | 81 | #: ../src/Dialogs/Preferences.vala:20 82 | msgid "Custom font:" 83 | msgstr "Police personnalisée :" 84 | 85 | #: ../src/Dialogs/Preferences.vala:30 86 | msgid "Theme:" 87 | msgstr "Thème :" 88 | 89 | #: ../src/Dialogs/Preferences.vala:38 90 | msgid "Save" 91 | msgstr "Enregistrer" 92 | 93 | #: ../src/FileManager.vala:99 94 | msgid "An error occurred" 95 | msgstr "Une erreur s'est produite" 96 | -------------------------------------------------------------------------------- /src/Application.vala: -------------------------------------------------------------------------------- 1 | using Granite.Widgets; 2 | 3 | namespace PhpTester { 4 | public class App:Granite.Application { 5 | 6 | public static MainWindow window = null; 7 | public static GLib.Settings settings; 8 | 9 | construct { 10 | program_name = Constants.APPLICATION_NAME; 11 | application_id = Constants.APPLICATION_NAME; 12 | settings = new GLib.Settings (Constants.APPLICATION_NAME); 13 | 14 | } 15 | 16 | protected override void activate () { 17 | new_window (); 18 | } 19 | 20 | public void new_window () { 21 | if (window != null) { 22 | window.present (); 23 | return; 24 | } 25 | 26 | window = new MainWindow (this); 27 | go_to_last_saved_position (window); 28 | go_to_last_saved_size (window); 29 | use_dark_mode_if_enabled (); 30 | 31 | window.show_all (); 32 | 33 | change_view_if_no_php_was_found (); 34 | } 35 | 36 | public static int main (string[] args) { 37 | var app = new PhpTester.App (); 38 | return app.run (args); 39 | } 40 | 41 | private void go_to_last_saved_position (MainWindow main_window) { 42 | int window_x, window_y; 43 | settings.get ("window-position", "(ii)", out window_x, out window_y); 44 | if (window_x != -1 || window_y != -1) { 45 | window.move (window_x, window_y); 46 | } 47 | } 48 | 49 | private void go_to_last_saved_size (MainWindow main_window) { 50 | var rect = Gtk.Allocation (); 51 | 52 | settings.get ("window-size", "(ii)", out rect.width, out rect.height); 53 | window.set_allocation (rect); 54 | 55 | if (settings.get_boolean ("window-maximized")) { 56 | window.maximize (); 57 | } 58 | } 59 | 60 | private void change_view_if_no_php_was_found () { 61 | var stack_manager = StackManager.get_instance (); 62 | var php_version_manager = PhpVersionManager.get_instance (); 63 | if (php_version_manager.no_versions_found ()) { 64 | stack_manager.get_stack ().visible_child_name = "no-php-found-view"; 65 | } 66 | } 67 | 68 | private void use_dark_mode_if_enabled () { 69 | var gtk_settings = Gtk.Settings.get_default (); 70 | var dark_mode_switch = new Granite.ModeSwitch.from_icon_name ( 71 | "display-brightness-symbolic", "weather-clear-night-symbolic" 72 | ); 73 | dark_mode_switch.primary_icon_tooltip_text = _("Light mode"); 74 | dark_mode_switch.secondary_icon_tooltip_text = _("Dark mode"); 75 | dark_mode_switch.valign = Gtk.Align.CENTER; 76 | dark_mode_switch.bind_property ("active", gtk_settings, "gtk_application_prefer_dark_theme"); 77 | settings.bind ("use-dark-theme", dark_mode_switch, "active", GLib.SettingsBindFlags.DEFAULT); 78 | } 79 | } 80 | } 81 | 82 | -------------------------------------------------------------------------------- /po/pt_BR.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: \n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2018-04-08 09:15-0300\n" 11 | "PO-Revision-Date: 2018-04-08 09:20-0300\n" 12 | "Language-Team: \n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "X-Generator: Poedit 1.8.7.1\n" 17 | "Last-Translator: Filipe de Almeida Garrett \n" 18 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" 19 | "Language: pt_BR\n" 20 | 21 | #: ../src/Components/HeaderBar.vala:74 ../src/Dialogs/Cheatsheet.vala:14 22 | msgid "Run the code" 23 | msgstr "Executar o código" 24 | 25 | #: ../src/Components/HeaderBar.vala:82 26 | msgid "Copy input or output" 27 | msgstr "Copiar entrada ou saída" 28 | 29 | #: ../src/Components/HeaderBar.vala:85 30 | msgid "Copy Input" 31 | msgstr "Copiar Entrada" 32 | 33 | #: ../src/Components/HeaderBar.vala:90 34 | msgid "Copy Output" 35 | msgstr "Copiar Saída" 36 | 37 | #: ../src/Components/HeaderBar.vala:105 38 | msgid "Settings" 39 | msgstr "Configurações" 40 | 41 | #: ../src/Components/HeaderBar.vala:108 42 | msgid "Markdown Cheatsheet" 43 | msgstr "Atalhos de Marcação" 44 | 45 | #: ../src/Components/HeaderBar.vala:113 ../src/Dialogs/Preferences.vala:9 46 | #: ../src/Dialogs/Preferences.vala:14 47 | msgid "Preferences" 48 | msgstr "Preferências" 49 | 50 | #: ../src/Views/NoPhpFoundView.vala:7 51 | msgid "No PHP versions found" 52 | msgstr "Nenhuma versão do PHP encontrada" 53 | 54 | #: ../src/Views/NoPhpFoundView.vala:7 55 | msgid "Please install a versions of PHP and try again." 56 | msgstr "Por favor, instale uma versão do PHP e tente novamente." 57 | 58 | #: ../src/SourceViewManager.vala:44 59 | msgid "Result will show up here" 60 | msgstr "O resultado vai aparecer aqui" 61 | 62 | #: ../src/Dialogs/Cheatsheet.vala:4 ../src/Dialogs/Cheatsheet.vala:7 63 | msgid "Cheatsheet" 64 | msgstr "Lista de atalhos" 65 | 66 | #: ../src/Dialogs/Cheatsheet.vala:17 67 | msgid "Copy input" 68 | msgstr "Copiar entrada" 69 | 70 | #: ../src/Dialogs/Cheatsheet.vala:20 71 | msgid "Copy output" 72 | msgstr "Copiar saída" 73 | 74 | #: ../src/Dialogs/Cheatsheet.vala:23 75 | msgid "Open the cheatsheet" 76 | msgstr "Abrir a lista de atalhos" 77 | 78 | #: ../src/Dialogs/Cheatsheet.vala:26 ../src/Dialogs/Preferences.vala:32 79 | msgid "Close" 80 | msgstr "Fechar" 81 | 82 | #: ../src/Dialogs/Preferences.vala:20 83 | msgid "Custom font:" 84 | msgstr "Fonte personalizada:" 85 | 86 | #: ../src/Dialogs/Preferences.vala:30 87 | msgid "Theme:" 88 | msgstr "Tema: " 89 | 90 | #: ../src/Dialogs/Preferences.vala:38 91 | msgid "Save" 92 | msgstr "Salvar" 93 | 94 | #: ../src/FileManager.vala:99 95 | msgid "An error occurred" 96 | msgstr "Houve um erro" 97 | -------------------------------------------------------------------------------- /po/com.github.bartzaalberg.php-tester.pot: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.bartzaalberg.php-tester package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: com.github.bartzaalberg.php-tester\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2019-01-26 23:42+0100\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=CHARSET\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: src/SourceViewManager.vala:45 21 | msgid "Result will show up here" 22 | msgstr "" 23 | 24 | #: src/FileManager.vala:32 src/FileManager.vala:98 25 | msgid "An error occurred" 26 | msgstr "" 27 | 28 | #: src/Dialogs/Cheatsheet.vala:4 src/Dialogs/Cheatsheet.vala:7 29 | msgid "Cheatsheet" 30 | msgstr "" 31 | 32 | #: src/Dialogs/Cheatsheet.vala:14 src/Components/HeaderBar.vala:90 33 | msgid "Run the code" 34 | msgstr "" 35 | 36 | #: src/Dialogs/Cheatsheet.vala:17 37 | msgid "Copy input" 38 | msgstr "" 39 | 40 | #: src/Dialogs/Cheatsheet.vala:20 41 | msgid "Copy output" 42 | msgstr "" 43 | 44 | #: src/Dialogs/Cheatsheet.vala:23 45 | msgid "Open the cheatsheet" 46 | msgstr "" 47 | 48 | #: src/Dialogs/Cheatsheet.vala:26 src/Dialogs/Preferences.vala:39 49 | msgid "Close" 50 | msgstr "" 51 | 52 | #: src/Dialogs/Preferences.vala:9 src/Dialogs/Preferences.vala:14 53 | #: src/Components/HeaderBar.vala:129 54 | msgid "Preferences" 55 | msgstr "" 56 | 57 | #: src/Dialogs/Preferences.vala:20 58 | msgid "Custom font:" 59 | msgstr "" 60 | 61 | #: src/Dialogs/Preferences.vala:30 62 | msgid "Theme:" 63 | msgstr "" 64 | 65 | #: src/Dialogs/Preferences.vala:32 66 | msgid "PHP path:" 67 | msgstr "" 68 | 69 | #: src/Dialogs/Preferences.vala:35 70 | msgid "This path will be used to find php" 71 | msgstr "" 72 | 73 | #: src/Dialogs/Preferences.vala:37 74 | msgid "You need to restart after changing the PHP path" 75 | msgstr "" 76 | 77 | #: src/Dialogs/Preferences.vala:45 78 | msgid "Save" 79 | msgstr "" 80 | 81 | #: src/Components/HeaderBar.vala:98 82 | msgid "Copy input or output" 83 | msgstr "" 84 | 85 | #: src/Components/HeaderBar.vala:101 86 | msgid "Copy Input" 87 | msgstr "" 88 | 89 | #: src/Components/HeaderBar.vala:106 90 | msgid "Copy Output" 91 | msgstr "" 92 | 93 | #: src/Components/HeaderBar.vala:121 94 | msgid "Settings" 95 | msgstr "" 96 | 97 | #: src/Components/HeaderBar.vala:124 98 | msgid "Markdown Cheatsheet" 99 | msgstr "" 100 | 101 | #: src/Views/NoPhpFoundView.vala:8 102 | msgid "No PHP versions found" 103 | msgstr "" 104 | 105 | #: src/Views/NoPhpFoundView.vala:9 106 | msgid "Please install a versions of PHP and restart the application." 107 | msgstr "" 108 | -------------------------------------------------------------------------------- /src/PhpVersionManager.vala: -------------------------------------------------------------------------------- 1 | namespace PhpTester { 2 | public class PhpVersionManager : Object { 3 | 4 | static PhpVersionManager? instance; 5 | private Settings settings = new Settings ("com.github.bartzaalberg.php-tester"); 6 | string[] php_versions = {}; 7 | 8 | PhpVersionManager () { 9 | get_php_versions (); 10 | } 11 | 12 | public static PhpVersionManager get_instance () { 13 | if (instance == null) { 14 | instance = new PhpVersionManager (); 15 | } 16 | return instance; 17 | } 18 | 19 | private void get_php_versions () { 20 | try { 21 | string directory = settings.get_string ("php-path"); 22 | 23 | if (directory == "") { 24 | directory = "/usr/bin"; 25 | settings.set_string ("php-path", directory); 26 | } 27 | 28 | Dir dir = Dir.open (directory, 0); 29 | string? name = null; 30 | while ((name = dir.read_name ()) != null) { 31 | string path = Path.build_filename (directory, name); 32 | 33 | if (!(FileUtils.test (path, FileTest.IS_EXECUTABLE))) { 34 | continue; 35 | } 36 | 37 | if (!("php" in name)) { 38 | continue; 39 | } 40 | 41 | if ((name.substring (0, 3) != "php")) { 42 | continue; 43 | } 44 | 45 | if (name != "php" && !fourth_char_is_number (name)) { 46 | continue; 47 | } 48 | 49 | string short_string = name.substring (-3); 50 | int number = int.parse (short_string); 51 | 52 | if (name != "php" && number == 0) { 53 | continue; 54 | } 55 | 56 | php_versions += name; 57 | } 58 | 59 | if ( !current_saved_version_is_available ()) { 60 | settings.set_string ("php-version", php_versions[0]); 61 | } 62 | 63 | } catch (FileError err) { 64 | stderr.printf (err.message); 65 | } 66 | } 67 | 68 | public bool current_saved_version_is_available () { 69 | if (no_versions_found ()) { 70 | return false; 71 | } 72 | if (!(settings.get_string ("php-version") in php_versions)) { 73 | return true; 74 | } 75 | return true; 76 | } 77 | 78 | public string[] get_versions () { 79 | return this.php_versions; 80 | } 81 | 82 | public bool no_versions_found () { 83 | return get_versions ().length == 0; 84 | } 85 | 86 | public bool fourth_char_is_number (string name) { 87 | 88 | if (name.length < 4) { 89 | return false; 90 | } 91 | 92 | var fourth_char = name.substring (3, 1); 93 | 94 | if ( int.parse (fourth_char) == 0) { 95 | return false; 96 | } 97 | 98 | return true; 99 | } 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /src/SourceViewManager.vala: -------------------------------------------------------------------------------- 1 | namespace PhpTester { 2 | public class SourceViewManager : Object { 3 | 4 | static SourceViewManager? instance; 5 | 6 | private Settings settings = new Settings ("com.github.bartzaalberg.php-tester"); 7 | public Gtk.SourceView view; 8 | public Gtk.SourceBuffer buffer; 9 | public Gtk.TextView result; 10 | 11 | SourceViewManager () { 12 | try { 13 | var file = this.get_code_test_file (); 14 | var info = file.query_info ("standard::*", FileQueryInfoFlags.NONE, null); 15 | var mime_type = ContentType.get_mime_type ( 16 | info.get_attribute_as_string (FileAttribute.STANDARD_CONTENT_TYPE) 17 | ); 18 | 19 | buffer = new Gtk.SourceBuffer (null); 20 | buffer.highlight_syntax = true; 21 | 22 | set_theme (settings.get_string ("style-scheme")); 23 | 24 | var manager = Gtk.SourceLanguageManager.get_default (); 25 | buffer.language = manager.guess_language (file.get_path (), mime_type); 26 | 27 | view = new Gtk.SourceView (); 28 | view.set_show_line_numbers (true); 29 | view.set_margin_start (10); 30 | view.buffer = buffer; 31 | 32 | set_font (settings.get_string ("font")); 33 | 34 | } catch (Error e) { 35 | error ("%s", e.message); 36 | } 37 | 38 | result = new Gtk.TextView (); 39 | result.set_wrap_mode (Gtk.WrapMode.CHAR); 40 | result.set_editable (false); 41 | result.set_left_margin (10); 42 | result.set_right_margin (10); 43 | result.set_top_margin (10); 44 | result.set_bottom_margin (10); 45 | result.buffer.text = _("Result will show up here"); 46 | } 47 | 48 | public static SourceViewManager get_instance () { 49 | if (instance == null) { 50 | instance = new SourceViewManager (); 51 | } 52 | return instance; 53 | } 54 | 55 | public Gtk.SourceView get_view () { 56 | return this.view; 57 | } 58 | 59 | public void set_view (Gtk.SourceView new_view) { 60 | this.view = new_view; 61 | } 62 | 63 | public Gtk.TextView get_result () { 64 | return this.result; 65 | } 66 | 67 | public void set_result (string result) { 68 | this.result.buffer.text = result; 69 | } 70 | 71 | public File get_code_test_file () { 72 | 73 | var file = File.new_for_path ("phptest.php"); 74 | if (!file.query_exists ()) { 75 | try { 76 | file.create (FileCreateFlags.REPLACE_DESTINATION, null); 77 | get_code_test_file (); 78 | } catch (Error e) { 79 | error ("%s", e.message); 80 | } 81 | } 82 | return file; 83 | } 84 | 85 | public void set_theme (string theme_name) { 86 | var style_scheme_manager = new Gtk.SourceStyleSchemeManager (); 87 | buffer.style_scheme = style_scheme_manager.get_scheme (theme_name); 88 | } 89 | 90 | public void set_font (string font) { 91 | if (settings.get_boolean ("use-system-font")) { 92 | font = "Monospace 9"; 93 | } 94 | 95 | view.override_font (Pango.FontDescription.from_string (font)); 96 | } 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /src/FileManager.vala: -------------------------------------------------------------------------------- 1 | using Granite.Widgets; 2 | 3 | namespace PhpTester { 4 | public class FileManager : Object { 5 | 6 | private Settings settings = new Settings ("com.github.bartzaalberg.php-tester"); 7 | SourceViewManager source_view_manager = SourceViewManager.get_instance (); 8 | 9 | static FileManager? instance; 10 | 11 | FileManager () { 12 | } 13 | 14 | public static FileManager get_instance () { 15 | if (instance == null) { 16 | instance = new FileManager (); 17 | } 18 | return instance; 19 | } 20 | 21 | public void write_to_file () { 22 | var file = get_code_test_file (); 23 | 24 | try { 25 | if (file.query_exists () == true) { 26 | file.delete (null); 27 | FileOutputStream fos = file.create (FileCreateFlags.REPLACE_DESTINATION, null); 28 | DataOutputStream dos = new DataOutputStream (fos); 29 | dos.put_string (source_view_manager.get_view ().buffer.text, null); 30 | } 31 | } catch (Error e) { 32 | new Alert (_("An error occurred"), e.message); 33 | } 34 | } 35 | 36 | public File get_code_test_file () { 37 | var file = File.new_for_path ("phptest.php"); 38 | 39 | try { 40 | if (!file.query_exists ()) { 41 | file.create (FileCreateFlags.REPLACE_DESTINATION, null); 42 | get_code_test_file (); 43 | } 44 | } catch (Error e) { 45 | error ("%s", e.message); 46 | } 47 | 48 | return file; 49 | } 50 | 51 | public string get_code_test_file_as_string () { 52 | var file = get_code_test_file (); 53 | 54 | try { 55 | // Open file for reading and wrap returned FileInputStream into a 56 | // DataInputStream, so we can read line by line 57 | var lines = new DataInputStream (file.read ()); 58 | 59 | string line; 60 | string file_as_string = ""; 61 | 62 | // Read lines until end of file (null) is reached 63 | while ((line = lines.read_line (null)) != null) { 64 | file_as_string += line + "\n"; 65 | } 66 | 67 | if (file_as_string == "") { 68 | file_as_string = " { 30 | switch (e.keyval) { 31 | case Gdk.Key.r: 32 | if ((e.state & Gdk.ModifierType.CONTROL_MASK) != 0) { 33 | file_manager.run_code (); 34 | } 35 | break; 36 | case Gdk.Key.s: 37 | if ((e.state & Gdk.ModifierType.CONTROL_MASK) != 0) { 38 | new Preferences (); 39 | } 40 | break; 41 | case Gdk.Key.i: 42 | if ((e.state & Gdk.ModifierType.CONTROL_MASK) != 0) { 43 | clipboard.set_text (source_view_manager.get_view ().buffer.text, -1); 44 | } 45 | break; 46 | case Gdk.Key.o: 47 | if ((e.state & Gdk.ModifierType.CONTROL_MASK) != 0) { 48 | clipboard.set_text (source_view_manager.get_result ().buffer.text, -1); 49 | } 50 | break; 51 | case Gdk.Key.q: 52 | if ((e.state & Gdk.ModifierType.CONTROL_MASK) != 0) { 53 | this.destroy (); 54 | } 55 | break; 56 | } 57 | 58 | return false; 59 | }); 60 | } 61 | 62 | public override bool configure_event (Gdk.EventConfigure event) { 63 | var settings = new GLib.Settings (Constants.APPLICATION_NAME); 64 | 65 | if (configure_id != 0) { 66 | GLib.Source.remove (configure_id); 67 | } 68 | 69 | configure_id = Timeout.add (100, () => { 70 | configure_id = 0; 71 | 72 | if (is_maximized) { 73 | settings.set_boolean ("window-maximized", true); 74 | } else { 75 | settings.set_boolean ("window-maximized", false); 76 | 77 | Gdk.Rectangle rect; 78 | get_allocation (out rect); 79 | settings.set ("window-size", "(ii)", rect.width, rect.height); 80 | 81 | int root_x, root_y; 82 | get_position (out root_x, out root_y); 83 | settings.set ("window-position", "(ii)", root_x, root_y); 84 | } 85 | 86 | return false; 87 | }); 88 | 89 | return base.configure_event (event); 90 | } 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /src/Components/HeaderBar.vala: -------------------------------------------------------------------------------- 1 | using Granite.Widgets; 2 | 3 | namespace PhpTester { 4 | public class HeaderBar : Gtk.HeaderBar { 5 | 6 | static HeaderBar? instance; 7 | 8 | private Settings settings = new Settings ("com.github.bartzaalberg.php-tester"); 9 | private SourceViewManager source_view_manager = SourceViewManager.get_instance (); 10 | private FileManager file_manager = FileManager.get_instance (); 11 | private PhpVersionManager php_version_manager = PhpVersionManager.get_instance (); 12 | 13 | Gtk.Clipboard clipboard = Gtk.Clipboard.get (Gdk.SELECTION_CLIPBOARD); 14 | Gtk.Button start_button = new Gtk.Button.from_icon_name ("media-playback-start-symbolic"); 15 | Gtk.MenuButton copy_menu_button = new Gtk.MenuButton (); 16 | Gtk.Menu copy_menu = new Gtk.Menu (); 17 | Gtk.Button menu_button = new Gtk.Button.from_icon_name ("open-menu-symbolic", Gtk.IconSize.SMALL_TOOLBAR); 18 | Gtk.ComboBox combo_box = new Gtk.ComboBox (); 19 | Gtk.AccelGroup accel_group = new Gtk.AccelGroup (); 20 | 21 | enum Column { 22 | VERSION 23 | } 24 | 25 | HeaderBar () { 26 | Utils.set_color_primary (this, Constants.BRAND_COLOR); 27 | 28 | generate_versions_dropdown (); 29 | 30 | if (settings.get_string ("php-version") == "" && php_version_manager.get_versions ().length != 0) { 31 | settings.set_string ("php-version", php_version_manager.get_versions ()[0]); 32 | } 33 | 34 | get_active_dropdown_index_and_set (); 35 | generate_start_button (); 36 | generate_copy_menu (); 37 | generate_menu_button (); 38 | 39 | this.add (combo_box); 40 | this.pack_start (start_button); 41 | this.pack_start (copy_menu_button); 42 | this.pack_end (menu_button); 43 | 44 | this.show_close_button = true; 45 | } 46 | 47 | public static HeaderBar get_instance () { 48 | if (instance == null) { 49 | instance = new HeaderBar (); 50 | } 51 | return instance; 52 | } 53 | 54 | public void disable_all_buttons_except_options () { 55 | combo_box.set_sensitive (false); 56 | start_button.set_sensitive (false); 57 | copy_menu_button.popup = null; 58 | } 59 | 60 | private void generate_versions_dropdown () { 61 | Gtk.ListStore liststore = new Gtk.ListStore (1, typeof (string)); 62 | 63 | for (int i = 0; i < php_version_manager.get_versions ().length; i++) { 64 | Gtk.TreeIter iter; 65 | liststore.append (out iter); 66 | liststore.set (iter, Column.VERSION, php_version_manager.get_versions ()[i]); 67 | } 68 | 69 | Gtk.CellRendererText cell = new Gtk.CellRendererText (); 70 | 71 | combo_box.set_model (liststore); 72 | combo_box.pack_start (cell, false); 73 | combo_box.set_attributes (cell, "text", Column.VERSION); 74 | combo_box.set_active (0); 75 | combo_box.changed.connect (this.item_changed); 76 | } 77 | 78 | void item_changed (Gtk.ComboBox combo) { 79 | settings.set_string ("php-version", php_version_manager.get_versions () [combo.get_active ()]); 80 | } 81 | 82 | private void get_active_dropdown_index_and_set () { 83 | for (int i = 0; i < php_version_manager.get_versions ().length; i++) { 84 | if (php_version_manager.get_versions ()[i] == settings.get_string ("php-version")) { 85 | combo_box.set_active (i); 86 | } 87 | } 88 | } 89 | 90 | private void generate_start_button () { 91 | start_button.tooltip_markup = Granite.markup_accel_tooltip ({"R"}, _("Run the code")); 92 | start_button.clicked.connect (() => { 93 | file_manager.run_code (); 94 | }); 95 | } 96 | 97 | private void generate_copy_menu () { 98 | copy_menu_button.has_tooltip = true; 99 | copy_menu_button.tooltip_text = (_("Copy input or output")); 100 | copy_menu_button.set_image (new Gtk.Image.from_icon_name ("edit-copy-symbolic", Gtk.IconSize.SMALL_TOOLBAR)); 101 | 102 | var copy_input = new Gtk.MenuItem.with_label (_("Copy Input")); 103 | copy_input.add_accelerator ("activate", accel_group, 104 | Gdk.Key.i, Gdk.ModifierType.CONTROL_MASK, Gtk.AccelFlags.VISIBLE); 105 | copy_input.activate.connect (() => { 106 | clipboard.set_text (source_view_manager.get_view ().buffer.text, -1); 107 | }); 108 | 109 | var copy_output = new Gtk.MenuItem.with_label (_("Copy Output")); 110 | copy_output.add_accelerator ("activate", accel_group, 111 | Gdk.Key.o, Gdk.ModifierType.CONTROL_MASK, Gtk.AccelFlags.VISIBLE); 112 | copy_output.activate.connect (() => { 113 | clipboard.set_text (source_view_manager.get_result ().buffer.text, -1); 114 | }); 115 | 116 | copy_menu.add (copy_input); 117 | copy_menu.add (new Gtk.SeparatorMenuItem ()); 118 | copy_menu.add (copy_output); 119 | copy_menu.show_all (); 120 | 121 | copy_menu_button.popup = copy_menu; 122 | } 123 | 124 | private void generate_menu_button () { 125 | menu_button.tooltip_markup = Granite.markup_accel_tooltip ({"S"}, _("Settings")); 126 | menu_button.clicked.connect (() => { 127 | new Preferences (); 128 | }); 129 | } 130 | } 131 | } 132 | -------------------------------------------------------------------------------- /src/Dialogs/Preferences.vala: -------------------------------------------------------------------------------- 1 | namespace PhpTester { 2 | public class Preferences : Gtk.Dialog { 3 | 4 | private Settings settings = new Settings ("com.github.bartzaalberg.php-tester"); 5 | SourceViewManager source_view_manager = SourceViewManager.get_instance (); 6 | private Gtk.ComboBoxText style_scheme; 7 | private Granite.ModeSwitch dark_mode_switch = new Granite.ModeSwitch.from_icon_name ( 8 | "display-brightness-symbolic", "weather-clear-night-symbolic" 9 | ); 10 | 11 | public Preferences () { 12 | title = _("Preferences"); 13 | resizable = false; 14 | deletable = false; 15 | generate_dark_mode_button (); 16 | 17 | var general_header = new HeaderLabel (_("Preferences")); 18 | 19 | style_scheme = new Gtk.ComboBoxText (); 20 | populate_style_scheme (); 21 | settings.bind ("style-scheme", style_scheme, "active-id", SettingsBindFlags.DEFAULT); 22 | 23 | var use_custom_font_label = new Gtk.Label (_("Custom font:")); 24 | var use_custom_font = new Gtk.Switch (); 25 | use_custom_font.halign = Gtk.Align.START; 26 | settings.bind ("use-system-font", use_custom_font, "active", SettingsBindFlags.INVERT_BOOLEAN); 27 | 28 | var select_font = new Gtk.FontButton (); 29 | select_font.hexpand = true; 30 | settings.bind ("font", select_font, "font-name", SettingsBindFlags.DEFAULT); 31 | settings.bind ("use-system-font", select_font, "sensitive", SettingsBindFlags.INVERT_BOOLEAN); 32 | 33 | var theme_editor_label = new Gtk.Label (_("Theme (Editor):")); 34 | var theme_application_label = new Gtk.Label (_("Theme (Application):")); 35 | 36 | var php_path_label = new Gtk.Label (_("PHP path:")); 37 | var php_path_entry = new Gtk.Entry (); 38 | php_path_entry.set_text (settings.get_string ("php-path")); 39 | php_path_entry.set_tooltip_text (_("This path will be used to find php")); 40 | 41 | var restartNoteLabel = new Gtk.Label (_("You need to restart after changing the PHP path")); 42 | 43 | var close_button = new Gtk.Button.with_label (_("Close")); 44 | close_button.set_margin_end (6); 45 | close_button.clicked.connect (() => { 46 | this.destroy (); 47 | }); 48 | 49 | var save_button = new Gtk.Button.with_label (_("Save")); 50 | save_button.get_style_context ().add_class (Gtk.STYLE_CLASS_SUGGESTED_ACTION); 51 | save_button.clicked.connect (() => { 52 | settings.set_string ("style-scheme", style_scheme.get_active_id ()); 53 | source_view_manager.set_theme (settings.get_string ("style-scheme")); 54 | source_view_manager.set_font (settings.get_string ("font")); 55 | 56 | if (php_path_entry.text == "") { 57 | settings.set_string ("php-path", "/usr/bin"); 58 | } else { 59 | settings.set_string ("php-path", php_path_entry.text); 60 | } 61 | 62 | this.destroy (); 63 | }); 64 | 65 | var button_box = new Gtk.ButtonBox (Gtk.Orientation.HORIZONTAL); 66 | button_box.set_layout (Gtk.ButtonBoxStyle.END); 67 | button_box.pack_start (close_button); 68 | button_box.pack_end (save_button); 69 | button_box.margin = 12; 70 | button_box.margin_bottom = 0; 71 | 72 | var general_grid = new Gtk.Grid (); 73 | 74 | general_grid.row_spacing = 6; 75 | general_grid.column_spacing = 12; 76 | general_grid.margin = 12; 77 | general_grid.attach (general_header, 0, 0, 2, 1); 78 | 79 | general_grid.attach (theme_editor_label, 0, 1, 1, 1); 80 | general_grid.attach (style_scheme, 1, 1, 2, 1); 81 | general_grid.attach (theme_application_label, 0, 2, 1, 1); 82 | general_grid.attach (dark_mode_switch, 1, 2, 2, 1); 83 | general_grid.attach (use_custom_font_label, 0, 3, 1, 1); 84 | general_grid.attach (use_custom_font, 1, 3, 1, 1); 85 | general_grid.attach (select_font, 2, 3, 1, 1); 86 | general_grid.attach (php_path_label, 0, 4, 1, 1); 87 | general_grid.attach (php_path_entry, 1, 5, 1, 1); 88 | general_grid.attach (restartNoteLabel, 1, 6, 1, 1); 89 | 90 | var main_grid = new Gtk.Grid (); 91 | main_grid.attach (general_grid, 0, 0, 1, 1); 92 | main_grid.attach (button_box, 0, 1, 1, 1); 93 | 94 | ((Gtk.Container) get_content_area ()).add (main_grid); 95 | this.show_all (); 96 | } 97 | 98 | private void populate_style_scheme () { 99 | string[] scheme_ids; 100 | var scheme_manager = new Gtk.SourceStyleSchemeManager (); 101 | scheme_ids = scheme_manager.get_scheme_ids (); 102 | 103 | foreach (string scheme_id in scheme_ids) { 104 | var scheme = scheme_manager.get_scheme (scheme_id); 105 | style_scheme.append (scheme.id, scheme.name); 106 | } 107 | } 108 | 109 | private void generate_dark_mode_button () { 110 | GLib.Settings settings = new GLib.Settings (Constants.APPLICATION_NAME); 111 | var gtk_settings = Gtk.Settings.get_default (); 112 | dark_mode_switch.primary_icon_tooltip_text = _("Light mode"); 113 | dark_mode_switch.secondary_icon_tooltip_text = _("Dark mode"); 114 | dark_mode_switch.valign = Gtk.Align.CENTER; 115 | dark_mode_switch.bind_property ("active", gtk_settings, "gtk_application_prefer_dark_theme"); 116 | settings.bind ("use-dark-theme", dark_mode_switch, "active", GLib.SettingsBindFlags.DEFAULT); 117 | } 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /debian/changelog: -------------------------------------------------------------------------------- 1 | com.github.bartzaalberg.php-tester (1.9.0) STABLE; urgency=low 2 | 3 | * Added dark mode 4 | * Added button shortcut labels 5 | * Fixed dialog sizes 6 | 7 | -- Bart Zaalberg Thu, 21 Mar 2019 08:03:00 +0200 8 | 9 | com.github.bartzaalberg.php-tester (1.8.2) STABLE; urgency=low 10 | 11 | * Added metadata French translation 12 | * Added provides tag for appdata 13 | 14 | -- Bart Zaalberg Sat, 02 Feb 2019 12:50:00 +0200 15 | 16 | com.github.bartzaalberg.php-tester (1.8.1) STABLE; urgency=low 17 | 18 | * Added metadata translation 19 | * Corrected a translation file name 20 | 21 | -- Bart Zaalberg Tue, 27 Jan 2019 11:58:00 +0200 22 | 23 | com.github.bartzaalberg.php-tester (1.8.0) STABLE; urgency=low 24 | 25 | * Added metadata translation 26 | 27 | -- Bart Zaalberg Tue, 26 Jan 2019 13:55:00 +0200 28 | 29 | com.github.bartzaalberg.php-tester (1.7.0) STABLE; urgency=low 30 | 31 | * Fixed single-instancing 32 | * Fixed about appcenter shortcut 33 | * Remember size, maximized, and position 34 | 35 | -- Bart Zaalberg Tue, 24 Jan 2019 17:13:00 +0200 36 | 37 | com.github.bartzaalberg.php-tester (1.6.3) STABLE; urgency=low 38 | 39 | * Fixed crash on saved php version is not installed 40 | 41 | -- Bart Zaalberg Thu, 22 Jan 2019 17:48:00 +0200 42 | 43 | com.github.bartzaalberg.php-tester (1.6.2) STABLE; urgency=low 44 | 45 | * Added French translation 46 | 47 | -- Bart Zaalberg Thu, 17 Jan 2019 14:07:00 +0200 48 | 49 | com.github.bartzaalberg.php-tester (1.6.1) STABLE; urgency=low 50 | 51 | * PHP can now be found if executable doesnt contain version 52 | * Fixed stuck in copy paste menu when no php is found 53 | 54 | -- Bart Zaalberg Fri, 11 Jan 2019 17:36:00 +0200 55 | 56 | com.github.bartzaalberg.php-tester (1.6.0) STABLE; urgency=low 57 | 58 | * Added ability to change the PHP path 59 | * Fixed a fatal error on startup when no PHP is found 60 | 61 | -- Bart Zaalberg Thu, 10 Jan 2019 22:31:00 +0200 62 | 63 | com.github.bartzaalberg.php-tester (1.5.6) STABLE; urgency=low 64 | 65 | * Migrated from Cmake to Meson 66 | 67 | -- Bart Zaalberg Sat, 22 Sep 2018 09:59:00 +0200 68 | 69 | com.github.bartzaalberg.php-tester (1.5.5) STABLE; urgency=low 70 | 71 | * Added Houston CI 72 | 73 | -- Bart Zaalberg Fri, 21 Sep 2018 11:51:00 +0200 74 | 75 | com.github.bartzaalberg.php-tester (1.5.4) UNSTABLE; urgency=low 76 | 77 | * Added Brazilian translation 78 | * Added shortcut for quitting 79 | * Changed text for when PHP is not found 80 | 81 | -- Bart Zaalberg Sun, 27 May 2018 10:54:00 +0200 82 | 83 | com.github.bartzaalberg.php-tester (1.5.3) UNSTABLE; urgency=low 84 | 85 | * Fixed a bug other applications than php would be shown 86 | * Refactored code 87 | 88 | -- Bart Zaalberg Thu, 08 Feb 2018 19:45:00 +0200 89 | 90 | com.github.bartzaalberg.php-tester (1.5.2) UNSTABLE; urgency=low 91 | 92 | * Fixed a bug where the wrong version would be used 93 | 94 | -- Bart Zaalberg Mon, 25 Jan 2018 17:42:00 +0200 95 | 96 | com.github.bartzaalberg.php-tester (1.5.1) UNSTABLE; urgency=low 97 | 98 | * Wrapping will now happen by CHAR so that those annoying scrollbars won't show up anymore 99 | * Updated alerts to granite5.0 100 | * Updated 'PHP not found' screen 101 | * Refactored lots of code 102 | 103 | -- Bart Zaalberg Mon, 29 Nov 2017 09:28:00 +0200 104 | 105 | com.github.bartzaalberg.php-tester (1.5.0) UNSTABLE; urgency=low 106 | 107 | * Added php version switching 108 | * Made source view scrollable 109 | 110 | -- Bart Zaalberg Fri, 10 Nov 2017 14:01:00 +0200 111 | 112 | com.github.bartzaalberg.php-tester (1.4.0) UNSTABLE; urgency=low 113 | 114 | * Added ability to change font and fontsize 115 | * Made the result better readable 116 | * Added about action 117 | 118 | -- Bart Zaalberg Fri, 03 Nov 2017 16:07:00 +0200 119 | 120 | com.github.bartzaalberg.php-tester (1.3.0) UNSTABLE; urgency=low 121 | 122 | * Added theme choosing 123 | * Added progress saving 124 | 125 | -- Bart Zaalberg Fri, 20 Oct 2017 13:12:00 +0200 126 | 127 | com.github.bartzaalberg.php-tester (1.2.1) UNSTABLE; urgency=low 128 | 129 | * Added dropdown menu's 130 | * Added copy output 131 | * Added tooltips for the buttons 132 | * refactored some code 133 | 134 | -- Bart Zaalberg Tue, 17 Oct 2017 16:01:00 +0200 135 | 136 | 137 | com.github.bartzaalberg.php-tester (1.2.0) UNSTABLE; urgency=low 138 | 139 | * Added icons instead of buttons 140 | * Added colour the headerbar 141 | * Added cheatsheet 142 | 143 | -- Bart Zaalberg Mon, 16 Oct 2017 10:36:00 +0200 144 | 145 | com.github.bartzaalberg.php-tester (1.1.4) UNSTABLE; urgency=low 146 | 147 | * Added run shortcut (ctrl + r) 148 | 149 | -- Bart Zaalberg Mon, 16 Oct 2017 10:36:00 +0200 150 | 151 | com.github.bartzaalberg.php-tester (1.1.3) UNSTABLE; urgency=low 152 | 153 | * Added a button to copy the text 154 | * Changed some button labels 155 | * Added more screenshots 156 | 157 | -- Bart Zaalberg Fri, 13 Oct 2017 12:02:00 +0200 158 | 159 | com.github.bartzaalberg.php-tester (1.1.2) UNSTABLE; urgency=low 160 | 161 | * Added travis support for the builds 162 | * Fixed a bug which would keep the application running in the background 163 | 164 | -- Bart Zaalberg Fri, 13 Oct 2017 08:45:00 +0200 165 | 166 | com.github.bartzaalberg.php-tester (1.1.1) UNSTABLE; urgency=low 167 | 168 | * Fixed phptest.php file creation 169 | * Fixed compiling error 170 | 171 | -- Bart Zaalberg Thu, 12 Oct 2017 09:15:00 +0200 172 | 173 | com.github.bartzaalberg.php-tester (1.1.0) UNSTABLE; urgency=low 174 | 175 | * Added syntax highlighting 176 | * Added line numbers 177 | * Updated the icon again 178 | 179 | -- Bart Zaalberg Wed, 11 Oct 2017 12:37:00 +0200 180 | 181 | com.github.bartzaalberg.php-tester (1.0.1) UNSTABLE; urgency=low 182 | 183 | * Updated icon 184 | 185 | -- Bart Zaalberg Sat, 07 Oct 2017 16:57:00 +0200 186 | 187 | com.github.bartzaalberg.php-tester (1.0.0) UNSTABLE; urgency=low 188 | 189 | * First release 190 | 191 | -- Bart Zaalberg Wed, 06 Oct 2017 17:07:00 +0200 192 | -------------------------------------------------------------------------------- /data/icons/16/com.github.bartzaalberg.php-tester.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/icons/24/com.github.bartzaalberg.php-tester.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/icons/64/com.github.bartzaalberg.php-tester.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/icons/32/com.github.bartzaalberg.php-tester.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/icons/128/com.github.bartzaalberg.php-tester.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/icons/48/com.github.bartzaalberg.php-tester.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/com.github.bartzaalberg.php-tester.appdata.xml.in: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.github.bartzaalberg.php-tester 4 | CC0 5 | GPL-3.0+ 6 | PHP Tester 7 | Test some PHP code! 8 | 9 |

A simple tool to test your PHP code.

10 |

Features:

11 |
    12 |
  • Code without having to start a whole project!
  • 13 |
  • Switch PHP versions on the fly!
  • 14 |
  • Copy your snippet with a simple click on a button!
  • 15 |
  • Continue where you left off last time
  • 16 |
  • Run your code with a simple shortcut! (ctrl + r)
  • 17 |
  • Choose a cool theme to code in
  • 18 |
19 |
20 | 21 | com.github.bartzaalberg.php-tester 22 | 23 | 24 | none 25 | none 26 | none 27 | none 28 | none 29 | none 30 | none 31 | none 32 | none 33 | none 34 | none 35 | none 36 | none 37 | none 38 | none 39 | none 40 | none 41 | none 42 | none 43 | none 44 | none 45 | none 46 | none 47 | none 48 | none 49 | none 50 | none 51 | 52 | 53 | 54 | 55 |

Dark mode, shortcut button tooltips

56 |
    57 |
  • Added dark mode
  • 58 |
  • Fixed dialog sizes
  • 59 |
  • Added shortcut button labels
  • 60 |
61 |
62 |
63 | 64 | 65 |

Added metadata French translation

66 |
    67 |
  • Added metadata French translation
  • 68 |
69 |
70 |
71 | 72 | 73 |

Added metadata translation

74 |
    75 |
  • Added metadata translation
  • 76 |
77 |
78 |
79 | 80 | 81 |

Added metadata translation

82 |
    83 |
  • Added metadata translation
  • 84 |
85 |
86 |
87 | 88 | 89 |

Remember size, maximized, and position

90 |
    91 |
  • Fixed single-instancing
  • 92 |
  • Fixed about appcenter shortcut
  • 93 |
  • Remember size, maximized, and position
  • 94 |
95 |
96 |
97 | 98 | 99 |

Fixed a crash

100 |
    101 |
  • Fixed crash on saved php version is not installed
  • 102 |
103 |
104 |
105 | 106 | 107 |

Added French translation

108 |
    109 |
  • The application is now available in French thanks to NathanBnm!
  • 110 |
111 |
112 |
113 | 114 | 115 |

Bug fixes, expanded php

116 |
    117 |
  • PHP can now be found if executable doesnt contain version
  • 118 |
  • Fixed stuck in copy paste menu when no php is found
  • 119 |
120 |
121 |
122 | 123 | 124 |

Added PHP path option

125 |
    126 |
  • You can now change the PHP path
  • 127 |
  • Fixed a fatal error on startup when no PHP is found
  • 128 |
129 |
130 |
131 | 132 | 133 |

Updated build system

134 |
    135 |
  • Migrated from Cmake to Meson
  • 136 |
137 |
138 |
139 | 140 | 141 |

Updated release for Juno

142 |
    143 |
  • Added Houston CI
  • 144 |
145 |
146 |
147 | 148 | 149 |

Added Brazilian translation and a new shortcut

150 |
    151 |
  • Added Brazilian translation
  • 152 |
  • Added shortcut for quitting
  • 153 |
  • Changed text for when PHP is not found
  • 154 |
155 |
156 |
157 | 158 | 159 |

Fixed bug where other applications than php where shown

160 |
    161 |
  • Fixed a bug other applications than php would be shown
  • 162 |
  • Refactored code
  • 163 |
164 |
165 |
166 | 167 | 168 |

Fixed version bug

169 |
    170 |
  • Fixed a bug where the wrong version would be used
  • 171 |
172 |
173 |
174 | 175 | 176 |

Wrapping will now happen correctly

177 |
    178 |
  • Wrapping will now happen by CHAR so that those annoying scrollbars won't show up anymore
  • 179 |
  • Updated alerts to granite5.0
  • 180 |
  • Updated 'PHP not found' screen
  • 181 |
  • Refactored lots of code
  • 182 |
183 |
184 |
185 | 186 | 187 |

PHP version switching

188 |
    189 |
  • Added php version switching
  • 190 |
  • Made source view scrollable
  • 191 |
192 |
193 |
194 | 195 | 196 |

font, fontSize and result improvements

197 |
    198 |
  • Added ability to change font and fontsize
  • 199 |
  • Made the result better readable
  • 200 |
  • Added about action
  • 201 |
202 |
203 |
204 | 205 | 206 |

1.3.0

207 |
    208 |
  • Added theme choosing
  • 209 |
  • Added progress saving
  • 210 |
211 |
212 |
213 | 214 | 215 |

1.2.1

216 |
    217 |
  • Added dropdown menu's
  • 218 |
  • Added copy output
  • 219 |
  • Added tooltips for the buttons
  • 220 |
  • refactored some code
  • 221 |
222 |
223 |
224 | 225 | 226 |

1.2.0

227 |
    228 |
  • Added travis support for the builds
  • 229 |
  • Fixed a bug which would keep the application running in the background
  • 230 |
231 |
232 |
233 | 234 | 235 |

1.1.4

236 |
    237 |
  • Added run shortcut (ctrl + r)
  • 238 |
239 |
240 |
241 | 242 | 243 |

1.1.3

244 |
    245 |
  • Added a button to copy the text
  • 246 |
  • Changed some button labels
  • 247 |
  • Added more screenshots
  • 248 |
249 |
250 |
251 | 252 | 253 |

1.1.2

254 |
    255 |
  • Added travis support for the builds
  • 256 |
  • Fixed a bug which would keep the application running in the background
  • 257 |
258 |
259 |
260 | 261 | 262 |

1.1.1

263 |
    264 |
  • Fixed phptest.php file creation
  • 265 |
  • Fixed compiling error
  • 266 |
267 |
268 |
269 | 270 | 271 |

1.1.0

272 |
    273 |
  • Added syntax highlighting
  • 274 |
  • Added line numbers
  • 275 |
  • Updated the icon again
  • 276 |
277 |
278 |
279 | 280 | 281 |

1.0.1

282 |
    283 |
  • Updated icon
  • 284 |
285 |
286 |
287 | 288 | 289 |

1.0.0

290 |
    291 |
  • First Release
  • 292 |
293 |
294 |
295 |
296 | 297 | 298 | https://raw.githubusercontent.com/bartzaalberg/php-tester/master/screenshot.png 299 | 300 | 301 | https://raw.githubusercontent.com/bartzaalberg/php-tester/master/screenshot2.png 302 | 303 | 304 | Bart Zaalberg 305 | 306 | rgb(100, 87, 133) 307 | #FFF 308 | 309 | https://github.com/bartzaalberg/php-tester 310 | https://github.com/bartzaalberg/php-tester/issues 311 | https://github.com/bartzaalberg/php-tester/issues 312 |
313 | --------------------------------------------------------------------------------