shortcuts.cpp

Go to the documentation of this file.
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 &amp; 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'>&nbsp;</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'>&nbsp;</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 //==============================================

Generated on Wed Jan 24 05:38:28 2007 for AlbumShaper by  doxygen 1.5.1