forked from openlp/openlp
r1369
This commit is contained in:
commit
9f23228f35
@ -4,11 +4,11 @@ Dual Monitor Setup
|
|||||||
|
|
||||||
The first step in getting OpenLP working on your system is to setup your
|
The first step in getting OpenLP working on your system is to setup your
|
||||||
computer properly for dual monitors. This is not very difficult, but the steps
|
computer properly for dual monitors. This is not very difficult, but the steps
|
||||||
do vary depending on operating system.
|
will vary depending on operating system.
|
||||||
|
|
||||||
Most modern computers do have the ability for dual monitors. To be certain
|
Most modern computers have the ability for dual monitors. To be certain,
|
||||||
check your computer's documentation. A typical desktop computer capable of dual
|
check your computer's documentation. A typical desktop computer capable of dual
|
||||||
monitors will have two of, or a combination of the two connectors below.
|
monitors will have two of, or a combination of the two, connectors below.
|
||||||
|
|
||||||
**VGA**
|
**VGA**
|
||||||
|
|
||||||
@ -18,8 +18,8 @@ monitors will have two of, or a combination of the two connectors below.
|
|||||||
|
|
||||||
.. image:: pics/dvi.png
|
.. image:: pics/dvi.png
|
||||||
|
|
||||||
A laptop computer setup only varies slightly, generally you will need only one
|
A laptop computer setup only varies slightly. Generally you will need only one
|
||||||
of outputs pictured above since your laptops screen serves as one of the
|
of the outputs pictured above since your laptop screen serves as one of the
|
||||||
monitors. Sometimes with older laptops a key stroke generally involving the
|
monitors. Sometimes with older laptops a key stroke generally involving the
|
||||||
:kbd:`Fn` key and another key is required to enable the second monitor on
|
:kbd:`Fn` key and another key is required to enable the second monitor on
|
||||||
laptops.
|
laptops.
|
||||||
@ -27,9 +27,10 @@ laptops.
|
|||||||
Some computers also incorporate the use of :abbr:`S-Video (Separate Video)` or
|
Some computers also incorporate the use of :abbr:`S-Video (Separate Video)` or
|
||||||
:abbr:`HDMI (High-Definition Multimedia Interface)` connections.
|
:abbr:`HDMI (High-Definition Multimedia Interface)` connections.
|
||||||
|
|
||||||
A typical OpenLP set up consist of your normal single monitor setup, with your
|
A typical OpenLP setup consist of your normal single monitor, with your
|
||||||
projector setup as the second monitor. With the option of extending your
|
projector hooked up to your computer as the second monitor. With the option of
|
||||||
desktop across the second monitor, or your operating system's equivalent.
|
extending your desktop across the second monitor, or your operating system's
|
||||||
|
equivalent.
|
||||||
|
|
||||||
Microsoft Windows
|
Microsoft Windows
|
||||||
-----------------
|
-----------------
|
||||||
@ -46,8 +47,8 @@ press :kbd:`Windows+P`.
|
|||||||
|
|
||||||
The more traditional way is also fairly straight forward. Go to
|
The more traditional way is also fairly straight forward. Go to
|
||||||
:guilabel:`Control Panel` and click on :guilabel:`Display`. This will open up
|
:guilabel:`Control Panel` and click on :guilabel:`Display`. This will open up
|
||||||
the :guilabel:`Display` dialog. You can also bypass this step by right click on
|
the :guilabel:`Display` dialog. You may also bypass this step by a right click
|
||||||
a blank area on your desktop and selecting :guilabel:`Resolution`.
|
on a blank area on your desktop and selecting :guilabel:`Resolution`.
|
||||||
|
|
||||||
.. image:: pics/winsevendisplay.png
|
.. image:: pics/winsevendisplay.png
|
||||||
|
|
||||||
@ -66,7 +67,7 @@ a blank place on the desktop and click :guilabel:`Personalization`.
|
|||||||
.. image:: pics/vistapersonalize.png
|
.. image:: pics/vistapersonalize.png
|
||||||
|
|
||||||
From the :guilabel:`Personalization` window click on :guilabel:`Display
|
From the :guilabel:`Personalization` window click on :guilabel:`Display
|
||||||
Settings`. Then enable the montior that represents your projector and make sure
|
Settings`. Click on the montior that represents your projector and make sure
|
||||||
you have checked :guilabel:`Extend the desktop onto this monitor`.
|
you have checked :guilabel:`Extend the desktop onto this monitor`.
|
||||||
|
|
||||||
.. image:: pics/vistadisplaysettings.png
|
.. image:: pics/vistadisplaysettings.png
|
||||||
@ -77,7 +78,7 @@ Windows XP
|
|||||||
From :guilabel:`Control Panel` select :guilabel:`Display`, or right click on a
|
From :guilabel:`Control Panel` select :guilabel:`Display`, or right click on a
|
||||||
blank area of the desktop and select :guilabel:`Properties`. From the
|
blank area of the desktop and select :guilabel:`Properties`. From the
|
||||||
:guilabel:`Display Properties` window click on the :guilabel:`Settings` tab.
|
:guilabel:`Display Properties` window click on the :guilabel:`Settings` tab.
|
||||||
Then click on the monitor that represents your projector and make sure you have
|
Click on the monitor that represents your projector and make sure you have
|
||||||
checked :guilabel:`Extend my Windows desktop onto this monitor`.
|
checked :guilabel:`Extend my Windows desktop onto this monitor`.
|
||||||
|
|
||||||
.. image:: pics/xpdisplaysettings.png
|
.. image:: pics/xpdisplaysettings.png
|
||||||
@ -87,7 +88,7 @@ Linux
|
|||||||
|
|
||||||
Due to the vast varieties of hardware, distributions, desktops, and drivers
|
Due to the vast varieties of hardware, distributions, desktops, and drivers
|
||||||
this is not an exhaustive guide to dual monitor setup on Linux. This guide
|
this is not an exhaustive guide to dual monitor setup on Linux. This guide
|
||||||
assumes that you have properly set up any proprietary drivers if needed. You
|
assumes you have properly set up any proprietary drivers if needed. You
|
||||||
should seek out your distributions documentation if this general guide does not
|
should seek out your distributions documentation if this general guide does not
|
||||||
work.
|
work.
|
||||||
|
|
||||||
@ -123,7 +124,8 @@ Linux Systems Using nVidia Drivers
|
|||||||
|
|
||||||
This guide is for users of the proprietary nVidia driver on Linux Distributions.
|
This guide is for users of the proprietary nVidia driver on Linux Distributions.
|
||||||
It is assumed that you have properly setup your drivers according to your
|
It is assumed that you have properly setup your drivers according to your
|
||||||
distribution's documentation, and you have a working ``xorg.conf`` file in place.
|
distribution's documentation, and you have a working ``xorg.conf`` file in
|
||||||
|
place.
|
||||||
|
|
||||||
If you wish to make the changes permanent in setting up your system for dual
|
If you wish to make the changes permanent in setting up your system for dual
|
||||||
monitors it will be necessary to modify your ``xorg.conf`` file. It is always a
|
monitors it will be necessary to modify your ``xorg.conf`` file. It is always a
|
||||||
@ -166,7 +168,7 @@ After clicking :guilabel:`Configure`, select :guilabel:`TwinView`. Then click
|
|||||||
|
|
||||||
.. image:: pics/twinview.png
|
.. image:: pics/twinview.png
|
||||||
|
|
||||||
Then click :guilabel:`Apply` and if you are happy with the way things look click
|
Click :guilabel:`Apply` and if you are happy with the way things look click
|
||||||
:guilabel:`Keep` to keep your new settings. Don't worry if all goes wrong the
|
:guilabel:`Keep` to keep your new settings. Don't worry if all goes wrong the
|
||||||
settings will return back to the previous settings in 15 seconds without any
|
settings will return back to the previous settings in 15 seconds without any
|
||||||
action. nVidia Settings should take care of selecting your optimum resolution
|
action. nVidia Settings should take care of selecting your optimum resolution
|
||||||
@ -175,6 +177,6 @@ on :guilabel:`Save to X Configuration File`.
|
|||||||
|
|
||||||
.. image:: pics/xorgwrite.png
|
.. image:: pics/xorgwrite.png
|
||||||
|
|
||||||
Then click :guilabel:`Save` and you should be set. You may want to restart X or
|
Click :guilabel:`Save` and you should be set. You may want to restart X or
|
||||||
your machine just to make sure all the settings carry over the next time you log
|
your machine just to make sure all the settings carry over the next time you log
|
||||||
in.
|
in.
|
||||||
|
@ -18,7 +18,7 @@ The Main Window contains all the tools and plugins that make OpenLP function
|
|||||||
Media Manager
|
Media Manager
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
The Media Manager contains a number of tabs that plugins supply to OpenLP.
|
The Media Manager contains a number of tabs the plugins supply to OpenLP.
|
||||||
Each tab in the Media Manager is called a **Media Item**
|
Each tab in the Media Manager is called a **Media Item**
|
||||||
|
|
||||||
.. image:: pics/mediamanager.png
|
.. image:: pics/mediamanager.png
|
||||||
@ -36,20 +36,20 @@ with them.
|
|||||||
Service File
|
Service File
|
||||||
------------
|
------------
|
||||||
|
|
||||||
A service file, is the file that is created when you save your work on OpenLP.
|
A service file is the file that is created when you save your service in OpenLP.
|
||||||
The service file consist of **Service Items**
|
The service file consist of **Service Items**
|
||||||
|
|
||||||
Service Item
|
Service Item
|
||||||
------------
|
------------
|
||||||
|
|
||||||
A service item are the **media items** that are in the **service manager**
|
Service items are the **media items** that are in the **service manager**
|
||||||
|
|
||||||
Service Manger
|
Service Manger
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
The service manager contains the media items in your service file. This is the
|
The service manager contains the media items in your service file. This is the
|
||||||
area from which your media items go live, and you can also save, open, and edit
|
area where your media items go live. You can also save, open, and edit
|
||||||
services files.
|
services files from here.
|
||||||
|
|
||||||
.. image:: pics/servicemanager.png
|
.. image:: pics/servicemanager.png
|
||||||
|
|
||||||
@ -65,6 +65,6 @@ Theme Manager
|
|||||||
-------------
|
-------------
|
||||||
|
|
||||||
The theme manager is where themes are created and edited. Themes are the text
|
The theme manager is where themes are created and edited. Themes are the text
|
||||||
styles backgrounds that you use to personalize your services.
|
styles and backgrounds that you use to personalize your services.
|
||||||
|
|
||||||
.. image:: pics/thememanager.png
|
.. image:: pics/thememanager.png
|
||||||
|
@ -16,4 +16,3 @@ Contents:
|
|||||||
dualmonitors
|
dualmonitors
|
||||||
mediamanager
|
mediamanager
|
||||||
songs
|
songs
|
||||||
|
|
||||||
|
@ -8,26 +8,26 @@ converters provided to get data from other formats into OpenLP.
|
|||||||
Song Importer
|
Song Importer
|
||||||
=============
|
=============
|
||||||
|
|
||||||
If you are using an earlier version of OpenLP or come from another software
|
If you are using an earlier version of OpenLP or, come from another software
|
||||||
package, you may be able to convert your existing database to work in OpenLP
|
package, you may be able to convert your existing database to work in OpenLP
|
||||||
2.0. To access the Song Importer :menuselection:`File --> Import --> Song`.
|
2.0. To access the Song Importer click :menuselection:`File --> Import --> Song`.
|
||||||
You will then see the Song Importer window, then click :guilabel:`Next`.
|
You will see the Song Importer window, then click :guilabel:`Next`.
|
||||||
|
|
||||||
.. image:: pics/songimporter.png
|
.. image:: pics/songimporter.png
|
||||||
|
|
||||||
After choosing :guilabel:`Next` you can then select from the various types of
|
After choosing :guilabel:`Next` you can select from the various types of
|
||||||
software that OpenLP will convert songs from.
|
software that OpenLP will convert songs from.
|
||||||
|
|
||||||
.. image:: pics/songimporterchoices.png
|
.. image:: pics/songimporterchoices.png
|
||||||
|
|
||||||
Then click on the file folder icon to choose the file of the song database you
|
Click on the file folder icon to choose the file of the song database you
|
||||||
want to import. See the following sections for information on the different
|
want to import. See the following sections for information on the different
|
||||||
formats that OpenLP will import.
|
formats that OpenLP will import.
|
||||||
|
|
||||||
Importing from OpenLP Version 1
|
Importing from OpenLP Version 1
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
Converting from OpenLP Version 1 is a pretty simple process. You will first
|
Converting from OpenLP Version 1 is a simple process. First you will
|
||||||
need to locate your version 1 database file.
|
need to locate your version 1 database file.
|
||||||
|
|
||||||
Windows XP::
|
Windows XP::
|
||||||
@ -38,33 +38,34 @@ Windows Vista / Windows 7::
|
|||||||
|
|
||||||
C:\ProgramData\openlp.org\Data\songs.olp
|
C:\ProgramData\openlp.org\Data\songs.olp
|
||||||
|
|
||||||
After clicking :guilabel:`Next` your conversion should be complete.
|
After clicking :guilabel:`Next` your conversion will be complete.
|
||||||
|
|
||||||
.. image:: pics/finishedimport.png
|
.. image:: pics/finishedimport.png
|
||||||
|
|
||||||
Then press :guilabel:`Finish` and you should now be ready to use your OpenLP
|
Press :guilabel:`Finish` and you will now be ready to use your OpenLP
|
||||||
version one songs.
|
version 1 songs.
|
||||||
|
|
||||||
Importing from OpenSong
|
Importing from OpenSong
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
Converting from OpenSong you will need to locate your songs database. In the
|
Converting from OpenSong, you will need to locate your songs database. In the
|
||||||
later versions of OpenSong you are asked to define the location of this. The
|
later versions of OpenSong you are asked to define the location of this. The
|
||||||
songs will be located in a folder named :guilabel:`Songs`. This folder should
|
songs will be located in a folder named :guilabel:`Songs`. This folder will
|
||||||
contain files with all your songs in them without a file extension. (file.xxx).
|
contain files with all your songs in them, without a file extension. (file.xxx).
|
||||||
When you have located this folder you will then need to select the songs from
|
When you have located this folder you will need to select the songs from
|
||||||
the folder.
|
the folder.
|
||||||
|
|
||||||
.. image:: pics/selectsongs.png
|
.. image:: pics/selectsongs.png
|
||||||
|
|
||||||
On most operating systems to select all the songs, first select the first song
|
On most operating systems, to select all the songs, first select the first song
|
||||||
in the lest then press shift and select the last song in the list. After this
|
in the list, press the shift key, and select the last song in the list. After
|
||||||
press :guilabel:`Next` and you should see that your import has been successful.
|
this press :guilabel:`Next` and you will see that your import has been
|
||||||
|
successful.
|
||||||
|
|
||||||
.. image:: pics/finishedimport.png
|
.. image:: pics/finishedimport.png
|
||||||
|
|
||||||
Press :guilabel:`Finish` and you will now be ready to use your songs imported
|
Press :guilabel:`Finish` and OpenLP will be ready to use your songs that you
|
||||||
from OpenSong.
|
imported from OpenSong.
|
||||||
|
|
||||||
Importing from CCLI Song Select
|
Importing from CCLI Song Select
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
@ -79,22 +80,23 @@ Then search for your desired song. For this example we will be adding the song
|
|||||||
|
|
||||||
.. image:: pics/songselectsongsearch.png
|
.. image:: pics/songselectsongsearch.png
|
||||||
|
|
||||||
For the song you are searching for select `lyrics` This should take you to a
|
For the song you are searching for, select `lyrics` This will take you to a
|
||||||
page displaying the lyrics and copyright info for your song.
|
page displaying the lyrics and copyright information for your song.
|
||||||
|
|
||||||
.. image:: pics/songselectlyrics.png
|
.. image:: pics/songselectlyrics.png
|
||||||
|
|
||||||
Next, hover over the :guilabel:`Lyrics` menu from the upper right corner. Then
|
Next, hover over the :guilabel:`Lyrics` menu from the upper right corner.
|
||||||
choose either the .txt or .usr file. You will then be asked to chose a download
|
Choose either the .txt or .usr file. You will be asked to chose a download
|
||||||
location if your browser does not automatically select that for you. Select
|
location if your browser does not automatically select that for you. Select
|
||||||
this file from the OpenLP import window and then click :guilabel:`Next` You can
|
this file from the OpenLP import window and then click :guilabel:`Next` You can
|
||||||
also select multiple songs for import at once on most operating systems by
|
also select multiple songs for import at once on most operating systems by
|
||||||
selecting the first item in the list then holding shift select the last item in
|
selecting the first item in the list then holding the shift key and select the
|
||||||
the list. When finished you should see that your import has completed.
|
last item in the list. When finished, you will see that your import has
|
||||||
|
completed.
|
||||||
|
|
||||||
.. image:: pics/finishedimport.png
|
.. image:: pics/finishedimport.png
|
||||||
|
|
||||||
Press :guilabel:`Finish` and you will now be ready to use your songs imported
|
Press :guilabel:`Finish` and OpenLP will be ready to use your songs imported
|
||||||
from CCLI SongSelect.
|
from CCLI SongSelect.
|
||||||
|
|
||||||
|
|
||||||
|
@ -349,11 +349,11 @@ class MediaManagerItem(QtGui.QWidget):
|
|||||||
Validates whether an image still exists and, if it does, is the
|
Validates whether an image still exists and, if it does, is the
|
||||||
thumbnail representation of the image up to date.
|
thumbnail representation of the image up to date.
|
||||||
"""
|
"""
|
||||||
if not os.path.exists(image):
|
if not os.path.exists(unicode(image)):
|
||||||
return False
|
return False
|
||||||
if os.path.exists(thumb):
|
if os.path.exists(thumb):
|
||||||
imageDate = os.stat(image).st_mtime
|
imageDate = os.stat(unicode(image)).st_mtime
|
||||||
thumbDate = os.stat(thumb).st_mtime
|
thumbDate = os.stat(unicode(thumb)).st_mtime
|
||||||
# If image has been updated rebuild icon
|
# If image has been updated rebuild icon
|
||||||
if imageDate > thumbDate:
|
if imageDate > thumbDate:
|
||||||
self.iconFromFile(image, thumb)
|
self.iconFromFile(image, thumb)
|
||||||
|
@ -415,46 +415,74 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
"""
|
"""
|
||||||
if not self.fileName():
|
if not self.fileName():
|
||||||
return self.saveFileAs()
|
return self.saveFileAs()
|
||||||
else:
|
path_file_name = unicode(self.fileName())
|
||||||
fileName = self.fileName()
|
(path, file_name) = os.path.split(path_file_name)
|
||||||
log.debug(u'ServiceManager.saveFile - %s' % fileName)
|
(basename, extension) = os.path.splitext(file_name)
|
||||||
|
service_file_name = basename + '.osd'
|
||||||
|
log.debug(u'ServiceManager.saveFile - %s' % path_file_name)
|
||||||
SettingsManager.set_last_dir(self.mainwindow.serviceSettingsSection,
|
SettingsManager.set_last_dir(self.mainwindow.serviceSettingsSection,
|
||||||
split_filename(fileName)[0])
|
path)
|
||||||
service = []
|
service = []
|
||||||
serviceFileName = fileName.replace(u'.osz', u'.osd')
|
|
||||||
zip = None
|
|
||||||
file = None
|
|
||||||
try:
|
|
||||||
write_list = []
|
write_list = []
|
||||||
zip = zipfile.ZipFile(unicode(fileName), 'w')
|
total_size = 0
|
||||||
for item in self.serviceItems:
|
for item in self.serviceItems:
|
||||||
service.append({u'serviceitem': \
|
service.append({u'serviceitem':
|
||||||
item[u'service_item'].get_service_repr()})
|
item[u'service_item'].get_service_repr()})
|
||||||
if item[u'service_item'].uses_file():
|
if not item[u'service_item'].uses_file():
|
||||||
|
continue
|
||||||
for frame in item[u'service_item'].get_frames():
|
for frame in item[u'service_item'].get_frames():
|
||||||
if item[u'service_item'].is_image():
|
if item[u'service_item'].is_image():
|
||||||
path_from = frame[u'path']
|
path_from = frame[u'path']
|
||||||
else:
|
else:
|
||||||
path_from = unicode(os.path.join(
|
path_from = os.path.join(frame[u'path'], frame[u'title'])
|
||||||
frame[u'path'],
|
# Only write a file once
|
||||||
frame[u'title']))
|
if path_from in write_list:
|
||||||
# On write a file once
|
continue
|
||||||
if not path_from in write_list:
|
file_size = os.path.getsize(path_from)
|
||||||
|
size_limit = 52428800 # 50MiB
|
||||||
|
#if file_size > size_limit:
|
||||||
|
# # File exeeds size_limit bytes, ask user
|
||||||
|
# message = unicode(translate('OpenLP.ServiceManager',
|
||||||
|
# 'Do you want to include \n%.1f MB file "%s"\n'
|
||||||
|
# 'into the service file?\nThis may take some time.\n\n'
|
||||||
|
# 'Please note that you need to\ntake care of that file'
|
||||||
|
# ' yourself,\nif you leave it out.')) % \
|
||||||
|
# (file_size/1048576, os.path.split(path_from)[1])
|
||||||
|
# ans = QtGui.QMessageBox.question(self.mainwindow,
|
||||||
|
# translate('OpenLP.ServiceManager', 'Including Large '
|
||||||
|
# 'File'), message, QtGui.QMessageBox.StandardButtons(
|
||||||
|
# QtGui.QMessageBox.Ok|QtGui.QMessageBox.Cancel),
|
||||||
|
# QtGui.QMessageBox.Ok)
|
||||||
|
# if ans == QtGui.QMessageBox.Cancel:
|
||||||
|
# continue
|
||||||
write_list.append(path_from)
|
write_list.append(path_from)
|
||||||
zip.write(path_from.encode(u'utf-8'))
|
total_size += file_size
|
||||||
file = open(serviceFileName, u'wb')
|
log.debug(u'ServiceManager.saveFile - ZIP contents size is %i bytes' %
|
||||||
cPickle.dump(service, file)
|
total_size)
|
||||||
file.close()
|
service_content = cPickle.dumps(service)
|
||||||
zip.write(serviceFileName.encode(u'utf-8'))
|
# Usual Zip file cannot exceed 2GiB, file with Zip64 cannot be
|
||||||
|
# extracted using unzip in UNIX.
|
||||||
|
allow_zip_64 = (total_size > 2147483648 + len(service_content))
|
||||||
|
log.debug(u'ServiceManager.saveFile - allowZip64 is %s' %
|
||||||
|
allow_zip_64)
|
||||||
|
zip = None
|
||||||
|
try:
|
||||||
|
zip = zipfile.ZipFile(path_file_name, 'w', zipfile.ZIP_STORED,
|
||||||
|
allow_zip_64)
|
||||||
|
# First we add service contents.
|
||||||
|
# We save ALL filenames into ZIP using UTF-8.
|
||||||
|
zip.writestr(service_file_name.encode(u'utf-8'),
|
||||||
|
service_content)
|
||||||
|
# Finally add all the listed media files.
|
||||||
|
for path_from in write_list:
|
||||||
|
zip.write(path_from, path_from.encode(u'utf-8'))
|
||||||
except IOError:
|
except IOError:
|
||||||
log.exception(u'Failed to save service to disk')
|
log.exception(u'Failed to save service to disk')
|
||||||
|
return False
|
||||||
finally:
|
finally:
|
||||||
if file:
|
|
||||||
file.close()
|
|
||||||
if zip:
|
if zip:
|
||||||
zip.close()
|
zip.close()
|
||||||
delete_file(serviceFileName)
|
self.mainwindow.addRecentFile(path_file_name)
|
||||||
self.mainwindow.addRecentFile(fileName)
|
|
||||||
self.setModified(False)
|
self.setModified(False)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user