diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2020-07-11 16:47:00 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2020-07-11 16:47:00 -0700 |
commit | 3625160acc1715fc380f58ec3c4248485bed2370 (patch) | |
tree | dc95a32d81daac298cef69879a639029797fb762 /qt-recordmydesktop/src/rmdSimple.py | |
parent | cfcca8681b88a171fb2cdbb83daa5f22bbedb6b8 (diff) |
*: drop {gtk,qt}-recordmydesktop subdirs
This restores the recordmydesktop/ subdir as root from the mirror I
cloned by fork from.
I have no particular interest in the gtk/qt frontends and it doesn't
appear they were part of a single tree in the past. But I will
probably preserve backwards compatibility of the cli so they can
continue to work with this fork installed.
Diffstat (limited to 'qt-recordmydesktop/src/rmdSimple.py')
-rw-r--r-- | qt-recordmydesktop/src/rmdSimple.py | 497 |
1 files changed, 0 insertions, 497 deletions
diff --git a/qt-recordmydesktop/src/rmdSimple.py b/qt-recordmydesktop/src/rmdSimple.py deleted file mode 100644 index 1dee275..0000000 --- a/qt-recordmydesktop/src/rmdSimple.py +++ /dev/null @@ -1,497 +0,0 @@ -#/****************************************************************************** -#* qt-recordMyDesktop * -#******************************************************************************* -#* * -#* Copyright (C) 2007, 2008 John Varouhakis * -#* * -#* * -#* This program is free software: you can redistribute it and/or modify * -#* it under the terms of the GNU General Public License as published by * -#* the Free Software Foundation, either version 3 of the License, or * -#* (at your option) any later version. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU General Public License for more details. * -#* * -#* You should have received a copy of the GNU General Public License * -#* along with this program. If not, see <http://www.gnu.org/licenses/>. * -#* * -#* * -#* For further information contact me at johnvarouhakis@gmail.com * -#******************************************************************************/ - - -from PyQt4 import QtGui,QtCore -import locale, gettext -import rmdConfig -def _(s): - return QtCore.QString.fromUtf8(gettext.gettext(s)) -def htmlize(s): - return "<html><body>"+s.replace("\n","<br>")+"</html></body>" -gettext.textdomain('qt-recordMyDesktop') -gettext.bindtextdomain('qt-recordMyDesktop',rmdConfig.locale_install_dir) -import os,sys - -from rmdTrayIcon import * -import rmdPrefsWidget as pW -import rmdSelectThumb as sT -from rmdStrings import * - -class simpleWidget(object): - hidden=[0] - - options=None - optionsOpen=[0] - def __subWidgets__(self): - self.labelbox=QtGui.QVBoxLayout() - - self.NBox=QtGui.QHBoxLayout() - self.NEBox=QtGui.QVBoxLayout() - self.NEVQBox=QtGui.QHBoxLayout() - self.NESQBox=QtGui.QHBoxLayout() - self.NETABox=QtGui.QVBoxLayout() - self.NWBox=QtGui.QVBoxLayout() - - - - self.NBox.insertLayout(-1,self.NWBox) - self.NBox.insertSpacing(-1,20) - self.NBox.insertLayout(-1,self.NEBox) - self.NEBox.insertLayout(-1,self.NEVQBox) - self.NEBox.insertLayout(-1,self.NESQBox) - self.NEBox.insertSpacing(-1,10) - self.NEBox.insertLayout(-1,self.NETABox) - - self.SBox=QtGui.QHBoxLayout() - self.SEBox=QtGui.QHBoxLayout() - self.SWBox=QtGui.QHBoxLayout() - self.SBox.insertLayout(-1,self.SWBox) - self.SBox.insertStretch(-1,0) - self.SBox.insertLayout(-1,self.SEBox) - - self.labelbox.insertLayout(-1,self.NBox) - self.labelbox.insertLayout(-1,self.SBox) - - self.image=sT.QtThumbSelector(self.window,self,self.values[5],self.hidden) - - self.NWBox.insertWidget(-1,self.image) - self.NWBox.setGeometry(QtCore.QRect(0,0,self.image.width(),self.image.height())) - #quality - self.v_quality=QtGui.QSlider(self.window) - self.v_quality.setMaximum(100) - self.v_quality.setMinimum(0) - self.v_quality.setTracking(True) - self.v_quality.setValue(int(round((float(self.values[10])*100.0)/63.0))) - self.v_quality.setOrientation(QtCore.Qt.Horizontal) - - - self.s_button= QtGui.QCheckBox(self.window) - if self.values[2]: - self.s_button.setCheckState(QtCore.Qt.Checked) - else: - self.s_button.setCheckState(QtCore.Qt.Unchecked) - self.s_quality=QtGui.QSlider(self.window) - self.s_quality.setMaximum(100) - self.s_quality.setMinimum(0) - self.s_quality.setTracking(True) - self.s_quality.setValue(int(round(float(self.values[11])*10.0))) - self.s_quality.setOrientation(QtCore.Qt.Horizontal) - self.s_quality.setEnabled(self.values[2]) - - self.v_label=QtGui.QLabel(" "+smplLabelStrings[0],self.window) - self.s_label=QtGui.QLabel(smplLabelStrings[1],self.window) - - self.advanced_button=QtGui.QPushButton(smplButtonStrings[0],self.window) - self.tipLabel=QtGui.QLabel(smplTipLabelStrings[0],self.window) - - self.NEVQBox.insertWidget(-1,self.v_label) - self.NEVQBox.insertWidget(-1,self.v_quality) - self.NESQBox.insertWidget(-1,self.s_button) - self.NESQBox.insertWidget(-1,self.s_label) - self.NESQBox.insertWidget(-1,self.s_quality) - self.NETABox.insertWidget(-1,self.advanced_button) - self.NETABox.insertWidget(-1,self.tipLabel) - style=QtGui.QApplication.style() - icon_rec_pxm=QtGui.QPixmap(os.path.join(rmdConfig.pixmapdir,"media-record.svg")) - - self.win_button=QtGui.QPushButton(smplButtonStrings[1],self.window) - self.start_button=QtGui.QPushButton(QtGui.QIcon(icon_rec_pxm),smplStrings['Record'],self.window) - self.file_button=QtGui.QPushButton(QtGui.QIcon(style.standardPixmap(QtGui.QStyle.SP_DialogSaveButton)),smplStrings['SaveAs'],self.window) - self.quit_button=QtGui.QPushButton(QtGui.QIcon(style.standardPixmap(QtGui.QStyle.SP_DialogCloseButton)),smplStrings['Quit'],self.window) - self.SWBox.insertWidget(-1,self.win_button) - self.SWBox.insertWidget(-1,self.start_button) - self.SEBox.insertWidget(-1,self.file_button) - self.SEBox.insertWidget(-1,self.quit_button) - - - self.win_button.show() - self.start_button.show() - self.file_button.show() - self.quit_button.show() - - self.v_quality.show() - self.s_button.show() - self.s_quality.show() - self.v_label.show() - self.s_label.show() - self.tipLabel.show() - self.advanced_button.show() - - self.window.setLayout(self.labelbox) - def __tooltips__(self): - self.win_button.setToolTip(htmlize(smplTooltipLabels[0])) - self.start_button.setToolTip(htmlize(smplTooltipLabels[1])) - self.file_button.setToolTip(htmlize(smplTooltipLabels[2])) - self.quit_button.setToolTip(htmlize(smplTooltipLabels[3])) - self.v_quality.setToolTip(htmlize(smplTooltipLabels[4])) - self.v_label.setToolTip(htmlize(smplTooltipLabels[4])) - self.s_button.setToolTip(htmlize(smplTooltipLabels[5])) - self.s_quality.setToolTip(htmlize(smplTooltipLabels[6])) - self.s_label.setToolTip(htmlize(smplTooltipLabels[6])) - self.advanced_button.setToolTip(htmlize(smplTooltipLabels[7])) - - def __exit__(self,Event=None): - if self.exited==0: - self.update() - self.exited=1 - self.optionsOpen[0]=0 - if self.save_prefs()==False: - print "Warning!!!Couldn't save preferences" - sys.exit() - def hide(self,Event=None): - if self.image.realFrame != None and self.values[25]==0: - self.image.realFrame.window.hide() - self.window.hide() - self.hidden[0]=1 - def show(self,Event=None): - if self.image.realFrame != None and self.values[25]==0: - self.image.realFrame.window.show() - self.window.show() - self.hidden[0]=0 - def __swap_visibility__(self,event=None): - if event.type()==QtCore.QEvent.WindowStateChange: - if self.window.windowState() == QtCore.Qt.WindowMinimized: - self.hidden[0]=self.minimized=1 - else: - self.hidden[0]=self.minimized=0 - - def advanced(self,button=None): - if self.optionsOpen[0] ==0: - self.optionsOpen[0]=1 - self.options=pW.prefsWidget(self.values,self.optionsOpen) - else: - if self.options != None: - self.options.window.close() - self.optionsOpen[0]=0 - def close_advanced(self): - if self.options != None: - if self.optionsOpen[0] ==1: - self.options.window.close() - self.optionsOpen[0]=0 - - def __fileSelect__(self,Event=None): - tfilename=QtGui.QFileDialog.getSaveFileName(self.window,'',self.values[4],"*.ogv *.ogv.*;; *.ogg *.ogg.*;; *.*") - if tfilename!= '': - self.values[4]=tfilename - def __select_window__(self,button=None): - xwininfo_com=['xwininfo','-frame'] - if self.values[21]==1: - xwininfo_com=['xwininfo'] - (stdin,stdout,stderr)=os.popen3(xwininfo_com,'t') - wid=stdout.readlines() - stdin.close() - stdout.close() - stderr.close() - x=y=width=height=None - for i in wid: - if i.lstrip().startswith('Absolute upper-left X:'): - x=int(i.split(' ')[len(i.split(' '))-1]) - elif i.lstrip().startswith('Absolute upper-left Y'): - y=int(i.split(' ')[len(i.split(' '))-1]) - elif i.lstrip().startswith('Width:'): - width=int(i.split(' ')[len(i.split(' '))-1]) - elif i.lstrip().startswith('Height:'): - height=int(i.split(' ')[len(i.split(' '))-1]) - if x<0: - width+=x - x=0 - if y<0: - height+=y - y=0 - if width+x>self.wwidth: width=self.wwidth-x - if height+y>self.wheight: height=self.wheight-y - self.values[5][0]=x - self.values[5][1]=y - self.values[5][2]=width+x - self.values[5][3]=height+y - self.image.x1=-1 - self.image.update() - - def __makeCons__(self): - self.advanced_button.connect(self.advanced_button,QtCore.SIGNAL("clicked()"),self.advanced) - self.file_button.connect(self.file_button,QtCore.SIGNAL("clicked()"),self.__fileSelect__) - self.quit_button.connect(self.quit_button,QtCore.SIGNAL("clicked()"),self.__exit__) - self.start_button.connect(self.start_button,QtCore.SIGNAL("clicked()"),self.trayIcon.record_ext) - self.s_button.connect(self.s_button,QtCore.SIGNAL("clicked()"),self.__sound_check__) - self.win_button.connect(self.win_button,QtCore.SIGNAL("clicked()"),self.__select_window__) - def __register_shortcuts__(self): - exit_sh=QtGui.QShortcut(QtGui.QKeySequence("Ctrl+q"),self.window) - self.window.connect(exit_sh, - QtCore.SIGNAL("activated()"), - self.window, - QtCore.SLOT("close()")) - rec_sh=QtGui.QShortcut(QtGui.QKeySequence("Ctrl+r"),self.window) - self.window.connect(rec_sh, - QtCore.SIGNAL("activated()"), - self.trayIcon.record_ext) - adv_sh=QtGui.QShortcut(QtGui.QKeySequence("Ctrl+p"),self.window) - self.window.connect(adv_sh, - QtCore.SIGNAL("activated()"), - self.advanced) - save_sh=QtGui.QShortcut(QtGui.QKeySequence("Ctrl+s"),self.window) - self.window.connect(save_sh, - QtCore.SIGNAL("activated()"), - self.__fileSelect__) - hide_sh=QtGui.QShortcut(QtGui.QKeySequence("Ctrl+h"),self.window) - self.window.connect(hide_sh, - QtCore.SIGNAL("activated()"), - self.trayIcon.tray_popup._prefs_widget) - esc_sh=QtGui.QShortcut(QtGui.QKeySequence("Esc"),self.window) - self.window.connect(esc_sh, - QtCore.SIGNAL("activated()"), - self.trayIcon.tray_popup._prefs_widget) - - - def __sound_check__(self,widget=None): - self.s_quality.setEnabled(self.values[2]) - if self.s_button.checkState()==QtCore.Qt.Checked: - self.values[2]=True - else: - self.values[2]=False - - def update(self) : - self.values[10]=int(round((float(self.v_quality.value())*63.0)/100.0)) - self.values[11]=int(round(float(self.s_quality.value())/10.0)) - if self.values[10]>63: - self.values[10]=63 - if self.values[11]>10: - self.values[11]=10 - def load_prefs(self): - path=os.path.join(os.getenv("HOME"),".qt-recordmydesktop") - try: - self.values=[] - savefile=open(path,"r") - #the header - savefile.readline() - savefile.readline() - #the options,each has a coment above - for i in range(2): - savefile.readline() - self.values.append(int(savefile.readline())) - savefile.readline() - self.values.append(int(savefile.readline())==1) - savefile.readline() - self.values.append(int(savefile.readline())) - savefile.readline() - self.values.append(savefile.readline().replace("\n","")) - #recording area is not saved - self.values.append([]) - for i in range(3): - savefile.readline() - self.values.append(int(savefile.readline())) - savefile.readline() - self.values.append(savefile.readline().replace("\n","")) - for i in range(2): - savefile.readline() - self.values.append(int(savefile.readline())) - savefile.readline() - self.values.append(savefile.readline().replace("\n","")) - for i in range(2): - savefile.readline() - self.values.append(int(savefile.readline())) - savefile.readline() - areastring=savefile.readline() - try: - as1=areastring.replace('\n','').split(',') - for i in range(4): - self.values[5].append(int(as1[i])) - except: - self.values[5]=[] - for i in rmdConfig.default_values[5]: - self.values[5].append(i) - #loaded further bellow - self.values.append(0) - savefile.readline() - self.values.append(int(savefile.readline())) - savefile.readline() - self.values.append(savefile.readline().replace("\n","")) - for i in range(2): - savefile.readline() - self.values.append(int(savefile.readline())) - savefile.readline() - self.values.append(int(savefile.readline())==1) - #new options for 0.3.3 - p=savefile.readline() - if p=='': - self.values.append(rmdConfig.default_values[21]) - else: - self.values.append(int(savefile.readline())) - p=savefile.readline() - if p=='': - self.values.append(rmdConfig.default_values[22]) - self.values.append(rmdConfig.default_values[23]) - else: - self.values.append(int(savefile.readline())==1) - p=savefile.readline() - if p=='': - self.values.append(rmdConfig.default_values[23]) - else: - ports_t=savefile.readline().split(' ') - #get rid of the trailing \n - ports_t.pop() - self.values.append(ports_t) - p=savefile.readline() - if p=='': - self.values.append(rmdConfig.default_values[24]) - else: - self.values.append(int(savefile.readline())) - p=savefile.readline() - if p=='': - self.values.append(rmdConfig.default_values[25]) - else: - self.values.append(int(savefile.readline())) - p=savefile.readline() - if p=='': - self.values.append(rmdConfig.default_values[26]) - else: - self.values.append(savefile.readline().replace("\n","")) - p=savefile.readline() - if p=='': - self.values[15]=rmdConfig.default_values[15] - else: - t_followmouse=int(savefile.readline()) - if t_followmouse>1: t_followmouse=1 - self.values[15]=t_followmouse - return True - except: - return False - def save_prefs(self): - try: - path=os.path.join(os.getenv("HOME"),".qt-recordmydesktop") - savefile=open(path,"w") - savefile.write("#Order and overall number of lines must be preserved\n") - savefile.write("#For this file to be read correctly\n") - savefile.write("#Framerate\n") - savefile.write("%d\n"%self.values[0]) - savefile.write("#Cursor(0 xfixes,1 white,2 black,3 none)\n") - savefile.write("%d\n"%self.values[1]) - savefile.write("#Sound,0 disabled 1 enabled\n") - savefile.write("%d\n"%self.values[2]) - savefile.write("#Full shots,1 disabled 0 enabled\n") - savefile.write("%d\n"%self.values[3]) - savefile.write("#Filename\n") - savefile.write("%s\n"%self.values[4]) - savefile.write("#Delay,seconds\n") - savefile.write("%d\n"%self.values[6]) - savefile.write("#Number of channels\n") - savefile.write("%d\n"%self.values[7]) - savefile.write("#Frequency\n") - savefile.write("%d\n"%self.values[8]) - savefile.write("#Sound-device\n") - savefile.write("%s\n"%self.values[9]) - savefile.write("#Video quality(0-63)\n") - savefile.write("%d\n"%self.values[10]) - savefile.write("#Audio quality(0-10)\n") - savefile.write("%d\n"%self.values[11]) - savefile.write("#Display\n") - savefile.write("%s\n"%self.values[12]) - savefile.write("#Shared memory,1 disabled 0 enabled\n") - savefile.write("%d\n"%self.values[13]) - savefile.write("#Reset capture area,1 disabled 0 enabled\n") - savefile.write("%d\n"%self.values[14]) - savefile.write("#Recording area\n") - if(self.values[14]): - savefile.write("%d,%d,%d,%d\n"%(self.values[5][0],self.values[5][1],self.values[5][2],self.values[5][3])) - else: - savefile.write("%d,%d,%d,%d\n"%(rmdConfig.default_values[5][0],rmdConfig.default_values[5][1],rmdConfig.default_values[5][2],rmdConfig.default_values[5][3])) - savefile.write("#Quick subsampling,1 disabled 0 enabled\n") - savefile.write("%d\n"%self.values[16]) - savefile.write("#Working directory(temporary files)\n") - savefile.write("%s\n"%self.values[17]) - savefile.write("#On the fly encoding,1 disabled 0 enabled\n") - savefile.write("%d\n"%self.values[18]) - savefile.write("#Zero compression,1 disabled 0 enabled\n") - savefile.write("%d\n"%self.values[19]) - savefile.write("#overwrite existing files,0 disabled 1 enabled\n") - savefile.write("%d\n"%self.values[20]) - savefile.write("#Include window decorations,1 disabled 0 enabled\n") - savefile.write("%d\n"%self.values[21]) - savefile.write("#Use jack\n") - savefile.write("%d\n"%self.values[22]) - savefile.write("#last used jack ports\n") - for i in self.values[23]: - savefile.write("%s "%i) - savefile.write("\n") - savefile.write("#Tooltips,1 disabled 0 enabled\n") - savefile.write("%d\n"%self.values[24]) - savefile.write("#draw an on-screen frame, surrounding the capture area\n") - savefile.write("%d\n"%self.values[25]) - savefile.write("#Extra options\n") - savefile.write("%s\n"%self.values[26]) - savefile.write("#Follow mouse,1 disabled 0 enabled\n") - savefile.write("%d\n"%self.values[15]) - savefile.flush() - savefile.close() - return True - except: - return False - - def __init__(self): - if self.load_prefs()==False: - self.values= rmdConfig.default_values - self.optionsOpen=[0] - self.minimized=0 - self.exited=0 - self.window = QtGui.QWidget() - - self.window.closeEvent= self.__exit__ - self.window.changeEvent=self.__swap_visibility__ - self.window.setWindowTitle("recordMyDesktop") - - siz=QtGui.QApplication.desktop().screenGeometry() - (self.wwidth, self.wheight)=(siz.width(),siz.height()) - self.factor=1; - twidth=self.wwidth - while twidth>320 or self.factor<4: - twidth/=2 - self.factor*=2 - - self.__subWidgets__() - - self.trayIcon=trayIcon(self) - self.__makeCons__() - self.__register_shortcuts__() - - if self.values[24]==0: - self.__tooltips__() - - self.window.show() - - - -if __name__ == "__main__": - import sys - - app=QtGui.QApplication(sys.argv) - w = simpleWidget() - app.exec_() - - - - - - - - |