AlbumShaper
1.0a3
|
00001 //============================================== 00002 // copyright : (C) 2003-2005 by Will Stokes 00003 //============================================== 00004 // This program is free software; you can redistribute it 00005 // and/or modify it under the terms of the GNU General 00006 // Public License as published by the Free Software 00007 // Foundation; either version 2 of the License, or 00008 // (at your option) any later version. 00009 //============================================== 00010 00011 //Systemwide includes 00012 #include <qfile.h> 00013 #include <qtextstream.h> 00014 #include <qstringlist.h> 00015 00016 #include <qtextbrowser.h> 00017 #include <qpushbutton.h> 00018 #include <qlayout.h> 00019 00020 #include <qkeysequence.h> 00021 00022 //Projectwide includes 00023 #include "shortcuts.h" 00024 #include "../../config.h" 00025 00026 //============================================== 00027 Shortcuts::Shortcuts( QWidget* parent, const char* name ) : QDialog(parent,name) 00028 { 00029 resize( 800, 550 ); 00030 00031 //-- 00032 //Generate shortcuts HTML file 00033 00034 //create/open xml file 00035 QFile* shortcutsFile = new QFile(TEMP_DIR + QString("/shortcuts.html") );; 00036 if(shortcutsFile->open(IO_WriteOnly)) 00037 { 00038 //----- 00039 QTextStream stream( shortcutsFile ); 00040 stream.setEncoding( QTextStream::Unicode ); 00041 //----- 00042 stream << "<html><body>\n"; 00043 stream << "<table cellpadding='4'><tr>\n"; 00044 stream << " <td><img src='" << IMAGE_PATH << "miscImages/asHelpLogoSmall.png'></td>\n"; 00045 stream << " <td valign='middle'><font face='Arial, sans-serif' size='+3'>"; 00046 stream << "<b>" << tr("Keyboard Shortcuts") << "</b></font></td>\n"; 00047 stream << "</tr></table>\n"; 00048 stream << "<p>\n"; 00049 stream << "<font face='Arial, sans-serif'>\n"; 00050 stream << " <table width='100%' cellpadding='4' cellspacing='0'>\n"; 00051 stream << " <tr><td width='50%' bgcolor='lightgray'><b>" << tr("Action") << "</b></td>\n"; 00052 stream << " <td width='50%' bgcolor='lightgray'><b>" << tr("Shortcut") << "</b></td></tr>\n"; 00053 stream << " <!-- -------------------------------------------------- -->\n"; 00054 stream << " <tr><td colspan='2'><b><u>" << tr("Opening & Saving") << "</u></b></td></tr>\n"; 00055 stream << " <tr><td>" << tr("New album") << "</td>\n"; 00056 stream << " <td>" << ((QString)QKeySequence(CTRL+Key_N)) << "</td></tr>\n"; 00057 stream << " <tr><td>" << tr("Open album") << "</td>\n"; 00058 stream << " <td>" << ((QString)QKeySequence(CTRL+Key_O)) << "</td></tr>\n"; 00059 stream << " <tr><td>" << tr("Open recent album") << "</td>\n"; 00060 stream << " <td>" << ((QString)QKeySequence(CTRL)) << "[" << 00061 ((QString)QKeySequence(Key_1)) << "-" << 00062 ((QString)QKeySequence(Key_9)) << "]" << "</td></tr>\n"; 00063 stream << " <tr><td>" << tr("Save album") << "</td>\n"; 00064 stream << " <td>" << ((QString)QKeySequence(CTRL+Key_S)) << "</td></tr>\n"; 00065 stream << " <tr><td>" << tr("Save album as") << "</td>\n"; 00066 stream << " <td>" << ((QString)QKeySequence(SHIFT+CTRL+Key_S)) << "</td></tr>\n"; 00067 stream << " <tr><td>" << tr("Quit") << "</td>\n"; 00068 stream << " <td>" << ((QString)QKeySequence(CTRL+Key_Q)) << "</td></tr>\n"; 00069 stream << " <!-- -------------------------------------------------- -->\n"; 00070 stream << " <tr><td colspan='2'><hr></td></tr>\n"; 00071 stream << " <tr><td colspan='2'><b><u>" << tr("Organizing") << "</u></b></td></tr>\n"; 00072 stream << " <tr><td>" << tr("Move to the first photo in the collection") << "</td>\n"; 00073 stream << " <td>" << ((QString)QKeySequence(Key_Home)) << "</td></tr>\n"; 00074 stream << " <tr><td>" << tr("Move to the last photo in the collection") << "</td>\n"; 00075 stream << " <td>" << ((QString)QKeySequence(Key_End)) << "</td></tr>\n"; 00076 stream << " <tr><td>" << tr("Select all photos") << "</td>\n"; 00077 stream << " <td>" << ((QString)QKeySequence(CTRL+Key_A)) << "</td></tr>\n"; 00078 stream << " <tr><td>" << tr("Deselect all photos") << "</td>\n"; 00079 stream << " <td>" << ((QString)QKeySequence(SHIFT+CTRL+Key_A)) << "</td></tr>\n"; 00080 stream << " <tr><td>" << tr("Rotate selected photos right") << "</td>\n"; 00081 stream << " <td>" << ((QString)QKeySequence(CTRL+Key_R)) << "</td></tr>\n"; 00082 stream << " <tr><td>" << tr("Rotate selected photos left") << "</td>\n"; 00083 stream << " <td>" << ((QString)QKeySequence(CTRL+Key_L)) << "</td></tr>\n"; 00084 stream << " <tr><td>" << tr("Delete selected photos") << "</td>\n"; 00085 stream << " <td>" << ((QString)QKeySequence(Key_Delete)) << "</td></tr>\n"; 00086 stream << " <tr><td>" << tr("Modify selected photo description") << "</td>\n"; 00087 stream << " <td>" << ((QString)QKeySequence(Key_Enter)) << "</td></tr>\n"; 00088 stream << " <tr><td>" << tr("Finish modifying selected photo description") << "</td>\n"; 00089 stream << " <td>" << ((QString)QKeySequence(Key_Escape)) << "</td></tr>\n"; 00090 stream << " <tr><td>" << tr("Edit first of selected photos") << "</td>\n"; 00091 stream << " <td>" << ((QString)QKeySequence(CTRL+Key_E)) << "</td></tr>\n"; 00092 stream << " <!-- -------------------------------------------------- -->\n"; 00093 stream << " <tr><td colspan='2'><hr></td></tr>\n"; 00094 stream << " <tr><td colspan='2'><b><u>Editing</u></b></td></tr>\n"; 00095 stream << " <tr><td>" << tr("Go to previous photo") << "</td>\n"; 00096 stream << " <td>" << ((QString)QKeySequence(Key_PageUp)) << "</td></tr>\n"; 00097 stream << " <tr><td>" << tr("Go to next photo") << "</td>\n"; 00098 stream << " <td>" << ((QString)QKeySequence(Key_PageDown)) << "</td></tr>\n"; 00099 stream << " <tr><td>" << tr("Go to first photo in the collection") << "</td>\n"; 00100 stream << " <td>" << ((QString)QKeySequence(Key_Home)) << "</td></tr>\n"; 00101 stream << " <tr><td>" << tr("Go to last photo in the collection") << "</td>\n"; 00102 stream << " <td>" << ((QString)QKeySequence(Key_End)) << "</td></tr>\n"; 00103 stream << " <tr><td>" << tr("Return to organizing") << "</td>\n"; 00104 stream << " <td>" << ((QString)QKeySequence(Key_Escape)) << "</td></tr>\n"; 00105 stream << " <!-- =-=-=-=-=-=-=-=-=-=-= -->\n"; 00106 stream << " <tr><td colspan='2'> </td></tr>\n"; 00107 stream << " <!-- =-=-=-=-=-=-=-=-=-=-= -->\n"; 00108 stream << " <tr><td>" << tr("Rotate photo left") << "</td>\n"; 00109 stream << " <td>" << ((QString)QKeySequence(CTRL+Key_L)) << "</td></tr>\n"; 00110 stream << " <tr><td>" << tr("Rotate photo right") << "</td>\n"; 00111 stream << " <td>" << ((QString)QKeySequence(CTRL+Key_R)) << "</td></tr>\n"; 00112 stream << " <tr><td>" << tr("Flip photo horizontally") << "</td>\n"; 00113 stream << " <td>" << ((QString)QKeySequence(CTRL+Key_F)) << "</td></tr>\n"; 00114 stream << " <tr><td>" << tr("Flip photo vertically") << "</td>\n"; 00115 stream << " <td>" << ((QString)QKeySequence(ALT+CTRL+Key_F)) << "</td></tr>\n"; 00116 stream << " <!-- =-=-=-=-=-=-=-=-=-=-= -->\n"; 00117 stream << " <tr><td colspan='2'> </td></tr>\n"; 00118 stream << " <!-- =-=-=-=-=-=-=-=-=-=-= -->\n"; 00119 stream << " <tr><td>" << tr("Select all") << "</td>\n"; 00120 stream << " <td>" << ((QString)QKeySequence(CTRL+Key_A)) << "</td></tr>\n"; 00121 stream << " <tr><td>" << tr("Deselect all") << "</td>\n"; 00122 stream << " <td>" << ((QString)QKeySequence(SHIFT+CTRL+Key_A)) << "</td></tr>\n"; 00123 stream << " <tr><td>" << tr("Nudge selection left") << "</td>\n"; 00124 stream << " <td>" << ((QString)QKeySequence(Key_Left)) << "</td></tr>\n"; 00125 stream << " <tr><td>" << tr("Nudge selection right") << "</td>\n"; 00126 stream << " <td>" << ((QString)QKeySequence(Key_Right)) << "</td></tr>\n"; 00127 stream << " <tr><td>" << tr("Nudge selection up") << "</td>\n"; 00128 stream << " <td>" << ((QString)QKeySequence(Key_Up)) << "</td></tr>\n"; 00129 stream << " <tr><td>" << tr("Nudge selection down") << "</td>\n"; 00130 stream << " <td>" << ((QString)QKeySequence(Key_Down)) << "</td></tr>\n"; 00131 stream << " <tr><td>" << tr("Expand selection") << "</td>\n"; 00132 stream << " <td>" << ((QString)QKeySequence(Key_Plus,Key_Equal)) << "</td></tr>\n"; 00133 stream << " <tr><td>" << tr("Shrink selection") << "</td>\n"; 00134 stream << " <td>" << ((QString)QKeySequence(Key_Minus,Key_Underscore)) << "</td></tr>\n"; 00135 stream << " <tr><td>" << tr("Resize selection") << "</td>\n"; 00136 stream << " <td>" << tr("Press and hold Shift, then Click and Drag Left / Right") << "</td></tr>\n"; 00137 stream << " <tr><td>" << tr("Rotate selection") << "</td>\n"; 00138 stream << " <td>" << (QString(tr("Press and hold %1, then Click selection")) 00139 .arg( ((QString)QKeySequence(CTRL)) )) << "</td></tr>\n"; 00140 stream << " <!-- -------------------------------------------------- -->\n"; 00141 stream << " <tr><td colspan='2'><hr></td></tr>\n"; 00142 stream << " <tr><td colspan='2'><b><u>" << tr("Levels and Grain Editors") << "</u></b></td></tr>\n"; 00143 stream << " <tr><td>" << tr("Show alternative") << "</td>\n"; 00144 stream << " <td>" << QString(tr("Hold %1")).arg( ((QString)QKeySequence(CTRL)) ) << "</td></tr>\n"; 00145 stream << " <tr><td>" << tr("Apply") << "</td>\n"; 00146 stream << " <td>" << ((QString)QKeySequence(Key_Enter)) << "</td></tr>\n"; 00147 stream << " <tr><td>" << tr("Cancel") << "</td>\n"; 00148 stream << " <td>" << ((QString)QKeySequence(Key_Escape)) << "</td></tr>\n"; 00149 stream << " <!-- -------------------------------------------------- -->\n"; 00150 stream << " <tr><td colspan='2'><hr></td></tr>\n"; 00151 stream << " <tr><td colspan='2'><b><u>" << tr("Miscellaneous") << "</u></b></td></tr>\n"; 00152 stream << " <tr><td>" << tr("View album statistics") << "</td>\n"; 00153 stream << " <td>" << ((QString)QKeySequence(CTRL+Key_I)) << "</td></tr>\n"; 00154 stream << " <tr><td>" << tr("Album Shaper help") << "</td>\n"; 00155 stream << " <td>" << ((QString)QKeySequence(CTRL+Key_Question)) << "</td></tr>\n"; 00156 stream << " <!-- -------------------------------------------------- -->\n"; 00157 stream << " </table>\n"; 00158 stream << "</font>\n"; 00159 stream << "</body></html>\n"; 00160 shortcutsFile->close(); 00161 } 00162 //-- 00163 //set window title 00164 setCaption( tr("Album Shaper: Shortcuts")); 00165 //-- 00166 //create shortcuts text browser 00167 QTextBrowser* content = new QTextBrowser( this ); 00168 00169 content->setHScrollBarMode( QScrollView::AlwaysOff ); 00170 content->setVScrollBarMode( QScrollView::Auto ); 00171 00172 // content->setFrameStyle( QFrame::Panel | QFrame::Sunken ); 00173 content->mimeSourceFactory()->setFilePath( QStringList(TEMP_DIR) ); 00174 content->setSource( "shortcuts.html"); 00175 //-- 00176 //place handbook and close button in grid layout 00177 QGridLayout* grid = new QGridLayout( this, 2, 2, 0); 00178 grid->addMultiCellWidget( content, 0,0, 0,1 ); 00179 grid->setColStretch( 0, 1 ); 00180 grid->setRowStretch( 0, 1 ); 00181 //-- 00182 //PLATFORM_SPECIFIC_CODE - Close Button 00183 #if (!defined(Q_OS_WIN) && !defined(Q_OS_MACX)) 00184 QPushButton* closeButton = new QPushButton( tr("Close"), this ); 00185 closeButton->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ); 00186 closeButton->setDefault(true); 00187 connect( closeButton, SIGNAL(clicked()), SLOT(close()) ); 00188 grid->addWidget( closeButton, 1, 0, Qt::AlignCenter ); 00189 #endif 00190 //-- 00191 } 00192 //============================================== 00193 void Shortcuts::closeEvent( QCloseEvent* e) 00194 { 00195 QWidget::closeEvent( e ); 00196 emit closed(); 00197 } 00198 //============================================== 00199 void Shortcuts::reject() 00200 { 00201 QDialog::reject(); 00202 emit closed(); 00203 } 00204 //==============================================